diff options
Diffstat (limited to 'pyblackbird_cc/resources/tests/test_models.py')
-rw-r--r-- | pyblackbird_cc/resources/tests/test_models.py | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/pyblackbird_cc/resources/tests/test_models.py b/pyblackbird_cc/resources/tests/test_models.py deleted file mode 100644 index bfc5a38..0000000 --- a/pyblackbird_cc/resources/tests/test_models.py +++ /dev/null @@ -1,121 +0,0 @@ -import unittest -from unittest.mock import patch - -import pytest -from django.db import IntegrityError -from django.test import TestCase - -from pyblackbird_cc.resources.factories import PDFPageSnapshotModelFactory -from pyblackbird_cc.resources.factories import ResourceModelFactory -from pyblackbird_cc.resources.models import PDFPageSnapshot -from pyblackbird_cc.resources.models import PDFResource -from pyblackbird_cc.resources.models import Resource -from pyblackbird_cc.resources.models import ResourceCategory -from pyblackbird_cc.resources.models import ResourceType -from pyblackbird_cc.resources.views import ResourceInfo -from pyblackbird_cc.resources.views import _extract_metadata_from_resource - - -@pytest.mark.django_db() -def test_resource_model(resources): - r1 = resources[0] - pdf_on_rw = r1.pdf_resources.first() - pdf_page_snapshot = PDFPageSnapshotModelFactory(pdf_file=pdf_on_rw) - - assert Resource.objects.filter(id=r1.id).exists() - assert any("test_" in name for name in r1.get_pdf_file_names()) - assert len(r1.get_pdf_file_names()) == 3 - assert "pdf_page_snapshot_" in r1.get_pdf_snapshot_file_names()[0] - - -@pytest.mark.django_db() -def test_can_add_feature_slots_to_resource(): - r = ResourceModelFactory() - r.feature_slot = 1 - r.save() - assert r.feature_slot == 1 - - -@pytest.mark.django_db() -def test_resource_slot_int_must_be_unique(): - """ - Test that a resource feature slot must be unique. - """ - r1 = ResourceModelFactory() - r2 = ResourceModelFactory() - r1.feature_slot = 1 - r1.save() - r2.feature_slot = 1 - with pytest.raises(IntegrityError): - r2.save() - - -class ResourceModelTest(TestCase): - def test_string_representation(self): - resource = Resource(name="Test Resource") - assert str(resource) == "Test Resource" - - -@unittest.skip("Skipping this test for now as it is broken") -class TestExtractMetadata(TestCase): - @patch("resources.views.get_presigned_obj_url") - def test_extract_metadata_from_resource(self, mock_get_url): - # Create mock instances of ResourceType and ResourceCategory - mock_resource_type = ResourceType.objects.create(name="Test Type") - mock_main_category = ResourceCategory.objects.create(name="Test Main Category") - - mock_resource = Resource( - name="Test Resource", - thumbnail_filenames=["thumb.jpg", "thumb2.jpg"], - created_at="2022-01-01", - updated_at="2022-01-02", - resource_type=mock_resource_type, - main_resource_category=mock_main_category, - age_range="5-7", - ) - mock_get_url.return_value = "https://example.com/url" - result = _extract_metadata_from_resource(mock_resource) - self.assertIsInstance(result, ResourceInfo) - assert result.name == "Test Resource" - assert result.pdf_filenames == "test.pdf" - assert result.thumbnail_filenames in ["thumb.jpg", "thumb2.jpg"] - assert result.created == "2022-01-01" - assert result.updated == "2022-01-02" - - -@unittest.skip("These tests will not run because they rely upon the view to get file size, etc.") -class TestPDFResourceModel(TestCase): - def setUp(self): - self.resource_type = ResourceType.objects.create(name="Test Resource Type") - self.resource_category = ResourceCategory.objects.create(name="Test Resource Category") - self.resource = Resource.objects.create( - name="Test Resource", - resource_type=self.resource_type, - main_resource_category=self.resource_category, - age_range="5-7", - curriculum="English", - description="Test Description", - ) - self.pdf_resource = PDFResource.objects.create( - resource=self.resource, - file_name="resources/tests/testdata/test_small_file.pdf", - ) - self.pdf_page_snapshot = PDFPageSnapshot.objects.create( - name="Test Thumbnail Image", - file_name="test_resource_1.jpg", - pdf_file=self.pdf_resource, - ) - - def test_pdf_resource_string_representation(self): - self.assertEqual(str(self.resource), "Test Resource") - - def test_get_pdf_snapshot_filenames(self): - self.assertEqual(self.pdf_resource.snapshot_file_names(), ["test_resource_1.jpg"]) - - -@pytest.mark.django_db() -def test_get_urls_of_resource_snapshot_images(resource): - assert len(resource.thumbnail_filenames) == 3 - # crude but it does the job; concatenating a list of URLS into one long sting... - assert "https://ams3.digitaloceanspaces.com" in "".join(resource.thumbnail_urls()) - |