Use V for tests.py

This commit is contained in:
tcely 2025-02-12 19:40:55 -05:00 committed by GitHub
parent a81d946980
commit 150bb9a5f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -19,8 +19,8 @@ from .models import Source, Media
from .tasks import cleanup_old_media from .tasks import cleanup_old_media
from .filtering import filter_media from .filtering import filter_media
from .utils import filter_response from .utils import filter_response
from .choices import (Fallback, IndexSchedule, SourceResolution, from .choices import (V, Fallback, IndexSchedule, SourceResolution,
youtube_long_source_types) YouTube_SourceType, youtube_long_source_types)
class FrontEndTestCase(TestCase): class FrontEndTestCase(TestCase):
@ -118,7 +118,7 @@ class FrontEndTestCase(TestCase):
} }
} }
c = Client() c = Client()
for source_type in test_sources.keys(): for source_type in youtube_long_source_types.keys():
response = c.get(f'/source-validate/{source_type}') response = c.get(f'/source-validate/{source_type}')
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
response = c.get('/source-validate/invalid') response = c.get('/source-validate/invalid')
@ -228,7 +228,7 @@ class FrontEndTestCase(TestCase):
expected_categories) expected_categories)
# Update the source key # Update the source key
data = { data = {
'source_type': Source.SOURCE_TYPE_YOUTUBE_CHANNEL, 'source_type': V(YouTube_SourceType.CHANNEL),
'key': 'updatedkey', # changed 'key': 'updatedkey', # changed
'name': 'testname', 'name': 'testname',
'directory': 'testdirectory', 'directory': 'testdirectory',
@ -236,15 +236,15 @@ class FrontEndTestCase(TestCase):
'download_cap': 0, 'download_cap': 0,
'filter_text': '.*', 'filter_text': '.*',
'filter_seconds_min': True, 'filter_seconds_min': True,
'index_schedule': IndexSchedule.EVERY_HOUR, 'index_schedule': V(IndexSchedule.EVERY_HOUR),
'delete_old_media': False, 'delete_old_media': False,
'days_to_keep': 14, 'days_to_keep': 14,
'source_resolution': SourceResolution.VIDEO_1080P.value, 'source_resolution': V(SourceResolution.VIDEO_1080P),
'source_vcodec': Source.SOURCE_VCODEC_VP9, 'source_vcodec': Source.SOURCE_VCODEC_VP9,
'source_acodec': Source.SOURCE_ACODEC_OPUS, 'source_acodec': Source.SOURCE_ACODEC_OPUS,
'prefer_60fps': False, 'prefer_60fps': False,
'prefer_hdr': False, 'prefer_hdr': False,
'fallback': Fallback.FAIL.value, 'fallback': V(Fallback.FAIL),
'sponsorblock_categories': data_categories, 'sponsorblock_categories': data_categories,
'sub_langs': 'en', 'sub_langs': 'en',
} }
@ -265,7 +265,7 @@ class FrontEndTestCase(TestCase):
expected_categories) expected_categories)
# Update the source index schedule which should recreate the scheduled task # Update the source index schedule which should recreate the scheduled task
data = { data = {
'source_type': Source.SOURCE_TYPE_YOUTUBE_CHANNEL, 'source_type': V(YouTube_SourceType.CHANNEL),
'key': 'updatedkey', 'key': 'updatedkey',
'name': 'testname', 'name': 'testname',
'directory': 'testdirectory', 'directory': 'testdirectory',
@ -273,15 +273,15 @@ class FrontEndTestCase(TestCase):
'download_cap': 0, 'download_cap': 0,
'filter_text': '.*', 'filter_text': '.*',
'filter_seconds_min': True, 'filter_seconds_min': True,
'index_schedule': IndexSchedule.EVERY_2_HOURS, # changed 'index_schedule': V(IndexSchedule.EVERY_2_HOURS), # changed
'delete_old_media': False, 'delete_old_media': False,
'days_to_keep': 14, 'days_to_keep': 14,
'source_resolution': SourceResolution.VIDEO_1080P.value, 'source_resolution': V(SourceResolution.VIDEO_1080P),
'source_vcodec': Source.SOURCE_VCODEC_VP9, 'source_vcodec': Source.SOURCE_VCODEC_VP9,
'source_acodec': Source.SOURCE_ACODEC_OPUS, 'source_acodec': Source.SOURCE_ACODEC_OPUS,
'prefer_60fps': False, 'prefer_60fps': False,
'prefer_hdr': False, 'prefer_hdr': False,
'fallback': Fallback.FAIL.value, 'fallback': V(Fallback.FAIL),
'sponsorblock_categories': data_categories, 'sponsorblock_categories': data_categories,
'sub_langs': 'en', 'sub_langs': 'en',
} }
@ -335,19 +335,19 @@ class FrontEndTestCase(TestCase):
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
# Add a test source # Add a test source
test_source = Source.objects.create( test_source = Source.objects.create(
source_type=Source.SOURCE_TYPE_YOUTUBE_CHANNEL, source_type=V(YouTube_SourceType.CHANNEL),
key='testkey', key='testkey',
name='testname', name='testname',
directory='testdirectory', directory='testdirectory',
index_schedule=IndexSchedule.EVERY_HOUR, index_schedule=V(IndexSchedule.EVERY_HOUR),
delete_old_media=False, delete_old_media=False,
days_to_keep=14, days_to_keep=14,
source_resolution=SourceResolution.VIDEO_1080P.value, source_resolution=V(SourceResolution.VIDEO_1080P),
source_vcodec=Source.SOURCE_VCODEC_VP9, source_vcodec=Source.SOURCE_VCODEC_VP9,
source_acodec=Source.SOURCE_ACODEC_OPUS, source_acodec=Source.SOURCE_ACODEC_OPUS,
prefer_60fps=False, prefer_60fps=False,
prefer_hdr=False, prefer_hdr=False,
fallback=Fallback.FAIL.value fallback=V(Fallback.FAIL)
) )
# Add some media # Add some media
test_minimal_metadata = ''' test_minimal_metadata = '''
@ -516,7 +516,7 @@ class FilepathTestCase(TestCase):
logging.disable(logging.CRITICAL) logging.disable(logging.CRITICAL)
# Add a test source # Add a test source
self.source = Source.objects.create( self.source = Source.objects.create(
source_type=Source.SOURCE_TYPE_YOUTUBE_CHANNEL, source_type=V(YouTube_SourceType.CHANNEL),
key='testkey', key='testkey',
name='testname', name='testname',
directory='testdirectory', directory='testdirectory',
@ -524,12 +524,12 @@ class FilepathTestCase(TestCase):
index_schedule=3600, index_schedule=3600,
delete_old_media=False, delete_old_media=False,
days_to_keep=14, days_to_keep=14,
source_resolution=SourceResolution.VIDEO_1080P.value, source_resolution=V(SourceResolution.VIDEO_1080P),
source_vcodec=Source.SOURCE_VCODEC_VP9, source_vcodec=Source.SOURCE_VCODEC_VP9,
source_acodec=Source.SOURCE_ACODEC_OPUS, source_acodec=Source.SOURCE_ACODEC_OPUS,
prefer_60fps=False, prefer_60fps=False,
prefer_hdr=False, prefer_hdr=False,
fallback=Fallback.FAIL.value fallback=V(Fallback.FAIL)
) )
# Add some test media # Add some test media
self.media = Media.objects.create( self.media = Media.objects.create(
@ -655,11 +655,11 @@ class FilepathTestCase(TestCase):
self.assertTrue(isinstance(settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX, bool)) self.assertTrue(isinstance(settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX, bool))
# Test the default behavior for "True", forced "audio" or "video" parent directories for sources # Test the default behavior for "True", forced "audio" or "video" parent directories for sources
settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX = True settings.SOURCE_DOWNLOAD_DIRECTORY_PREFIX = True
self.source.source_resolution = SourceResolution.AUDIO.value self.source.source_resolution = V(SourceResolution.AUDIO)
test_audio_prefix_path = Path(self.source.directory_path) test_audio_prefix_path = Path(self.source.directory_path)
self.assertEqual(test_audio_prefix_path.parts[-2], 'audio') self.assertEqual(test_audio_prefix_path.parts[-2], 'audio')
self.assertEqual(test_audio_prefix_path.parts[-1], 'testdirectory') self.assertEqual(test_audio_prefix_path.parts[-1], 'testdirectory')
self.source.source_resolution = SourceResolution.VIDEO_1080P.value self.source.source_resolution = V(SourceResolution.VIDEO_1080P)
test_video_prefix_path = Path(self.source.directory_path) test_video_prefix_path = Path(self.source.directory_path)
self.assertEqual(test_video_prefix_path.parts[-2], 'video') self.assertEqual(test_video_prefix_path.parts[-2], 'video')
self.assertEqual(test_video_prefix_path.parts[-1], 'testdirectory') self.assertEqual(test_video_prefix_path.parts[-1], 'testdirectory')
@ -676,7 +676,7 @@ class MediaTestCase(TestCase):
logging.disable(logging.CRITICAL) logging.disable(logging.CRITICAL)
# Add a test source # Add a test source
self.source = Source.objects.create( self.source = Source.objects.create(
source_type=Source.SOURCE_TYPE_YOUTUBE_CHANNEL, source_type=V(YouTube_SourceType.CHANNEL),
key='testkey', key='testkey',
name='testname', name='testname',
directory='testdirectory', directory='testdirectory',
@ -684,12 +684,12 @@ class MediaTestCase(TestCase):
index_schedule=3600, index_schedule=3600,
delete_old_media=False, delete_old_media=False,
days_to_keep=14, days_to_keep=14,
source_resolution=SourceResolution.VIDEO_1080P.value, source_resolution=V(SourceResolution.VIDEO_1080P),
source_vcodec=Source.SOURCE_VCODEC_VP9, source_vcodec=Source.SOURCE_VCODEC_VP9,
source_acodec=Source.SOURCE_ACODEC_OPUS, source_acodec=Source.SOURCE_ACODEC_OPUS,
prefer_60fps=False, prefer_60fps=False,
prefer_hdr=False, prefer_hdr=False,
fallback=Fallback.FAIL.value fallback=V(Fallback.FAIL)
) )
# Add some test media # Add some test media
self.media = Media.objects.create( self.media = Media.objects.create(
@ -749,7 +749,7 @@ class MediaFilterTestCase(TestCase):
# logging.disable(logging.CRITICAL) # logging.disable(logging.CRITICAL)
# Add a test source # Add a test source
self.source = Source.objects.create( self.source = Source.objects.create(
source_type=Source.SOURCE_TYPE_YOUTUBE_CHANNEL, source_type=V(YouTube_SourceType.CHANNEL),
key="testkey", key="testkey",
name="testname", name="testname",
directory="testdirectory", directory="testdirectory",
@ -757,12 +757,12 @@ class MediaFilterTestCase(TestCase):
index_schedule=3600, index_schedule=3600,
delete_old_media=False, delete_old_media=False,
days_to_keep=14, days_to_keep=14,
source_resolution=SourceResolution.VIDEO_1080P.value, source_resolution=V(SourceResolution.VIDEO_1080P),
source_vcodec=Source.SOURCE_VCODEC_VP9, source_vcodec=Source.SOURCE_VCODEC_VP9,
source_acodec=Source.SOURCE_ACODEC_OPUS, source_acodec=Source.SOURCE_ACODEC_OPUS,
prefer_60fps=False, prefer_60fps=False,
prefer_hdr=False, prefer_hdr=False,
fallback=Fallback.FAIL.value, fallback=V(Fallback.FAIL),
) )
# Add some test media # Add some test media
self.media = Media.objects.create( self.media = Media.objects.create(
@ -919,19 +919,19 @@ class FormatMatchingTestCase(TestCase):
logging.disable(logging.CRITICAL) logging.disable(logging.CRITICAL)
# Add a test source # Add a test source
self.source = Source.objects.create( self.source = Source.objects.create(
source_type=Source.SOURCE_TYPE_YOUTUBE_CHANNEL, source_type=V(YouTube_SourceType.CHANNEL),
key='testkey', key='testkey',
name='testname', name='testname',
directory='testdirectory', directory='testdirectory',
index_schedule=3600, index_schedule=3600,
delete_old_media=False, delete_old_media=False,
days_to_keep=14, days_to_keep=14,
source_resolution=SourceResolution.VIDEO_1080P.value, source_resolution=V(SourceResolution.VIDEO_1080P),
source_vcodec=Source.SOURCE_VCODEC_VP9, source_vcodec=Source.SOURCE_VCODEC_VP9,
source_acodec=Source.SOURCE_ACODEC_OPUS, source_acodec=Source.SOURCE_ACODEC_OPUS,
prefer_60fps=False, prefer_60fps=False,
prefer_hdr=False, prefer_hdr=False,
fallback=Fallback.FAIL.value fallback=V(Fallback.FAIL)
) )
# Add some media # Add some media
self.media = Media.objects.create( self.media = Media.objects.create(
@ -941,7 +941,7 @@ class FormatMatchingTestCase(TestCase):
) )
def test_combined_exact_format_matching(self): def test_combined_exact_format_matching(self):
self.source.fallback = Fallback.FAIL.value self.source.fallback = V(Fallback.FAIL)
self.media.metadata = all_test_metadata['boring'] self.media.metadata = all_test_metadata['boring']
self.media.save() self.media.save()
expected_matches = { expected_matches = {
@ -1071,7 +1071,7 @@ class FormatMatchingTestCase(TestCase):
self.assertEqual(match_type, expected_match_type) self.assertEqual(match_type, expected_match_type)
def test_audio_exact_format_matching(self): def test_audio_exact_format_matching(self):
self.source.fallback = Fallback.FAIL.value self.source.fallback = V(Fallback.FAIL)
self.media.metadata = all_test_metadata['boring'] self.media.metadata = all_test_metadata['boring']
self.media.save() self.media.save()
expected_matches = { expected_matches = {
@ -1217,7 +1217,7 @@ class FormatMatchingTestCase(TestCase):
self.assertEqual(match_type, expeceted_match_type) self.assertEqual(match_type, expeceted_match_type)
def test_video_exact_format_matching(self): def test_video_exact_format_matching(self):
self.source.fallback = Fallback.FAIL.value self.source.fallback = V(Fallback.FAIL)
# Test no 60fps, no HDR metadata # Test no 60fps, no HDR metadata
self.media.metadata = all_test_metadata['boring'] self.media.metadata = all_test_metadata['boring']
self.media.save() self.media.save()
@ -1427,7 +1427,7 @@ class FormatMatchingTestCase(TestCase):
self.assertEqual(match_type, expeceted_match_type) self.assertEqual(match_type, expeceted_match_type)
def test_video_next_best_format_matching(self): def test_video_next_best_format_matching(self):
self.source.fallback = Fallback.NEXT_BEST.value self.source.fallback = V(Fallback.NEXT_BEST)
# Test no 60fps, no HDR metadata # Test no 60fps, no HDR metadata
self.media.metadata = all_test_metadata['boring'] self.media.metadata = all_test_metadata['boring']
self.media.save() self.media.save()
@ -1737,19 +1737,19 @@ class ResponseFilteringTestCase(TestCase):
logging.disable(logging.CRITICAL) logging.disable(logging.CRITICAL)
# Add a test source # Add a test source
self.source = Source.objects.create( self.source = Source.objects.create(
source_type=Source.SOURCE_TYPE_YOUTUBE_CHANNEL, source_type=V(YouTube_SourceType.CHANNEL),
key='testkey', key='testkey',
name='testname', name='testname',
directory='testdirectory', directory='testdirectory',
index_schedule=3600, index_schedule=3600,
delete_old_media=False, delete_old_media=False,
days_to_keep=14, days_to_keep=14,
source_resolution=SourceResolution.VIDEO_1080P.value, source_resolution=V(SourceResolution.VIDEO_1080P),
source_vcodec=Source.SOURCE_VCODEC_VP9, source_vcodec=Source.SOURCE_VCODEC_VP9,
source_acodec=Source.SOURCE_ACODEC_OPUS, source_acodec=Source.SOURCE_ACODEC_OPUS,
prefer_60fps=False, prefer_60fps=False,
prefer_hdr=False, prefer_hdr=False,
fallback=Fallback.FAIL.value fallback=V(Fallback.FAIL)
) )
# Add some media # Add some media
self.media = Media.objects.create( self.media = Media.objects.create(