diff --git a/tests/videodinges/factories.py b/tests/videodinges/factories.py index ba64222..32c441b 100644 --- a/tests/videodinges/factories.py +++ b/tests/videodinges/factories.py @@ -18,17 +18,16 @@ def create(model: Type[T], **kwargs) -> T: if model is models.Transcoding: video = create(models.Video, title='Title', slug='slug', description='Description') \ if 'video' not in kwargs else None - return models.Transcoding.objects.create( - **{ - **dict( - video=video, - quality=models.qualities[0].name, - type=str(models.transcoding_types[0]), - url='https://some_url', - ), - **kwargs - } + defaults = dict( + video=video, + quality=models.qualities[0].name, + type=str(models.transcoding_types[0]), ) + if 'upload' not in kwargs: + # only URL if no upload for they are multually exclusive + defaults['url'] = 'https://some_url' + + return models.Transcoding.objects.create(**{**defaults, **kwargs}) if model is models.Upload: return _upload(**kwargs) diff --git a/tests/videodinges/views/test_video.py b/tests/videodinges/views/test_video.py index defa2cf..173ff5d 100644 --- a/tests/videodinges/views/test_video.py +++ b/tests/videodinges/views/test_video.py @@ -203,3 +203,45 @@ class VideoTestCase(TestCase): ) self.assertInHTML('720p versie', content) + + def test_video_uploads_shows_correctly(self): + + image = factories.create(models.Upload) + movie = factories.create(models.Upload) + + video = factories.create( + models.Video, + title='Vid 1', + slug='vid-1', + poster=image, + og_image=image + ) + transcoding = factories.create( + models.Transcoding, + video=video, + quality='480p', + type='video/webm', + upload=movie, + ) + + resp:HttpResponse = self.client.get( + reverse('video', args=['vid-1']) + '?quality=720p') + + self.assertEqual(resp.status_code, 200) + + content:str = resp.content.decode(resp.charset) + + self.assertInHTML( + """""".format(url=movie.file.url, image=image.file.url), + content, + ) + + self.assertInHTML( + ''.format(image=image.file.url), + content, + ) + +