Skip to content
Snippets Groups Projects
test_resource.py 2.12 KiB
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_name = 'videos'
        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_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)
        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):
        pass

    def test_patch(self):
        pass

    def test_delete(self):
        pass