From 53ce6466be7d6b9714694facc88e3d8b95473256 Mon Sep 17 00:00:00 2001
From: AJ Rice <53190766+ajrice6713@users.noreply.github.com>
Date: Thu, 29 Sep 2022 15:48:34 -0400
Subject: [PATCH 1/2] 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
---
bandwidth/model/bxml/verbs/phone_number.py | 18 +++++++++---------
bandwidth/model/bxml/verbs/sip_uri.py | 18 +++++++++---------
bandwidth/model/bxml/verbs/transfer.py | 20 ++++++++++----------
test/unit/bxml/test_phone_number.py | 11 ++++++++---
test/unit/bxml/test_sip_uri.py | 12 ++++++++----
test/unit/bxml/test_transfer.py | 15 +++++++++++----
6 files changed, 55 insertions(+), 39 deletions(-)
diff --git a/bandwidth/model/bxml/verbs/phone_number.py b/bandwidth/model/bxml/verbs/phone_number.py
index d57decaf..d2de4c0d 100644
--- a/bandwidth/model/bxml/verbs/phone_number.py
+++ b/bandwidth/model/bxml/verbs/phone_number.py
@@ -33,17 +33,17 @@ def __init__(
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.
"""
self.attributes = {
- "fallbackPassword": fallback_password,
- "fallbackUsername": fallback_username,
- "password": password,
- "tag": tag,
- "transferAnswerFallbackMethod": transfer_answer_fallback_method,
- "transferAnswerFallbackUrl": transfer_answer_fallback_url,
- "transferAnswerMethod": transfer_answer_method,
"transferAnswerUrl": transfer_answer_url,
- "transferDisconnectMethod": transfer_disconnect_method,
+ "transferAnswerMethod": transfer_answer_method,
+ "transferAnswerFallbackUrl": transfer_answer_fallback_url,
+ "transferAnswerFallbackMethod": transfer_answer_fallback_method,
"transferDisconnectUrl": transfer_disconnect_url,
- "username": username
+ "transferDisconnectMethod": transfer_disconnect_method,
+ "username": username,
+ "password": password,
+ "fallbackUsername": fallback_username,
+ "fallbackPassword": fallback_password,
+ "tag": tag
}
super().__init__(
tag="PhoneNumber",
diff --git a/bandwidth/model/bxml/verbs/sip_uri.py b/bandwidth/model/bxml/verbs/sip_uri.py
index a4273900..f622e7c9 100644
--- a/bandwidth/model/bxml/verbs/sip_uri.py
+++ b/bandwidth/model/bxml/verbs/sip_uri.py
@@ -34,18 +34,18 @@ def __init__(
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.
"""
self.attributes = {
- "fallbackPassword": fallback_password,
- "fallbackUsername": fallback_username,
- "password": password,
- "tag": tag,
- "transferAnswerFallbackMethod": transfer_answer_fallback_method,
- "transferAnswerFallbackUrl": transfer_answer_fallback_url,
- "transferAnswerMethod": transfer_answer_method,
+ "uui": uui,
"transferAnswerUrl": transfer_answer_url,
- "transferDisconnectMethod": transfer_disconnect_method,
+ "transferAnswerMethod": transfer_answer_method,
+ "transferAnswerFallbackUrl": transfer_answer_fallback_url,
+ "transferAnswerFallbackMethod": transfer_answer_fallback_method,
"transferDisconnectUrl": transfer_disconnect_url,
+ "transferDisconnectMethod": transfer_disconnect_method,
"username": username,
- "uui": uui
+ "password": password,
+ "fallbackUsername": fallback_username,
+ "fallbackPassword": fallback_password,
+ "tag": tag
}
super().__init__(
tag="SipUri",
diff --git a/bandwidth/model/bxml/verbs/transfer.py b/bandwidth/model/bxml/verbs/transfer.py
index 35215e3f..601bd38a 100644
--- a/bandwidth/model/bxml/verbs/transfer.py
+++ b/bandwidth/model/bxml/verbs/transfer.py
@@ -62,19 +62,19 @@ def __init__(
Defaults to None.
"""
self.attributes = {
+ "transferCallerId": transfer_caller_id,
"callTimeout": call_timeout,
- "diversionReason": diversion_reason,
- "diversionTreatment": diversion_treatment,
- "fallbackPassword": fallback_password,
- "fallbackUsername": fallback_username,
+ "transferCompleteUrl": transfer_complete_url,
+ "transferCompleteMethod": transfer_complete_method,
+ "transferCompleteFallbackUrl": transfer_complete_fallback_url,
+ "transferCompleteFallbackMethod": transfer_complete_fallback_method,
+ "username": username,
"password": password,
+ "fallbackUsername": fallback_username,
+ "fallbackPassword": fallback_password,
"tag": tag,
- "transferCallerId": transfer_caller_id,
- "transferCompleteFallbackMethod": transfer_complete_fallback_method,
- "transferCompleteFallbackUrl": transfer_complete_fallback_url,
- "transferCompleteMethod": transfer_complete_method,
- "transferCompleteUrl": transfer_complete_url,
- "username": username
+ "diversionTreatment": diversion_treatment,
+ "diversionReason": diversion_reason
}
super().__init__(
tag="Transfer",
diff --git a/test/unit/bxml/test_phone_number.py b/test/unit/bxml/test_phone_number.py
index e30001f8..d813b24f 100644
--- a/test/unit/bxml/test_phone_number.py
+++ b/test/unit/bxml/test_phone_number.py
@@ -5,6 +5,7 @@
@copyright Bandwidth Inc.
"""
+import os
import pytest
import unittest
@@ -17,14 +18,18 @@ class TestPhoneNumber(unittest.TestCase):
def setUp(self):
self.phone_number = PhoneNumber(
number="+19195551234",
- tag="",
- transfer_answer_method="POST",
transfer_answer_url="https://example.com/webhooks/transfer_answer"
+ transfer_answer_method="POST",
+ tag="",
)
self.test_verb = Verb(tag="test")
def test_to_bxml(self):
- expected = '+19195551234'
+ if os.environ['PYTHON_VERSION'] == '3.7':
+ expected = '+19195551234'
+ else:
+ expected = '+19195551234'
+
assert(expected == self.phone_number.to_bxml())
def test_add_verb(self):
diff --git a/test/unit/bxml/test_sip_uri.py b/test/unit/bxml/test_sip_uri.py
index 7e871e08..21474227 100644
--- a/test/unit/bxml/test_sip_uri.py
+++ b/test/unit/bxml/test_sip_uri.py
@@ -5,6 +5,7 @@
@copyright Bandwidth Inc.
"""
+import os
import pytest
import unittest
@@ -17,15 +18,18 @@ class TestSipUri(unittest.TestCase):
def setUp(self):
self.phone_number = SipUri(
uri="sip:1-999-123-4567@voip-provider.example.net",
- tag="test",
+ uui="abc123",
+ transfer_answer_url="https://example.com/webhooks/transfer_answer"
transfer_answer_method="POST",
- transfer_answer_url="https://example.com/webhooks/transfer_answer",
- uui="abc123"
+ tag="test"
)
self.test_verb = Verb(tag="test")
def test_to_bxml(self):
- expected = 'sip:1-999-123-4567@voip-provider.example.net'
+ if os.environ['PYTHON_VERSION'] == '3.7':
+ expected = 'sip:1-999-123-4567@voip-provider.example.net'
+ else:
+ expected = 'sip:1-999-123-4567@voip-provider.example.net'
assert(expected == self.phone_number.to_bxml())
def test_add_verb(self):
diff --git a/test/unit/bxml/test_transfer.py b/test/unit/bxml/test_transfer.py
index 6c32d7d2..56be72e4 100644
--- a/test/unit/bxml/test_transfer.py
+++ b/test/unit/bxml/test_transfer.py
@@ -5,6 +5,7 @@
@copyright Bandwidth Inc.
"""
+import os
import pytest
import unittest
@@ -27,15 +28,21 @@ def setUp(self):
self.transfer = Transfer(
transfer_to=[self.sip_uri],
call_timeout = "15",
- tag = "test",
- transfer_caller_id = "+19195554321"
+ transfer_caller_id = "+19195554321",
+ tag = "test"
)
def test_to_bxml(self):
- expected = 'sip@bw.com'
+ if os.environ['PYTHON_VERSION'] == '3.7':
+ expected = 'sip@bw.com'
+ else:
+ expected = 'sip@bw.com'
assert(expected == self.transfer.to_bxml())
def test_add_verb(self):
- expected = 'sip@bw.com+19195551234'
+ if os.environ['PYTHON_VERSION'] == '3.7':
+ expected = 'sip@bw.com+19195551234'
+ else:
+ expected = 'sip@bw.com+19195551234'
self.transfer.add_transfer_recipient(self.phone_number)
assert(expected == self.transfer.to_bxml())
From 40f045293330c3541f08f9fd77debe1b34c7c79b Mon Sep 17 00:00:00 2001
From: AJ Rice <53190766+ajrice6713@users.noreply.github.com>
Date: Thu, 29 Sep 2022 15:50:10 -0400
Subject: [PATCH 2/2] Fix invalid syntax
---
test/unit/bxml/test_phone_number.py | 4 ++--
test/unit/bxml/test_sip_uri.py | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/unit/bxml/test_phone_number.py b/test/unit/bxml/test_phone_number.py
index d813b24f..35c6b65b 100644
--- a/test/unit/bxml/test_phone_number.py
+++ b/test/unit/bxml/test_phone_number.py
@@ -18,9 +18,9 @@ class TestPhoneNumber(unittest.TestCase):
def setUp(self):
self.phone_number = PhoneNumber(
number="+19195551234",
- transfer_answer_url="https://example.com/webhooks/transfer_answer"
+ transfer_answer_url="https://example.com/webhooks/transfer_answer",
transfer_answer_method="POST",
- tag="",
+ tag=""
)
self.test_verb = Verb(tag="test")
diff --git a/test/unit/bxml/test_sip_uri.py b/test/unit/bxml/test_sip_uri.py
index 21474227..fa9a06d1 100644
--- a/test/unit/bxml/test_sip_uri.py
+++ b/test/unit/bxml/test_sip_uri.py
@@ -19,7 +19,7 @@ def setUp(self):
self.phone_number = SipUri(
uri="sip:1-999-123-4567@voip-provider.example.net",
uui="abc123",
- transfer_answer_url="https://example.com/webhooks/transfer_answer"
+ transfer_answer_url="https://example.com/webhooks/transfer_answer",
transfer_answer_method="POST",
tag="test"
)