Skip to content
Snippets Groups Projects
Commit ab3fa286 authored by Stéphane Schoorens's avatar Stéphane Schoorens
Browse files

Add sites to all requests refs #35009

parent fae040a6
Branches master
No related tags found
No related merge requests found
Pipeline #103884 failed
POD_UNIT_TEST_API_KEY=xxx
\ No newline at end of file
-include .env
export
DOCKER_REGISTRY ?= registry.ubicast.net
DOCKER_IMG ?= ${DOCKER_REGISTRY}/public-projects/python-pod-client
......
......@@ -7,7 +7,7 @@ class PodClient:
host_url = ''
api_key = ''
def __init__(self, host_url, api_key):
def __init__(self, host_url, api_key, site_id=1):
self.host_url = host_url
if not self.host_url:
raise Exception('Pod host url required')
......@@ -15,4 +15,4 @@ class PodClient:
if not self.api_key:
raise Exception('Pod api key required')
for resource_name in API_URLS.keys():
self.__dict__[resource_name] = Resource(self.host_url, self.api_key, resource_name)
self.__dict__[resource_name] = Resource(self.host_url, self.api_key, resource_name, site_id)
......@@ -25,6 +25,7 @@ API_URLS = {
'chapters': '/rest/chapters/',
'recording': '/rest/recording/',
'recordingfile': '/rest/recordingfile/',
'sites': '/rest/sites/',
#'enrichments': '/rest/enrichments/', seems not available in rest api
#'buildings': '/rest/buildings/',
#'broadcasters': '/rest/broadcasters/'
......@@ -42,7 +43,7 @@ class Resource:
name = ''
api_key = ''
def __init__(self, host_url, api_key, resource_name):
def __init__(self, host_url, api_key, resource_name, site_id=1):
self.host_url = host_url
if not self.host_url:
raise Exception('Pod host url required')
......@@ -52,11 +53,17 @@ class Resource:
self.name = resource_name
if not API_URLS.get(self.name):
raise Exception('Resource url not supported')
self.site_id = site_id
def _request(self, method='GET', resource_id=None, headers={}, params={}, data={}, **request_params):
response = dict(success=True)
url = self.url(resource_id)
headers['Authorization'] = 'Token %s' % self.api_key
if self.name != 'sites':
if method != 'get':
data['sites'] = [Resource(self.host_url, self.api_key, 'sites').url(self.site_id)]
else:
params['sites'] = [Resource(self.host_url, self.api_key, 'sites').url(self.site_id)]
try:
res = requests.request(method, url, headers=headers, params=params, data=data, **request_params)
response['status_code'] = res.status_code
......@@ -84,17 +91,17 @@ class Resource:
url = '%s%s/' % (url, resource_id)
return url
def get(self, resource_id=None, data=None, **request_params):
def get(self, resource_id=None, data={}, **request_params):
return self._request('GET', resource_id=resource_id, params=data, **request_params)
def post(self, resource_id=None, data=None, **request_params):
def post(self, resource_id=None, data={}, **request_params):
return self._request('POST', resource_id=resource_id, data=data, **request_params)
def put(self, resource_id=None, data=None, **request_params):
def put(self, resource_id=None, data={}, **request_params):
return self._request('PUT', resource_id=resource_id, data=data, **request_params)
def patch(self, resource_id=None, data=None, **request_params):
def patch(self, resource_id=None, data={}, **request_params):
return self._request('PATCH', resource_id=resource_id, data=data, **request_params)
def delete(self, resource_id=None, data=None, **request_params):
def delete(self, resource_id=None, data={}, **request_params):
return self._request('DELETE', resource_id=resource_id, data=data, **request_params)
......@@ -59,6 +59,9 @@ class ResourceTest(TestCase):
self.assertTrue(response['success'], response.get('error'))
if response['data'].get('results', []):
first_id = response['data'].get('results', [])[0].get('id')
if not first_id:
# specific case for sites
first_id = response['data'].get('results', [])[0].get('url').split('/')[-2]
self.assertTrue(first_id)
response = resource.get(resource_id=first_id)
self.assertTrue(response['success'], response.get('error'))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment