Skip to content

Commit 8bd310d

Browse files
committed
Finish <Bridge> and test
1 parent e6f116a commit 8bd310d

File tree

4 files changed

+96
-11
lines changed

4 files changed

+96
-11
lines changed

bandwidth/model/bxml/verbs/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from .bridge import Bridge
12
from .phone_number import PhoneNumber
23
from .sip_uri import SipUri
34
from .tag import Tag

bandwidth/model/bxml/verbs/bridge.py

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,60 @@
88
from ..verb import Verb
99

1010

11-
class Tag(Verb):
11+
class Bridge(Verb):
12+
13+
def __init__(
14+
self, target_call: str, bridge_complete_url: str=None,
15+
bridge_complete_method: str=None,
16+
bridge_complete_fallback_url: str=None,
17+
bridge_complete_fallback_method: str=None,
18+
bridge_target_complete_url: str=None,
19+
bridge_target_complete_method: str=None,
20+
bridge_target_complete_fallback_url: str=None,
21+
bridge_target_complete_fallback_method: str=None,
22+
username: str=None, password: str=None,
23+
fallback_username: str=None, fallback_password: str=None,
24+
tag: str=None
25+
):
26+
"""Initialize a <Bridge> verb
27+
28+
Args:
29+
target_call (str): _description_
30+
bridge_complete_url (str, optional): _description_. Defaults to None.
31+
bridge_complete_method (str, optional): _description_. Defaults to None.
32+
bridge_complete_fallback_url (str, optional): _description_. Defaults to None.
33+
bridge_complete_fallback_method (str, optional): _description_. Defaults to None.
34+
bridge_target_complete_url (str, optional): _description_. Defaults to None.
35+
bridge_target_complete_method (str, optional): _description_. Defaults to None.
36+
bridge_target_complete_fallback_url (str, optional): _description_. Defaults to None.
37+
bridge_target_complete_fallback_method (str, optional): _description_. Defaults to None.
38+
username (str, optional): _description_. Defaults to None.
39+
password (str, optional): _description_. Defaults to None.
40+
fallback_username (str, optional): _description_. Defaults to None.
41+
fallback_password (str, optional): _description_. Defaults to None.
42+
tag (str, optional): _description_. Defaults to None.
43+
"""
44+
self.attributes = {
45+
"bridgeCompleteUrl": bridge_complete_url,
46+
"bridgeCompleteMethod": bridge_complete_method,
47+
"bridgeCompleteFallbackUrl": bridge_complete_fallback_url,
48+
"bridgeCompleteFallbackMethod": bridge_complete_fallback_method,
49+
"bridgeTargetCompleteUrl": bridge_target_complete_url,
50+
"bridgeTargetCompleteMethod": bridge_target_complete_method,
51+
"bridgeTargetCompleteFallback_url": bridge_target_complete_fallback_url,
52+
"bridgeTargetCompleteFallbackMethod": bridge_target_complete_fallback_method,
53+
"username": username,
54+
"password": password,
55+
"fallbackUsername": fallback_username,
56+
"fallbackUassword": fallback_password,
57+
"tag": tag
58+
}
59+
super().__init__(
60+
tag="Bridge",
61+
content=target_call,
62+
attributes=self.attributes,
63+
nested_verbs=None
64+
)
1265

13-
# TODO: Finish adding attributes
14-
def __init__(self, target_call, bridge_complete_url=None, bridge_complete_method=None):
15-
super().__init__(tag="Bridge", content=target_call, attributes=None, nested_verbs=None)
16-
1766
def add_verb(self, verb: Verb):
1867
raise AttributeError('Adding verbs is not supported by <Bridge>')

test/unit/bxml/test_bridge.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""
2+
test_bridge.py
3+
4+
Unit tests for the <Bridge> BXML verb
5+
6+
@copyright Bandwidth Inc.
7+
"""
8+
import os
9+
import pytest
10+
import unittest
11+
12+
from bandwidth.model.bxml.verb import Verb
13+
from bandwidth.model.bxml.verbs.bridge import Bridge
14+
15+
16+
class TestSipUri(unittest.TestCase):
17+
18+
def setUp(self):
19+
self.bridge = Bridge(
20+
target_call="+19198675309",
21+
bridge_complete_url="https://example.com",
22+
tag="test"
23+
)
24+
self.test_verb = Verb(tag="test")
25+
26+
def test_to_bxml(self):
27+
if os.environ['PYTHON_VERSION'] == '3.7':
28+
expected = '<Bridge bridgeCompleteUrl="https://example.com" tag="test">+19198675309</Bridge>'
29+
else:
30+
expected = '<Bridge bridgeCompleteUrl="https://example.com" tag="test">+19198675309</Bridge>'
31+
assert(expected == self.bridge.to_bxml())
32+
33+
def test_add_verb(self):
34+
with pytest.raises(AttributeError):
35+
self.bridge.add_verb(self.test_verb)

test/unit/bxml/test_sip_uri.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,24 @@
1414

1515

1616
class TestSipUri(unittest.TestCase):
17-
17+
1818
def setUp(self):
19-
self.phone_number = SipUri(
19+
self.sip_uri = SipUri(
2020
uri="sip:[email protected]",
2121
uui="abc123",
2222
transfer_answer_url="https://example.com/webhooks/transfer_answer",
2323
transfer_answer_method="POST",
2424
tag="test"
2525
)
2626
self.test_verb = Verb(tag="test")
27-
27+
2828
def test_to_bxml(self):
2929
if os.environ['PYTHON_VERSION'] == '3.7':
3030
expected = '<SipUri tag="test" transferAnswerMethod="POST" transferAnswerUrl="https://example.com/webhooks/transfer_answer" uui="abc123">sip:[email protected]</SipUri>'
3131
else:
3232
expected = '<SipUri uui="abc123" transferAnswerUrl="https://example.com/webhooks/transfer_answer" transferAnswerMethod="POST" tag="test">sip:[email protected]</SipUri>'
33-
assert(expected == self.phone_number.to_bxml())
34-
33+
assert(expected == self.sip_uri.to_bxml())
34+
3535
def test_add_verb(self):
3636
with pytest.raises(AttributeError):
37-
self.phone_number.add_verb(self.test_verb)
37+
self.sip_uri.add_verb(self.test_verb)

0 commit comments

Comments
 (0)