diff --git a/tests/videodinges/unit/models/test_get_transcoding_type_by_name.py b/tests/videodinges/unit/models/test_get_transcoding_type_by_name.py new file mode 100644 index 0000000..180fa6c --- /dev/null +++ b/tests/videodinges/unit/models/test_get_transcoding_type_by_name.py @@ -0,0 +1,15 @@ +from django.test import SimpleTestCase +from videodinges.models import get_transcoding_type_by_name + +class GetTranscodingTypeByNameTestCase(SimpleTestCase): + + def test_returns_transcoding_type_if_listed(self): + result = get_transcoding_type_by_name('video/webm; codecs="vp9, opus"') + self.assertEqual(result.name, 'video/webm; codecs="vp9, opus"') + self.assertEqual(result.short_name, 'vp9') + self.assertEqual(result.description, 'WebM with VP9 and Opus') + self.assertEqual(result.priority, 100) + + def test_returns_none_if_not_listed(self): + result = get_transcoding_type_by_name('non-existent') + self.assertIsNone(result) diff --git a/videodinges/models.py b/videodinges/models.py index 7b71324..a788574 100644 --- a/videodinges/models.py +++ b/videodinges/models.py @@ -143,6 +143,11 @@ def get_quality_by_name(name: str) -> Optional[Quality]: if quality.name == name: return quality +def get_transcoding_type_by_name(name: str) -> Optional[TranscodingType]: + for t in transcoding_types: + if t.name == name: + return t + def get_short_name_of_transcoding_type(transcoding_type: Union[str, TranscodingType]) -> str: if isinstance(transcoding_type, str): for type_ in transcoding_types: