Skip to content

Commit 0252d3c

Browse files
committed
Refactor test to avoid relying on endpoints order
1 parent 6aeb0cd commit 0252d3c

1 file changed

Lines changed: 22 additions & 8 deletions

File tree

samples/schema/postman-collection/python/test/test_endpoints.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,35 @@ def setUp(self):
1717
def tearDown(self):
1818
pass
1919

20+
def _iter_items(self, items):
21+
for item in items:
22+
yield item
23+
children = item.get('item', [])
24+
if isinstance(children, list):
25+
for child in self._iter_items(children):
26+
yield child
27+
28+
def _find_item_by_name(self, name):
29+
for item in self._iter_items(self.json_data.get('item', [])):
30+
if item.get('name') == name:
31+
return item
32+
return None
33+
2034
def test_endpoint_deprecated(self):
21-
# path
22-
path = self.json_data['item'][0]['item'][0]
35+
path = self._find_item_by_name('/users/:userId (DEPRECATED)')
36+
self.assertIsNotNone(path)
2337
self.assertEqual(path['name'], '/users/:userId (DEPRECATED)')
2438

2539
def test_request_from_inline_examples(self):
26-
# item
27-
item = self.json_data['item'][0]['item'][0]['item'][0]
40+
item = self._find_item_by_name('Example patch user')
41+
self.assertIsNotNone(item)
2842
self.assertEqual(item['name'], 'Example patch user')
2943
self.assertEqual(item['request']["method"], 'PATCH')
3044
self.assertEqual(item['request']["body"]["raw"], '{\n "firstName" : "John",\n "tags" : [ "user" ]\n}')
3145

3246
def test_request_with_array_strings(self):
33-
# item
34-
item = self.json_data['item'][2]['item'][0]['item'][0]
47+
item = self._find_item_by_name('Example request for Get User')
48+
self.assertIsNotNone(item)
3549
self.assertEqual(item['request']["method"], 'POST')
3650
data = json.loads(item['request']["body"]["raw"])
3751
# check is list
@@ -40,8 +54,8 @@ def test_request_with_array_strings(self):
4054
self.assertTrue(set(data.get("tags")) == {"user", "admin", "guest"})
4155

4256
def test_request_boolean_field(self):
43-
# item
44-
item = self.json_data['item'][0]['item'][0]['item'][1]
57+
item = self._find_item_by_name('Example patch another user')
58+
self.assertIsNotNone(item)
4559
self.assertEqual(item['name'], 'Example patch another user')
4660
self.assertEqual(item['request']["method"], 'PATCH')
4761
self.assertEqual(item['request']["body"]["raw"], '{\n "firstName" : "Bill",\n "tags" : [ "admin" ]\n}')

0 commit comments

Comments
 (0)