diff options
| author | 2018-08-16 21:49:19 +0200 | |
|---|---|---|
| committer | 2018-08-16 21:49:19 +0200 | |
| commit | c08f0761c5c49c666d22223ff18e1da5a6b73d37 (patch) | |
| tree | 1078351e6ab286802b52a77998100ca0e03343ae /api/tests | |
| parent | Add the `DocumentationLink` model. (diff) | |
Add a simple `list` / `retrieve` documentation link endpoint.
Diffstat (limited to 'api/tests')
| -rw-r--r-- | api/tests/test_documentation_links.py | 72 | 
1 files changed, 72 insertions, 0 deletions
| diff --git a/api/tests/test_documentation_links.py b/api/tests/test_documentation_links.py new file mode 100644 index 00000000..c3ffe5bb --- /dev/null +++ b/api/tests/test_documentation_links.py @@ -0,0 +1,72 @@ +from django_hosts.resolvers import reverse + +from .base import APISubdomainTestCase +from ..models import DocumentationLink + + +class UnauthedDocumentationLinkAPITests(APISubdomainTestCase): +    def setUp(self): +        super().setUp() +        self.client.force_authenticate(user=None) + +    def test_detail_lookup_returns_401(self): +        url = reverse('bot:documentationlink-detail', args=('whatever',), host='api') +        response = self.client.get(url) + +        self.assertEqual(response.status_code, 401) + +    def test_list_returns_401(self): +        url = reverse('bot:documentationlink-list', host='api') +        response = self.client.get(url) + +        self.assertEqual(response.status_code, 401) + +class EmptyDatabaseDocumentationLinkAPITests(APISubdomainTestCase): +    def test_detail_lookup_returns_404(self): +        url = reverse('bot:documentationlink-detail', args=('whatever',), host='api') +        response = self.client.get(url) + +        self.assertEqual(response.status_code, 404) + +    def test_list_all_returns_empty_list(self): +        url = reverse('bot:documentationlink-list', host='api') +        response = self.client.get(url) + +        self.assertEqual(response.status_code, 200) +        self.assertEqual(response.json(), []) + + +class DetailLookupDocumentationLinkAPITests(APISubdomainTestCase): +    @classmethod +    def setUpTestData(cls): +        cls.doc_link = DocumentationLink.objects.create( +            package='testpackage', +            base_url='https://example.com', +            inventory_url='https://example.com' +        ) + +        cls.doc_json = { +            'package': cls.doc_link.package, +            'base_url': cls.doc_link.base_url, +            'inventory_url': cls.doc_link.inventory_url +        } + +    def test_detail_lookup_unknown_package_returns_404(self): +        url = reverse('bot:documentationlink-detail', args=('whatever',), host='api') +        response = self.client.get(url) + +        self.assertEqual(response.status_code, 404) + +    def test_detail_lookup_created_package_returns_package(self): +        url = reverse('bot:documentationlink-detail', args=(self.doc_link.package,), host='api') +        response = self.client.get(url) + +        self.assertEqual(response.status_code, 200) +        self.assertEqual(response.json(), self.doc_json) + +    def test_list_all_packages_shows_created_package(self): +        url = reverse('bot:documentationlink-list', host='api') +        response = self.client.get(url) + +        self.assertEqual(response.status_code, 200) +        self.assertEqual(response.json(), [self.doc_json]) | 
