From b75d042f211b80ec9083a727a267a28cc26bdb34 Mon Sep 17 00:00:00 2001 From: sschoorens <stephane.schoorens@ubicast.eu> Date: Mon, 20 Jan 2020 11:40:38 +0100 Subject: [PATCH] add resource id support refs #29848 --- pod_client/Resource.py | 24 +++++++++++++----------- tests/test_pod_client.py | 2 ++ tests/test_resource.py | 4 ++++ 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/pod_client/Resource.py b/pod_client/Resource.py index 749a1ae..4a6e47d 100644 --- a/pod_client/Resource.py +++ b/pod_client/Resource.py @@ -48,8 +48,10 @@ class Resource: if not API_URLS.get(self.name): raise Exception('Resource url not supported') - def _request(self, method='GET', headers={}, params={}, data={}, **request_params): + def _request(self, method='GET', resource_id=None, headers={}, params={}, data={}, **request_params): url = '%s/%s' % (self.host_url, API_URLS[self.name]) + if resource_id: + url = '%s/%s' % (url, resource_id) headers['Authorization'] = 'Token %s' % self.api_key try: response = requests.request(method, url, headers=headers, params=params, data=data, **request_params) @@ -61,17 +63,17 @@ class Resource: return return response - def get(self, data=None, **request_params): - return self._request('GET', params=data, **request_params) + def get(self, resource_id=None, data=None, **request_params): + return self._request('GET', resource_id=resource_id, params=data, **request_params) - def post(self, data=None, **request_params): - return self._request('POST', data=data, **request_params) + def post(self, resource_id=None, data=None, **request_params): + return self._request('POST', resource_id=resource_id, data=data, **request_params) - def put(self, data=None, **request_params): - return self._request('PUT', data=data, **request_params) + def put(self, resource_id=None, data=None, **request_params): + return self._request('PUT', resource_id=resource_id, data=data, **request_params) - def patch(self, data=None, **request_params): - return self._request('PATCH', data=data, **request_params) + def patch(self, resource_id=None, data=None, **request_params): + return self._request('PATCH', resource_id=resource_id, data=data, **request_params) - def delete(self, data=None, **request_params): - return self._request('DELETE', data=data, **request_params) + def delete(self, resource_id=None, data=None, **request_params): + return self._request('DELETE', resource_id=resource_id, data=data, **request_params) diff --git a/tests/test_pod_client.py b/tests/test_pod_client.py index 2f97de7..3f5bb4e 100644 --- a/tests/test_pod_client.py +++ b/tests/test_pod_client.py @@ -38,3 +38,5 @@ class PodClientTest(TestCase): except Exception: success = False self.assertFalse(success) + + self.assertTrue(pod_client.videos.get()) diff --git a/tests/test_resource.py b/tests/test_resource.py index 0e10746..f5dd7d5 100644 --- a/tests/test_resource.py +++ b/tests/test_resource.py @@ -46,6 +46,10 @@ class ResourceTest(TestCase): resource = Resource(HOST, API_KEY, 'videos') response = resource.get() self.assertEqual(response.status_code, 200, response.text) + first_id = response.json().get('results', [])[0].get('id') + self.assertTrue(first_id) + response = resource.get(resource_id=first_id) + self.assertEqual(response.status_code, 200, response.text) def test_post(self): pass -- GitLab