Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions number_management/CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 1.0.5
- Added `by_alias=True` to the numbers update model

# 1.0.4
- Updated dependency versions

Expand Down
2 changes: 1 addition & 1 deletion number_management/src/vonage_numbers/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '1.0.4'
__version__ = '1.0.5'
2 changes: 1 addition & 1 deletion number_management/src/vonage_numbers/number_management.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def update_number(self, params: UpdateNumberParams) -> NumbersStatus:
response = self._http_client.post(
self._http_client.rest_host,
'/number/update',
params.model_dump(exclude_none=True),
params.model_dump(by_alias=True, exclude_none=True),
self._auth_type,
self._sent_data_type,
)
Expand Down
60 changes: 60 additions & 0 deletions number_management/tests/test_numbers.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from os.path import abspath
from urllib.parse import parse_qs

import responses
from pytest import raises
Expand Down Expand Up @@ -205,6 +206,19 @@ def test_buy_number():
assert response.error_code == '200'
assert response.error_code_label == 'success'

# The data is sent as form-encoded, so we need to parse it accordingly
request_body = responses.calls[0].request.body
form_data = parse_qs(request_body)

# parse_qs returns values as lists, so we need to extract the first item
parsed_data = {key: value[0] for key, value in form_data.items()}

expected_data = {
'country': 'GB',
'msisdn': '447000000000',
}
assert parsed_data == expected_data


@responses.activate
def test_cancel_number():
Expand All @@ -219,6 +233,19 @@ def test_cancel_number():
assert response.error_code == '200'
assert response.error_code_label == 'success'

# The data is sent as form-encoded, so we need to parse it accordingly
request_body = responses.calls[0].request.body
form_data = parse_qs(request_body)

# parse_qs returns values as lists, so we need to extract the first item
parsed_data = {key: value[0] for key, value in form_data.items()}

expected_data = {
'country': 'GB',
'msisdn': '447000000000',
}
assert parsed_data == expected_data


@responses.activate
def test_cancel_number_error_no_number():
Expand All @@ -233,6 +260,19 @@ def test_cancel_number_error_no_number():

assert e.match('method failed')

# The data is sent as form-encoded, so we need to parse it accordingly
request_body = responses.calls[0].request.body
form_data = parse_qs(request_body)

# parse_qs returns values as lists, so we need to extract the first item
parsed_data = {key: value[0] for key, value in form_data.items()}

expected_data = {
'country': 'GB',
'msisdn': '447000000000',
}
assert parsed_data == expected_data


@responses.activate
def test_update_number():
Expand All @@ -255,9 +295,29 @@ def test_update_number():
)
)

# Verify the response
assert response.error_code == '200'
assert response.error_code_label == 'success'

# The data is sent as form-encoded, so we need to parse it accordingly
request_body = responses.calls[0].request.body
form_data = parse_qs(request_body)

# parse_qs returns values as lists, so we need to extract the first item
parsed_data = {key: value[0] for key, value in form_data.items()}

expected_data = {
'country': 'GB',
'msisdn': '447009000000',
'app_id': '29f769u7-7ce1-46c9-ade3-f2dedee4fr4t',
'moHttpUrl': 'https://example.com',
'moSmppSysType': 'inbound',
'voiceCallbackType': 'tel',
'voiceCallbackValue': '447009000000',
'voiceStatusCallback': 'https://example.com',
}
assert parsed_data == expected_data


def test_update_number_options_error():
with raises(NumbersError) as e:
Expand Down
3 changes: 3 additions & 0 deletions vonage/CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 4.7.2
- vonage-numbers: Added `by_alias=True` to the numbers update model to correct issue with incorrect body payload

# 4.7.1
- vonage-video: Added missing transcription values from archive responses

Expand Down
2 changes: 1 addition & 1 deletion vonage/src/vonage/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '4.7.1'
__version__ = '4.7.2'