diff --git a/plants/templates/plants/partials/card_gallery.html b/plants/templates/plants/partials/card_gallery.html new file mode 100644 index 0000000..4e9c7ac --- /dev/null +++ b/plants/templates/plants/partials/card_gallery.html @@ -0,0 +1 @@ +
diff --git a/plants/tests/test_views.py b/plants/tests/test_views.py index cbf73ef..a92cfa2 100644 --- a/plants/tests/test_views.py +++ b/plants/tests/test_views.py @@ -241,6 +241,33 @@ class TestPlantCard: assert 'plants/plant_card.html' in [t.name for t in resp.templates] +@pytest.mark.django_db +class TestUploadCardPhoto: + def test_upload_creates_card_photo(self, client): + from django.core.files.uploadedfile import SimpleUploadedFile + from plants.models import PlantCardPhoto + plant = Plant.objects.create(name='Fern') + image = SimpleUploadedFile('card.jpg', b'\xff\xd8\xff\xe0' + b'\x00' * 100, content_type='image/jpeg') + resp = client.post(reverse('upload_card_photo', args=[plant.pk]), {'image': image}) + assert resp.status_code == 200 + assert PlantCardPhoto.objects.filter(plant=plant).count() == 1 + + def test_upload_blocked_at_max_3(self, client): + from django.core.files.uploadedfile import SimpleUploadedFile + from plants.models import PlantCardPhoto + plant = Plant.objects.create(name='Fern') + for i in range(3): + PlantCardPhoto.objects.create(plant=plant, image=f'plants/cards/card{i}.jpg') + image = SimpleUploadedFile('card_extra.jpg', b'\xff\xd8\xff\xe0' + b'\x00' * 100, content_type='image/jpeg') + client.post(reverse('upload_card_photo', args=[plant.pk]), {'image': image}) + assert PlantCardPhoto.objects.filter(plant=plant).count() == 3 + + def test_returns_card_gallery_partial(self, client): + plant = Plant.objects.create(name='Fern') + resp = client.post(reverse('upload_card_photo', args=[plant.pk]), {}) + assert resp.templates[0].name == 'plants/partials/card_gallery.html' + + @pytest.mark.django_db class TestPruningCalendar: def test_returns_200(self, client): diff --git a/plants/urls.py b/plants/urls.py index 11af1ed..1a4c5cb 100644 --- a/plants/urls.py +++ b/plants/urls.py @@ -11,6 +11,7 @@ urlpatterns = [ path('plants/