diff --git a/bin/ffx/test/disposition_combination_2.py b/bin/ffx/test/disposition_combination_2.py index 1f5db8f..8e7a141 100644 --- a/bin/ffx/test/disposition_combination_2.py +++ b/bin/ffx/test/disposition_combination_2.py @@ -7,6 +7,9 @@ class DispositionCombination2(): self._logger = context['logger'] self._reportLogger = context['report_logger'] + def getIdentifier(self): + return self._combinationIdentifier + @staticmethod def list(): basePath = os.path.dirname(__file__) diff --git a/bin/ffx/test/disposition_combination_2_0.py b/bin/ffx/test/disposition_combination_2_0.py index 409eefe..3391895 100644 --- a/bin/ffx/test/disposition_combination_2_0.py +++ b/bin/ffx/test/disposition_combination_2_0.py @@ -5,9 +5,12 @@ from .disposition_combination_2 import DispositionCombination2 class DispositionCombination20(DispositionCombination2): + + COMBINATION_IDENTIFIER = 'D00' def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination20.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set(), # 0 diff --git a/bin/ffx/test/disposition_combination_2_1.py b/bin/ffx/test/disposition_combination_2_1.py index 366a165..a06b16b 100644 --- a/bin/ffx/test/disposition_combination_2_1.py +++ b/bin/ffx/test/disposition_combination_2_1.py @@ -6,8 +6,11 @@ from .disposition_combination_2 import DispositionCombination2 class DispositionCombination21(DispositionCombination2): + COMBINATION_IDENTIFIER = 'D10' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination21.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set([TrackDisposition.DEFAULT]), # 0 diff --git a/bin/ffx/test/disposition_combination_2_2.py b/bin/ffx/test/disposition_combination_2_2.py index b29d9b2..72021ae 100644 --- a/bin/ffx/test/disposition_combination_2_2.py +++ b/bin/ffx/test/disposition_combination_2_2.py @@ -6,8 +6,11 @@ from .disposition_combination_2 import DispositionCombination2 class DispositionCombination22(DispositionCombination2): + COMBINATION_IDENTIFIER = 'D01' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination22.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set(), # 0 diff --git a/bin/ffx/test/disposition_combination_2_3.py b/bin/ffx/test/disposition_combination_2_3.py index 04e1337..5fad937 100644 --- a/bin/ffx/test/disposition_combination_2_3.py +++ b/bin/ffx/test/disposition_combination_2_3.py @@ -6,8 +6,11 @@ from .disposition_combination_2 import DispositionCombination2 class DispositionCombination23(DispositionCombination2): + COMBINATION_IDENTIFIER = 'D11' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination23.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set([TrackDisposition.DEFAULT]), # 0 diff --git a/bin/ffx/test/disposition_combination_3.py b/bin/ffx/test/disposition_combination_3.py index 1cb58f0..e137aa3 100644 --- a/bin/ffx/test/disposition_combination_3.py +++ b/bin/ffx/test/disposition_combination_3.py @@ -7,6 +7,9 @@ class DispositionCombination3(): self._logger = context['logger'] self._reportLogger = context['report_logger'] + def getIdentifier(self): + return self._combinationIdentifier + @staticmethod def list(): basePath = os.path.dirname(__file__) diff --git a/bin/ffx/test/disposition_combination_3_0.py b/bin/ffx/test/disposition_combination_3_0.py index 5c60078..303782f 100644 --- a/bin/ffx/test/disposition_combination_3_0.py +++ b/bin/ffx/test/disposition_combination_3_0.py @@ -6,8 +6,11 @@ from .disposition_combination_3 import DispositionCombination3 class DispositionCombination30(DispositionCombination3): + COMBINATION_IDENTIFIER = 'D000' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination30.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set(), # 0 diff --git a/bin/ffx/test/disposition_combination_3_1.py b/bin/ffx/test/disposition_combination_3_1.py index bbcea91..f11cf8d 100644 --- a/bin/ffx/test/disposition_combination_3_1.py +++ b/bin/ffx/test/disposition_combination_3_1.py @@ -6,8 +6,11 @@ from .disposition_combination_3 import DispositionCombination3 class DispositionCombination31(DispositionCombination3): + COMBINATION_IDENTIFIER = 'D100' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination31.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set([TrackDisposition.DEFAULT]), # 0 diff --git a/bin/ffx/test/disposition_combination_3_2.py b/bin/ffx/test/disposition_combination_3_2.py index 11c370f..991da6c 100644 --- a/bin/ffx/test/disposition_combination_3_2.py +++ b/bin/ffx/test/disposition_combination_3_2.py @@ -6,8 +6,11 @@ from .disposition_combination_3 import DispositionCombination3 class DispositionCombination32(DispositionCombination3): + COMBINATION_IDENTIFIER = 'D010' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination32.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set(), # 0 diff --git a/bin/ffx/test/disposition_combination_3_3.py b/bin/ffx/test/disposition_combination_3_3.py index 53d219a..2ead619 100644 --- a/bin/ffx/test/disposition_combination_3_3.py +++ b/bin/ffx/test/disposition_combination_3_3.py @@ -6,8 +6,11 @@ from .disposition_combination_3 import DispositionCombination3 class DispositionCombination33(DispositionCombination3): + COMBINATION_IDENTIFIER = 'D001' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination33.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set(), # 0 diff --git a/bin/ffx/test/disposition_combination_3_4.py b/bin/ffx/test/disposition_combination_3_4.py index e14b49f..1acb53d 100644 --- a/bin/ffx/test/disposition_combination_3_4.py +++ b/bin/ffx/test/disposition_combination_3_4.py @@ -6,8 +6,11 @@ from .disposition_combination_3 import DispositionCombination3 class DispositionCombination34(DispositionCombination3): + COMBINATION_IDENTIFIER = 'D101' + def __init__(self, context): super().__init__(context) + self._combinationIdentifier = DispositionCombination34.COMBINATION_IDENTIFIER def getDispositionTuple(self): return (set([TrackDisposition.DEFAULT]), # 0 diff --git a/bin/ffx/test/scenario_1.py b/bin/ffx/test/scenario_1.py index 68ebdd7..8d8250b 100644 --- a/bin/ffx/test/scenario_1.py +++ b/bin/ffx/test/scenario_1.py @@ -32,23 +32,29 @@ class Scenario1(Scenario): # * MediaTags -> asserts for tci in TrackCombination.list(): - combinationContext = self._context.copy() - combinationContext['use_jellyfin'] = False - combinationContext['use_tmdb'] = False - combinationContext['use_pattern'] = False - trackCombination = TrackCombination.getClassReference(tci)(combinationContext) + # combinationContext = self._context.copy() + self._context['use_jellyfin'] = True + self._context['use_tmdb'] = False + self._context['use_pattern'] = False + trackCombination = TrackCombination.getClassReference(tci)(self._context) subcombinations = trackCombination.getSubcombinations() if not subcombinations is None: - for trackDescriptors, evaluateFunc, shouldFail in subcombinations: + for trackDescriptors, evaluateFunc, shouldFail, combinationIdentifier in subcombinations: kwargs = {} kwargs[MediaDescriptor.CONTEXT_KEY] = self._context kwargs[MediaDescriptor.TRACK_DESCRIPTOR_LIST_KEY] = trackDescriptors + self._logger.debug(f"src track dispositions {[d.getDispositionSet() for d in trackDescriptors]}") sourceMediaDescriptor = MediaDescriptor(**kwargs) sourceMediaDescriptor.reindexSubIndices() + # sourceMediaDescriptor.reindexIndices() # Phase 1: Setup source files + # TODO: + # src track dispositions [set(), set(), {}, set(), set()] + # vs + # Stream #0:4: Subtitle: ass (ssa) (default) mediaFilePath = createMediaTestFile(mediaDescriptor=sourceMediaDescriptor, directory=self._testDirectory) # Phase 2: Prepare database @@ -59,12 +65,15 @@ class Scenario1(Scenario): 'convert', mediaFilePath, '--no-prompt'] + + if not self._context['use_jellyfin']: + commandSequence += ['--no-jellyfin'] - self._logger.debug(f"Scenario1.run(): sub={trackCombination.getIdentifier()} test sequence: {commandSequence}") + self._logger.debug(f"Scenario1.run(): sub={trackCombination.getIdentifier()},{combinationIdentifier} test sequence: {commandSequence}") out, err, rc = executeProcess(commandSequence, directory = self._testDirectory) - self._logger.debug(f"Scenario1.run(): sub={trackCombination.getIdentifier()} process returned: {rc}") + self._logger.debug(f"Scenario1.run(): sub={trackCombination.getIdentifier()},{combinationIdentifier} process returned: {rc}") # if out: # self._logger.debug(f"Scenario1.run(): process output: {out}") @@ -78,7 +87,8 @@ class Scenario1(Scenario): if rc: # Stuck with prompt: More than one default subtitle stream detected! Please select stream: # TODO: Catch prompt is add option to fail at prompt - assert shouldFail, "ffmpeg run didn't fail" + assert shouldFail, "ffmpeg run didn't fail" if shouldFail else "ffmpeg run failed" + self._reportLogger.info(f"Scenario 1 sub={trackCombination.getIdentifier()},{combinationIdentifier} test passed") else: resultFile = os.path.join(self._testDirectory, 'media.webm') @@ -98,14 +108,16 @@ class Scenario1(Scenario): # assert resultMediaTracks[2].getType() == TrackType.AUDIO, f"Stream #2 is not of type audio" + self._logger.debug(f"tgt track dispositions {[d.getDispositionSet() for d in resultMediaDescriptor.getSubtitleTracks()]}") + # assert dispositions evaluateFunc(resultMediaTracks) - self._reportLogger.info(f"Scenario 1 sub={trackCombination.getIdentifier()} test passed") + self._reportLogger.info(f"Scenario 1 sub={trackCombination.getIdentifier()},{combinationIdentifier} test passed") except AssertionError as ae: - self._reportLogger.error(f"Scenario 1 sub={trackCombination.getIdentifier()} test failed ({ae})") + self._reportLogger.error(f"Scenario 1 sub={trackCombination.getIdentifier()},{combinationIdentifier} test failed ({ae})") diff --git a/bin/ffx/test/track_combination_3.py b/bin/ffx/test/track_combination_3.py index 0245264..ac0f069 100644 --- a/bin/ffx/test/track_combination_3.py +++ b/bin/ffx/test/track_combination_3.py @@ -61,4 +61,5 @@ class TrackCombination3(TrackCombination): trackDescriptors = self.getTrackDescriptors(dispositionTuple) evaluateFunc = dispositionCombination.evaluateTrackDescriptors # assert function shouldFail = dispositionCombination.shouldFail() # true if this combination should fail - yield (trackDescriptors, evaluateFunc, shouldFail) + dispositionIdentifier = dispositionCombination.getIdentifier() + yield (trackDescriptors, evaluateFunc, shouldFail, dispositionIdentifier)