From 0ae9169487042a58a3051010c4b9581cf203ad9d Mon Sep 17 00:00:00 2001 From: hwnjng Date: Mon, 29 Jul 2019 15:07:44 -0400 Subject: [PATCH 1/3] added support to retrieve all devices regardless of pagination --- packet/Manager.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packet/Manager.py b/packet/Manager.py index 7c1ec9b..2159413 100644 --- a/packet/Manager.py +++ b/packet/Manager.py @@ -72,6 +72,24 @@ def list_devices(self, project_id, params={}): devices.append(device) return devices + def list_all_devices(self, project_id): + all_devices = list() + raw_devices = list() + page = 1 + while True: + paginate = {"page": page} + data = self.call_api("projects/%s/devices" % project_id, params=paginate) + next = self.meta["next"] + raw_devices.extend(data["devices"]) + if next is None: + break + else: + page += 1 + for raw_device in raw_devices: + device = Device(raw_device, self) + all_devices.append(device) + return all_devices + def create_device( self, project_id, From 231efeead73ece2f92e2234eef249d04a1e23515 Mon Sep 17 00:00:00 2001 From: hwnjng Date: Mon, 29 Jul 2019 17:09:34 -0400 Subject: [PATCH 2/3] cleanup of Manager.py and added TODO test --- packet/Manager.py | 3 ++- test/test_packet.py | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packet/Manager.py b/packet/Manager.py index 2159413..9de5957 100644 --- a/packet/Manager.py +++ b/packet/Manager.py @@ -73,7 +73,6 @@ def list_devices(self, project_id, params={}): return devices def list_all_devices(self, project_id): - all_devices = list() raw_devices = list() page = 1 while True: @@ -85,6 +84,8 @@ def list_all_devices(self, project_id): break else: page += 1 + + all_devices = list() for raw_device in raw_devices: device = Device(raw_device, self) all_devices.append(device) diff --git a/test/test_packet.py b/test/test_packet.py index 4675a9d..e0e3399 100644 --- a/test/test_packet.py +++ b/test/test_packet.py @@ -71,6 +71,14 @@ def test_list_devices(self): str(device) repr(device) self.assertIsInstance(device, packet.Device) + + # TODO figure out how to properly handle this test case + # def test_list_all_devices(self): + # devices = self.manager.list_all_devices("438659f0") + # for device in devices: + # str(device) + # repr(device) + # self.assertIsInstance(device, packet.Device) def test_create_device(self): device = self.manager.create_device( From 552b97331805d0ef98fa9da5972530e800482169 Mon Sep 17 00:00:00 2001 From: hwnjng Date: Mon, 29 Jul 2019 17:13:30 -0400 Subject: [PATCH 3/3] fmt and lint --- test/test_packet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_packet.py b/test/test_packet.py index e0e3399..bd487e3 100644 --- a/test/test_packet.py +++ b/test/test_packet.py @@ -71,7 +71,7 @@ def test_list_devices(self): str(device) repr(device) self.assertIsInstance(device, packet.Device) - + # TODO figure out how to properly handle this test case # def test_list_all_devices(self): # devices = self.manager.list_all_devices("438659f0")