Skip to content

Commit ad0adaa

Browse files
authored
task/Update models to be python version agnostic (#115)
* Update models to be python version agnostic Handling of different version behavior should be handled in the tests since the dict ordering behavior in 3.7 has no effect on how the backend handles the serialized xml. order of attributes is unimportant * Fix invalid syntax
1 parent 5ad427c commit ad0adaa

File tree

6 files changed

+55
-39
lines changed

6 files changed

+55
-39
lines changed

bandwidth/model/bxml/verbs/phone_number.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@ def __init__(
3333
tag (str, optional): A custom string that will be sent with these and all future callbacks unless overwritten by a future tag attribute or cleared. May be cleared by setting tag="" Max length 256 characters. Defaults to None.
3434
"""
3535
self.attributes = {
36-
"fallbackPassword": fallback_password,
37-
"fallbackUsername": fallback_username,
38-
"password": password,
39-
"tag": tag,
40-
"transferAnswerFallbackMethod": transfer_answer_fallback_method,
41-
"transferAnswerFallbackUrl": transfer_answer_fallback_url,
42-
"transferAnswerMethod": transfer_answer_method,
4336
"transferAnswerUrl": transfer_answer_url,
44-
"transferDisconnectMethod": transfer_disconnect_method,
37+
"transferAnswerMethod": transfer_answer_method,
38+
"transferAnswerFallbackUrl": transfer_answer_fallback_url,
39+
"transferAnswerFallbackMethod": transfer_answer_fallback_method,
4540
"transferDisconnectUrl": transfer_disconnect_url,
46-
"username": username
41+
"transferDisconnectMethod": transfer_disconnect_method,
42+
"username": username,
43+
"password": password,
44+
"fallbackUsername": fallback_username,
45+
"fallbackPassword": fallback_password,
46+
"tag": tag
4747
}
4848
super().__init__(
4949
tag="PhoneNumber",

bandwidth/model/bxml/verbs/sip_uri.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,18 @@ def __init__(
3434
tag (str, optional): A custom string that will be sent with these and all future callbacks unless overwritten by a future tag attribute or cleared. May be cleared by setting tag="" Max length 256 characters. Defaults to None.
3535
"""
3636
self.attributes = {
37-
"fallbackPassword": fallback_password,
38-
"fallbackUsername": fallback_username,
39-
"password": password,
40-
"tag": tag,
41-
"transferAnswerFallbackMethod": transfer_answer_fallback_method,
42-
"transferAnswerFallbackUrl": transfer_answer_fallback_url,
43-
"transferAnswerMethod": transfer_answer_method,
37+
"uui": uui,
4438
"transferAnswerUrl": transfer_answer_url,
45-
"transferDisconnectMethod": transfer_disconnect_method,
39+
"transferAnswerMethod": transfer_answer_method,
40+
"transferAnswerFallbackUrl": transfer_answer_fallback_url,
41+
"transferAnswerFallbackMethod": transfer_answer_fallback_method,
4642
"transferDisconnectUrl": transfer_disconnect_url,
43+
"transferDisconnectMethod": transfer_disconnect_method,
4744
"username": username,
48-
"uui": uui
45+
"password": password,
46+
"fallbackUsername": fallback_username,
47+
"fallbackPassword": fallback_password,
48+
"tag": tag
4949
}
5050
super().__init__(
5151
tag="SipUri",

bandwidth/model/bxml/verbs/transfer.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,19 +62,19 @@ def __init__(
6262
Defaults to None.
6363
"""
6464
self.attributes = {
65+
"transferCallerId": transfer_caller_id,
6566
"callTimeout": call_timeout,
66-
"diversionReason": diversion_reason,
67-
"diversionTreatment": diversion_treatment,
68-
"fallbackPassword": fallback_password,
69-
"fallbackUsername": fallback_username,
67+
"transferCompleteUrl": transfer_complete_url,
68+
"transferCompleteMethod": transfer_complete_method,
69+
"transferCompleteFallbackUrl": transfer_complete_fallback_url,
70+
"transferCompleteFallbackMethod": transfer_complete_fallback_method,
71+
"username": username,
7072
"password": password,
73+
"fallbackUsername": fallback_username,
74+
"fallbackPassword": fallback_password,
7175
"tag": tag,
72-
"transferCallerId": transfer_caller_id,
73-
"transferCompleteFallbackMethod": transfer_complete_fallback_method,
74-
"transferCompleteFallbackUrl": transfer_complete_fallback_url,
75-
"transferCompleteMethod": transfer_complete_method,
76-
"transferCompleteUrl": transfer_complete_url,
77-
"username": username
76+
"diversionTreatment": diversion_treatment,
77+
"diversionReason": diversion_reason
7878
}
7979
super().__init__(
8080
tag="Transfer",

test/unit/bxml/test_phone_number.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
66
@copyright Bandwidth Inc.
77
"""
8+
import os
89
import pytest
910
import unittest
1011

@@ -17,14 +18,18 @@ class TestPhoneNumber(unittest.TestCase):
1718
def setUp(self):
1819
self.phone_number = PhoneNumber(
1920
number="+19195551234",
20-
tag="",
21+
transfer_answer_url="https://example.com/webhooks/transfer_answer",
2122
transfer_answer_method="POST",
22-
transfer_answer_url="https://example.com/webhooks/transfer_answer"
23+
tag=""
2324
)
2425
self.test_verb = Verb(tag="test")
2526

2627
def test_to_bxml(self):
27-
expected = '<PhoneNumber tag="" transferAnswerMethod="POST" transferAnswerUrl="https://example.com/webhooks/transfer_answer">+19195551234</PhoneNumber>'
28+
if os.environ['PYTHON_VERSION'] == '3.7':
29+
expected = '<PhoneNumber tag="" transferAnswerMethod="POST" transferAnswerUrl="https://example.com/webhooks/transfer_answer">+19195551234</PhoneNumber>'
30+
else:
31+
expected = '<PhoneNumber transferAnswerUrl="https://example.com/webhooks/transfer_answer" transferAnswerMethod="POST" tag="">+19195551234</PhoneNumber>'
32+
2833
assert(expected == self.phone_number.to_bxml())
2934

3035
def test_add_verb(self):

test/unit/bxml/test_sip_uri.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
66
@copyright Bandwidth Inc.
77
"""
8+
import os
89
import pytest
910
import unittest
1011

@@ -17,15 +18,18 @@ class TestSipUri(unittest.TestCase):
1718
def setUp(self):
1819
self.phone_number = SipUri(
1920
uri="sip:1-999-123-4567@voip-provider.example.net",
20-
tag="test",
21-
transfer_answer_method="POST",
21+
uui="abc123",
2222
transfer_answer_url="https://example.com/webhooks/transfer_answer",
23-
uui="abc123"
23+
transfer_answer_method="POST",
24+
tag="test"
2425
)
2526
self.test_verb = Verb(tag="test")
2627

2728
def test_to_bxml(self):
28-
expected = '<SipUri tag="test" transferAnswerMethod="POST" transferAnswerUrl="https://example.com/webhooks/transfer_answer" uui="abc123">sip:1-999-123-4567@voip-provider.example.net</SipUri>'
29+
if os.environ['PYTHON_VERSION'] == '3.7':
30+
expected = '<SipUri tag="test" transferAnswerMethod="POST" transferAnswerUrl="https://example.com/webhooks/transfer_answer" uui="abc123">sip:1-999-123-4567@voip-provider.example.net</SipUri>'
31+
else:
32+
expected = '<SipUri uui="abc123" transferAnswerUrl="https://example.com/webhooks/transfer_answer" transferAnswerMethod="POST" tag="test">sip:1-999-123-4567@voip-provider.example.net</SipUri>'
2933
assert(expected == self.phone_number.to_bxml())
3034

3135
def test_add_verb(self):

test/unit/bxml/test_transfer.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
66
@copyright Bandwidth Inc.
77
"""
8+
import os
89
import pytest
910
import unittest
1011

@@ -27,15 +28,21 @@ def setUp(self):
2728
self.transfer = Transfer(
2829
transfer_to=[self.sip_uri],
2930
call_timeout = "15",
30-
tag = "test",
31-
transfer_caller_id = "+19195554321"
31+
transfer_caller_id = "+19195554321",
32+
tag = "test"
3233
)
3334

3435
def test_to_bxml(self):
35-
expected = '<Transfer callTimeout="15" tag="test" transferCallerId="+19195554321"><SipUri uui="test">sip@bw.com</SipUri></Transfer>'
36+
if os.environ['PYTHON_VERSION'] == '3.7':
37+
expected = '<Transfer callTimeout="15" tag="test" transferCallerId="+19195554321"><SipUri uui="test">sip@bw.com</SipUri></Transfer>'
38+
else:
39+
expected = '<Transfer transferCallerId="+19195554321" callTimeout="15" tag="test"><SipUri uui="test">sip@bw.com</SipUri></Transfer>'
3640
assert(expected == self.transfer.to_bxml())
3741

3842
def test_add_verb(self):
39-
expected = '<Transfer callTimeout="15" tag="test" transferCallerId="+19195554321"><SipUri uui="test">sip@bw.com</SipUri><PhoneNumber tag="test">+19195551234</PhoneNumber></Transfer>'
43+
if os.environ['PYTHON_VERSION'] == '3.7':
44+
expected = '<Transfer callTimeout="15" tag="test" transferCallerId="+19195554321"><SipUri uui="test">sip@bw.com</SipUri><PhoneNumber tag="test">+19195551234</PhoneNumber></Transfer>'
45+
else:
46+
expected = '<Transfer transferCallerId="+19195554321" callTimeout="15" tag="test"><SipUri uui="test">sip@bw.com</SipUri><PhoneNumber tag="test">+19195551234</PhoneNumber></Transfer>'
4047
self.transfer.add_transfer_recipient(self.phone_number)
4148
assert(expected == self.transfer.to_bxml())

0 commit comments

Comments
 (0)