Skip to content

Commit 7336366

Browse files
committed
Add unit tests for CreateWebRtcConnectionRequest and CreateEndpointResponseData; remove redundant tests from existing models
1 parent bb5a42a commit 7336366

9 files changed

+201
-134
lines changed

test/unit/api/test_endpoints_api.py

Lines changed: 47 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,13 @@
2222
from bandwidth.api.endpoints_api import EndpointsApi
2323
from bandwidth.models.create_web_rtc_connection_request import CreateWebRtcConnectionRequest
2424
from bandwidth.models.create_endpoint_response import CreateEndpointResponse
25+
from bandwidth.models.create_endpoint_response_data import CreateEndpointResponseData
2526
from bandwidth.models.endpoint_response import EndpointResponse
27+
from bandwidth.models.endpoint import Endpoint
28+
from bandwidth.models.endpoints import Endpoints
2629
from bandwidth.models.list_endpoints_response import ListEndpointsResponse
30+
from bandwidth.models.link import Link
31+
from bandwidth.models.page import Page
2732
from bandwidth.models.endpoint_type_enum import EndpointTypeEnum
2833
from bandwidth.models.endpoint_direction_enum import EndpointDirectionEnum
2934
from bandwidth.models.endpoint_status_enum import EndpointStatusEnum
@@ -66,8 +71,21 @@ def test_create_endpoint(self) -> None:
6671

6772
assert_that(response.status_code, equal_to(201))
6873
assert_that(response.data, instance_of(CreateEndpointResponse))
74+
6975
assert_that(response.data.links, instance_of(list))
70-
assert_that(response.data.data, instance_of(object))
76+
assert_that(len(response.data.links), greater_than(0))
77+
assert_that(response.data.links[0], instance_of(Link))
78+
assert_that(response.data.links[0].href, starts_with('http'))
79+
assert_that(response.data.links[0].rel, instance_of(str))
80+
81+
assert_that(response.data.data, instance_of(CreateEndpointResponseData))
82+
assert_that(response.data.data.endpoint_id, instance_of(str))
83+
assert_that(response.data.data.type, is_in(EndpointTypeEnum))
84+
assert_that(response.data.data.status, is_in(EndpointStatusEnum))
85+
assert_that(response.data.data.creation_timestamp, instance_of(datetime))
86+
assert_that(response.data.data.expiration_timestamp, instance_of(datetime))
87+
assert_that(response.data.data.token, instance_of(str))
88+
7189
assert_that(response.data.errors, instance_of(list))
7290

7391
def test_delete_endpoint(self) -> None:
@@ -94,8 +112,20 @@ def test_get_endpoint(self) -> None:
94112

95113
assert_that(response.status_code, equal_to(200))
96114
assert_that(response.data, instance_of(EndpointResponse))
115+
97116
assert_that(response.data.links, instance_of(list))
98-
assert_that(response.data.data, instance_of(object))
117+
assert_that(len(response.data.links), greater_than(0))
118+
assert_that(response.data.links[0], instance_of(Link))
119+
assert_that(response.data.links[0].href, starts_with('http'))
120+
assert_that(response.data.links[0].rel, instance_of(str))
121+
122+
assert_that(response.data.data, instance_of(Endpoint))
123+
assert_that(response.data.data.endpoint_id, instance_of(str))
124+
assert_that(response.data.data.type, is_in(EndpointTypeEnum))
125+
assert_that(response.data.data.status, is_in(EndpointStatusEnum))
126+
assert_that(response.data.data.creation_timestamp, instance_of(datetime))
127+
assert_that(response.data.data.expiration_timestamp, instance_of(datetime))
128+
99129
assert_that(response.data.errors, instance_of(list))
100130

101131
def test_list_endpoints(self) -> None:
@@ -109,98 +139,29 @@ def test_list_endpoints(self) -> None:
109139

110140
assert_that(response.status_code, equal_to(200))
111141
assert_that(response.data, instance_of(ListEndpointsResponse))
112-
assert_that(response.data.links, instance_of(list))
113-
assert_that(response.data.data, instance_of(list))
114-
assert_that(response.data.errors, instance_of(list))
115-
116-
def test_list_endpoints_with_filters(self) -> None:
117-
"""Test case for list_endpoints with filters
118-
119-
List Endpoints with Type and Status Filters
120-
"""
121-
response = self.endpoints_api_instance.list_endpoints_with_http_info(
122-
BW_ACCOUNT_ID,
123-
type=EndpointTypeEnum.WEBRTC,
124-
status=EndpointStatusEnum.CONNECTED,
125-
limit=100
126-
)
127142

128-
assert_that(response.status_code, equal_to(200))
129-
assert_that(response.data, instance_of(ListEndpointsResponse))
130143
assert_that(response.data.links, instance_of(list))
131-
assert_that(response.data.data, instance_of(list))
132-
assert_that(response.data.errors, instance_of(list))
133-
if response.data.page:
134-
assert_that(response.data.page, instance_of(object))
135-
136-
def test_list_endpoints_with_pagination(self) -> None:
137-
"""Test case for list_endpoints with pagination
144+
assert_that(len(response.data.links), greater_than(0))
145+
assert_that(response.data.links[0], instance_of(Link))
146+
assert_that(response.data.links[0].href, starts_with('http'))
147+
assert_that(response.data.links[0].rel, instance_of(str))
138148

139-
List Endpoints with Pagination
140-
"""
141-
response = self.endpoints_api_instance.list_endpoints_with_http_info(
142-
BW_ACCOUNT_ID,
143-
after_cursor="cursor-abc123",
144-
limit=50
145-
)
146-
147-
assert_that(response.status_code, equal_to(200))
148-
assert_that(response.data, instance_of(ListEndpointsResponse))
149-
assert_that(response.data.links, instance_of(list))
150149
assert_that(response.data.data, instance_of(list))
151-
assert_that(response.data.errors, instance_of(list))
150+
assert_that(len(response.data.data), greater_than(0))
151+
assert_that(response.data.data[0], instance_of(Endpoints))
152+
assert_that(response.data.data[0].endpoint_id, instance_of(str))
153+
assert_that(response.data.data[0].type, is_in(EndpointTypeEnum))
154+
assert_that(response.data.data[0].status, is_in(EndpointStatusEnum))
155+
assert_that(response.data.data[0].creation_timestamp, instance_of(datetime))
156+
assert_that(response.data.data[0].expiration_timestamp, instance_of(datetime))
152157

153-
# TODO: Endpoint BXML not ready yet - commented out
154-
# def test_update_endpoint_bxml(self) -> None:
155-
# """Test case for update_endpoint_bxml
156-
#
157-
# Update Endpoint BXML
158-
# """
159-
# update_bxml = '<?xml version="1.0" encoding="UTF-8"?><Bxml><SpeakSentence locale="en_US" gender="female" voice="susan">This is a test bxml response for endpoint</SpeakSentence><Pause duration="3"/></Bxml>'
160-
#
161-
# response = self.endpoints_api_instance.update_endpoint_bxml_with_http_info(
162-
# BW_ACCOUNT_ID,
163-
# "ep-abc123",
164-
# update_bxml
165-
# )
166-
#
167-
# assert_that(response.status_code, equal_to(204))
168-
169-
def test_create_endpoint_minimal(self) -> None:
170-
"""Test case for create_endpoint with minimal required fields
171-
172-
Create Endpoint with Minimal Fields
173-
"""
174-
endpoint_body = CreateWebRtcConnectionRequest(
175-
type=EndpointTypeEnum.WEBRTC,
176-
direction=EndpointDirectionEnum.OUTBOUND
177-
)
178-
response = self.endpoints_api_instance.create_endpoint_with_http_info(
179-
BW_ACCOUNT_ID,
180-
endpoint_body
181-
)
182-
183-
assert_that(response.status_code, equal_to(201))
184-
assert_that(response.data, instance_of(CreateEndpointResponse))
158+
if response.data.page:
159+
assert_that(response.data.page, instance_of(Page))
160+
assert_that(response.data.page.page_size, greater_than_or_equal_to(0))
185161

186-
def test_create_endpoint_sip(self) -> None:
187-
"""Test case for create_endpoint with SIP type
162+
assert_that(response.data.errors, instance_of(list))
188163

189-
Create SIP Endpoint
190-
"""
191-
endpoint_body = CreateWebRtcConnectionRequest(
192-
type=EndpointTypeEnum.WEBRTC,
193-
direction=EndpointDirectionEnum.BIDIRECTIONAL,
194-
event_callback_url="https://myServer.com/bandwidth/webhooks/sip-endpoint",
195-
tag="sip-test-endpoint"
196-
)
197-
response = self.endpoints_api_instance.create_endpoint_with_http_info(
198-
BW_ACCOUNT_ID,
199-
endpoint_body
200-
)
201164

202-
assert_that(response.status_code, equal_to(201))
203-
assert_that(response.data, instance_of(CreateEndpointResponse))
204165

205166

206167
if __name__ == '__main__':

test/unit/models/test_create_endpoint_request_base.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,5 @@ def testCreateEndpointRequestBase(self):
5858
assert instance.event_fallback_url == 'https://example.com/fallback'
5959
assert instance.tag == 'test-request'
6060

61-
def testCreateEndpointRequestBaseRequiredOnly(self):
62-
"""Test CreateEndpointRequestBase with required fields only"""
63-
instance = self.make_instance(False)
64-
assert instance is not None
65-
assert isinstance(instance, CreateEndpointRequestBase)
66-
assert instance.type == EndpointTypeEnum.WEBRTC
67-
assert instance.direction == EndpointDirectionEnum.BIDIRECTIONAL
68-
6961
if __name__ == '__main__':
7062
unittest.main()
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# coding: utf-8
2+
3+
"""
4+
Bandwidth
5+
6+
Bandwidth's Communication APIs
7+
8+
The version of the OpenAPI document: 1.0.0
9+
Contact: letstalk@bandwidth.com
10+
Generated by OpenAPI Generator (https://openapi-generator.tech)
11+
12+
Do not edit the class manually.
13+
""" # noqa: E501
14+
15+
16+
import unittest
17+
from datetime import datetime
18+
19+
from bandwidth.models.create_endpoint_response_data import CreateEndpointResponseData
20+
from bandwidth.models.device import Device
21+
from bandwidth.models.device_status_enum import DeviceStatusEnum
22+
from bandwidth.models.endpoint_status_enum import EndpointStatusEnum
23+
from bandwidth.models.endpoint_type_enum import EndpointTypeEnum
24+
25+
class TestCreateEndpointResponseData(unittest.TestCase):
26+
"""CreateEndpointResponseData unit test stubs"""
27+
28+
def setUp(self):
29+
pass
30+
31+
def tearDown(self):
32+
pass
33+
34+
def make_instance(self, include_optional) -> CreateEndpointResponseData:
35+
"""Test CreateEndpointResponseData
36+
include_optional is a boolean, when False only required
37+
params are included, when True both required and
38+
optional params are included """
39+
if include_optional:
40+
return CreateEndpointResponseData(
41+
endpoint_id='e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85',
42+
type=EndpointTypeEnum.WEBRTC,
43+
status=EndpointStatusEnum.CONNECTED,
44+
creation_timestamp=datetime(2026, 1, 15, 10, 0, 0),
45+
expiration_timestamp=datetime(2026, 1, 16, 10, 0, 0),
46+
tag='my-tag',
47+
devices=[
48+
Device(
49+
device_id='device-456',
50+
device_name='Test Device',
51+
status=DeviceStatusEnum.CONNECTED,
52+
creation_timestamp=datetime(2026, 1, 15, 10, 0, 0)
53+
)
54+
],
55+
token='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.test.token'
56+
)
57+
else:
58+
return CreateEndpointResponseData(
59+
endpoint_id='e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85',
60+
type=EndpointTypeEnum.WEBRTC,
61+
status=EndpointStatusEnum.CONNECTED,
62+
creation_timestamp=datetime(2026, 1, 15, 10, 0, 0),
63+
expiration_timestamp=datetime(2026, 1, 16, 10, 0, 0),
64+
token='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.test.token'
65+
)
66+
67+
def testCreateEndpointResponseData(self):
68+
"""Test CreateEndpointResponseData"""
69+
instance = self.make_instance(True)
70+
assert instance is not None
71+
assert isinstance(instance, CreateEndpointResponseData)
72+
assert instance.endpoint_id == 'e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
73+
assert instance.type == EndpointTypeEnum.WEBRTC
74+
assert instance.status == EndpointStatusEnum.CONNECTED
75+
assert isinstance(instance.creation_timestamp, datetime)
76+
assert isinstance(instance.expiration_timestamp, datetime)
77+
assert instance.tag == 'my-tag'
78+
assert isinstance(instance.devices, list)
79+
assert len(instance.devices) == 1
80+
assert isinstance(instance.devices[0], Device)
81+
assert instance.devices[0].device_id == 'device-456'
82+
assert instance.token == 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.test.token'
83+
84+
if __name__ == '__main__':
85+
unittest.main()
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# coding: utf-8
2+
3+
"""
4+
Bandwidth
5+
6+
Bandwidth's Communication APIs
7+
8+
The version of the OpenAPI document: 1.0.0
9+
Contact: letstalk@bandwidth.com
10+
Generated by OpenAPI Generator (https://openapi-generator.tech)
11+
12+
Do not edit the class manually.
13+
""" # noqa: E501
14+
15+
16+
import unittest
17+
18+
from bandwidth.models.create_web_rtc_connection_request import CreateWebRtcConnectionRequest
19+
from bandwidth.models.endpoint_direction_enum import EndpointDirectionEnum
20+
from bandwidth.models.endpoint_type_enum import EndpointTypeEnum
21+
22+
class TestCreateWebRtcConnectionRequest(unittest.TestCase):
23+
"""CreateWebRtcConnectionRequest unit test stubs"""
24+
25+
def setUp(self):
26+
pass
27+
28+
def tearDown(self):
29+
pass
30+
31+
def make_instance(self, include_optional) -> CreateWebRtcConnectionRequest:
32+
"""Test CreateWebRtcConnectionRequest
33+
include_optional is a boolean, when False only required
34+
params are included, when True both required and
35+
optional params are included """
36+
if include_optional:
37+
return CreateWebRtcConnectionRequest(
38+
type=EndpointTypeEnum.WEBRTC,
39+
direction=EndpointDirectionEnum.BIDIRECTIONAL,
40+
event_callback_url='https://example.com/callback',
41+
event_fallback_url='https://example.com/fallback',
42+
tag='test-webrtc',
43+
connection_metadata={
44+
'key1': 'value1',
45+
'key2': 'value2'
46+
}
47+
)
48+
else:
49+
return CreateWebRtcConnectionRequest(
50+
type=EndpointTypeEnum.WEBRTC,
51+
direction=EndpointDirectionEnum.BIDIRECTIONAL
52+
)
53+
54+
def testCreateWebRtcConnectionRequest(self):
55+
"""Test CreateWebRtcConnectionRequest"""
56+
instance = self.make_instance(True)
57+
assert instance is not None
58+
assert isinstance(instance, CreateWebRtcConnectionRequest)
59+
assert instance.type == EndpointTypeEnum.WEBRTC
60+
assert instance.direction == EndpointDirectionEnum.BIDIRECTIONAL
61+
assert instance.event_callback_url == 'https://example.com/callback'
62+
assert instance.event_fallback_url == 'https://example.com/fallback'
63+
assert instance.tag == 'test-webrtc'
64+
assert isinstance(instance.connection_metadata, dict)
65+
assert instance.connection_metadata['key1'] == 'value1'
66+
assert instance.connection_metadata['key2'] == 'value2'
67+
68+
if __name__ == '__main__':
69+
unittest.main()

test/unit/models/test_device.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,5 @@ def testDevice(self):
5757
assert instance.status == DeviceStatusEnum.CONNECTED
5858
assert isinstance(instance.creation_timestamp, datetime)
5959

60-
def testDeviceRequiredOnly(self):
61-
"""Test Device with required fields only"""
62-
instance = self.make_instance(False)
63-
assert instance is not None
64-
assert isinstance(instance, Device)
65-
assert instance.device_id == 'device-abc-123'
66-
assert instance.status == DeviceStatusEnum.CONNECTED
67-
6860
if __name__ == '__main__':
6961
unittest.main()

test/unit/models/test_endpoint.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,5 @@ def testEndpoint(self):
7777
assert len(instance.devices) == 1
7878
assert isinstance(instance.devices[0], Device)
7979

80-
def testEndpointRequiredOnly(self):
81-
"""Test Endpoint with required fields only"""
82-
instance = self.make_instance(False)
83-
assert instance is not None
84-
assert isinstance(instance, Endpoint)
85-
assert instance.endpoint_id == 'endpoint-123'
86-
assert instance.type == EndpointTypeEnum.WEBRTC
87-
assert instance.status == EndpointStatusEnum.CONNECTED
88-
8980
if __name__ == '__main__':
9081
unittest.main()

test/unit/models/test_endpoint_event.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,5 @@ def testEndpointEvent(self):
8181
assert isinstance(instance.device, Device)
8282
assert instance.device.device_id == 'device-event-456'
8383

84-
def testEndpointEventRequiredOnly(self):
85-
"""Test EndpointEvent with required fields only"""
86-
instance = self.make_instance(False)
87-
assert instance is not None
88-
assert isinstance(instance, EndpointEvent)
89-
assert instance.endpoint_id == 'endpoint-event-123'
90-
assert isinstance(instance.event_time, datetime)
91-
assert instance.event_type == EndpointEventTypeEnum.DEVICE_CONNECTED
92-
9384
if __name__ == '__main__':
9485
unittest.main()

test/unit/models/test_endpoints.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,5 @@ def testEndpoints(self):
6464
assert isinstance(instance.expiration_timestamp, datetime)
6565
assert instance.tag == 'list-endpoint'
6666

67-
def testEndpointsRequiredOnly(self):
68-
"""Test Endpoints with required fields only"""
69-
instance = self.make_instance(False)
70-
assert instance is not None
71-
assert isinstance(instance, Endpoints)
72-
assert instance.endpoint_id == 'endpoint-789'
73-
7467
if __name__ == '__main__':
7568
unittest.main()

0 commit comments

Comments
 (0)