You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.0 KiB
52 lines
2.0 KiB
from django.urls import reverse
|
|
from rest_framework.test import APITestCase
|
|
from rest_framework import status
|
|
|
|
|
|
class LibraryURLResolutionTests(APITestCase):
|
|
"""
|
|
Test suite to ensure all library API endpoints resolve and execute cleanly.
|
|
"""
|
|
|
|
def test_category_list_endpoint(self):
|
|
"""Test categories list endpoint is accessible"""
|
|
url = reverse('category-list')
|
|
response = self.client.get(url)
|
|
self.assertLess(response.status_code, 500)
|
|
|
|
def test_pinned_collection_list_endpoint(self):
|
|
"""Test pinned collections endpoint is accessible"""
|
|
url = reverse('pinned-collection-list')
|
|
response = self.client.get(url)
|
|
self.assertLess(response.status_code, 500)
|
|
|
|
def test_collection_list_endpoint(self):
|
|
"""Test collections endpoint is accessible"""
|
|
url = reverse('collection-list')
|
|
response = self.client.get(url)
|
|
self.assertLess(response.status_code, 500)
|
|
|
|
def test_book_list_endpoint(self):
|
|
"""Test books list endpoint is accessible"""
|
|
url = reverse('book-list')
|
|
response = self.client.get(url)
|
|
self.assertLess(response.status_code, 500)
|
|
|
|
def test_book_detail_endpoint(self):
|
|
"""Test book detail endpoint is accessible (may return 404 if no data)"""
|
|
url = reverse('book-detail', kwargs={'slug': 'test-book'})
|
|
response = self.client.get(url)
|
|
self.assertLess(response.status_code, 500)
|
|
|
|
def test_downloaded_books_list_endpoint(self):
|
|
"""Test downloaded books list endpoint is accessible"""
|
|
url = reverse('downloaded-books-list')
|
|
response = self.client.get(url)
|
|
self.assertLess(response.status_code, 500)
|
|
|
|
def test_book_download_endpoint(self):
|
|
"""Test book download endpoint is accessible (POST)"""
|
|
url = reverse('book-download')
|
|
# Hitting POST endpoint with GET or empty POST should resolve safely without throwing 500
|
|
response = self.client.post(url)
|
|
self.assertLess(response.status_code, 500)
|