Newer
Older
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from unittest import TestCase
from pod_client.resource import Resource, API_URLS
HOST = 'http://pod.ubicast.net'
API_KEY = os.environ.get('POD_UNIT_TEST_API_KEY')
def setUpModule():
pass
def tearDownModule():
pass
class ResourceTest(TestCase):
def test_init(self):
resource_file = Resource(HOST, API_KEY, resource_name)
self.assertEqual(HOST, resource_file.host_url)
self.assertEqual(resource_name, resource_file.name)
success = True
try:
resource_file = Resource('', API_KEY, resource_name)
except Exception:
success = False
self.assertFalse(success)
success = True
try:
resource_file = Resource(HOST, API_KEY, 'fake')
except Exception:
success = False
self.assertFalse(success)
success = True
try:
resource_file = Resource(HOST, '', 'fake')
except Exception:
success = False
self.assertFalse(success)
def test_url(self):
for resource_name in API_URLS:
resource = Resource(HOST, API_KEY, resource_name)
url = '%s%s' % (resource.host_url, API_URLS[resource_name])
url_with_resource = url + '1/'
self.assertEqual(resource.url(), url)
self.assertEqual(resource.url(1), url_with_resource)
def test_get(self):
for resource_name in API_URLS:
resource = Resource(HOST, API_KEY, resource_name)
response = resource.get()
self.assertEqual(response.status_code, 200, response.text)
if response.json().get('results', []):
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):
resource = Resource(HOST, API_KEY, 'channels')
response = resource.post(data={'title': 'unittest'})
self.assertEqual(response.status_code, 201, response.text)
data = response.json()
self.assertTrue(data['id'])
response = resource.delete(resource_id=data['id'])
self.assertEqual(response.status_code, 204, response.text)
def test_put(self):
resource = Resource(HOST, API_KEY, 'channels')
response = resource.post(data={'title': 'unittest'})
self.assertEqual(response.status_code, 201, response.text)
data = response.json()
data['title'] = 'New title unittest'
response = resource.put(resource_id=data['id'], data=data)
self.assertEqual(response.status_code, 200, response.text)
data_put = response.json()
self.assertEqual(data_put['title'], 'New title unittest')
response = resource.delete(resource_id=data['id'])
self.assertEqual(response.status_code, 204, response.text)
def test_patch(self):
resource = Resource(HOST, API_KEY, 'channels')
response = resource.post(data={'title': 'unittest'})
self.assertEqual(response.status_code, 201, response.text)
data = response.json()
response = resource.patch(resource_id=data['id'], data={'title': 'New title unittest'})
self.assertEqual(response.status_code, 200, response.text)
data_patch = response.json()
self.assertEqual(data_patch['title'], 'New title unittest')
response = resource.delete(resource_id=data['id'])
self.assertEqual(response.status_code, 204, response.text)
def test_delete(self):
resource = Resource(HOST, API_KEY, 'channels')
response = resource.post(data={'title': 'unittest'})
self.assertEqual(response.status_code, 201, response.text)
data = response.json()
self.assertTrue(data['id'])
response = resource.delete(resource_id=data['id'])
self.assertEqual(response.status_code, 204, response.text)