nightly tests tc
This commit is contained in:
@@ -478,6 +478,7 @@ def convert(ctx,
|
|||||||
if context['use_jellyfin']:
|
if context['use_jellyfin']:
|
||||||
# Reorder subtracks in types with default the last, then make subindices flat again
|
# Reorder subtracks in types with default the last, then make subindices flat again
|
||||||
targetMediaDescriptor.applyJellyfinOrder()
|
targetMediaDescriptor.applyJellyfinOrder()
|
||||||
|
# sourceMediaDescriptor.applyJellyfinOrder()
|
||||||
|
|
||||||
# click.echo(f"tmd subindices: {[t.getIndex() for t in targetMediaDescriptor.getAllTrackDescriptors()]} {[t.getSubIndex() for t in targetMediaDescriptor.getAllTrackDescriptors()]} {[t.getDispositionFlag(TrackDisposition.DEFAULT) for t in targetMediaDescriptor.getAllTrackDescriptors()]}")
|
# click.echo(f"tmd subindices: {[t.getIndex() for t in targetMediaDescriptor.getAllTrackDescriptors()]} {[t.getSubIndex() for t in targetMediaDescriptor.getAllTrackDescriptors()]} {[t.getDispositionFlag(TrackDisposition.DEFAULT) for t in targetMediaDescriptor.getAllTrackDescriptors()]}")
|
||||||
# raise click.Abort
|
# raise click.Abort
|
||||||
|
|||||||
@@ -174,7 +174,12 @@ class FfxController():
|
|||||||
|
|
||||||
targetTrackDescriptors = self.__targetMediaDescriptor.getAllTrackDescriptors()
|
targetTrackDescriptors = self.__targetMediaDescriptor.getAllTrackDescriptors()
|
||||||
|
|
||||||
sourceTrackDescriptors = [] if self.__sourceMediaDescriptor is None else self.__sourceMediaDescriptor.getAllTrackDescriptors()
|
sourceTrackDescriptors = ([] if self.__sourceMediaDescriptor is None
|
||||||
|
else self.__sourceMediaDescriptor.getAllTrackDescriptors())
|
||||||
|
# if not self.__sourceMediaDescriptor is None:
|
||||||
|
# sourceTrackDescriptors = self.__sourceMediaDescriptor.getAllTrackDescriptors()
|
||||||
|
# else:
|
||||||
|
# sourceTrackDescriptors = []
|
||||||
|
|
||||||
dispositionTokens = []
|
dispositionTokens = []
|
||||||
|
|
||||||
@@ -190,7 +195,9 @@ class FfxController():
|
|||||||
streamIndicator = td.getType().indicator()
|
streamIndicator = td.getType().indicator()
|
||||||
|
|
||||||
|
|
||||||
sourceDispositionSet = sourceTrackDescriptors[trackIndex].getDispositionSet() if sourceTrackDescriptors else set()
|
sourceDispositionSet = sourceTrackDescriptors[td.getSourceIndex()].getDispositionSet() if sourceTrackDescriptors else set()
|
||||||
|
|
||||||
|
#TODO: Alles discarden was im targetDescriptor vorhanden ist (?)
|
||||||
sourceDispositionSet.discard(TrackDisposition.DEFAULT)
|
sourceDispositionSet.discard(TrackDisposition.DEFAULT)
|
||||||
|
|
||||||
dispositionSet = td.getDispositionSet() | sourceDispositionSet
|
dispositionSet = td.getDispositionSet() | sourceDispositionSet
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
import os, glob, sys, importlib, glob, inspect
|
import os, glob, sys, importlib, glob, inspect
|
||||||
|
|
||||||
|
from ffx.show_controller import ShowController
|
||||||
|
from ffx.pattern_controller import PatternController
|
||||||
|
from ffx.media_controller import MediaController
|
||||||
|
|
||||||
from ffx.test.helper import createEmptyDirectory
|
from ffx.test.helper import createEmptyDirectory
|
||||||
|
from ffx.database import databaseContext
|
||||||
|
|
||||||
class Scenario():
|
class Scenario():
|
||||||
"""Scenarios
|
"""Scenarios
|
||||||
@@ -95,6 +100,26 @@ class Scenario():
|
|||||||
self._logger = context['logger']
|
self._logger = context['logger']
|
||||||
self._reportLogger = context['report_logger']
|
self._reportLogger = context['report_logger']
|
||||||
|
|
||||||
|
self._testDbFilePath = os.path.join(self._testDirectory, 'test.db')
|
||||||
|
self.createEmptyTestDatabase()
|
||||||
|
|
||||||
|
|
||||||
|
def createEmptyTestDatabase(self):
|
||||||
|
|
||||||
|
if not self._context['database'] is None:
|
||||||
|
self._context['database']['engine'].dispose()
|
||||||
|
|
||||||
|
if os.path.isfile(self._testDbFilePath):
|
||||||
|
os.unlink(self._testDbFilePath)
|
||||||
|
self._context['database'] = None
|
||||||
|
|
||||||
|
self._logger.debug(f"Creating test db with path {self._testDbFilePath}")
|
||||||
|
self._context['database'] = databaseContext(databasePath=self._testDbFilePath)
|
||||||
|
|
||||||
|
self._sc = ShowController(context = self._context)
|
||||||
|
self._pc = PatternController(context = self._context)
|
||||||
|
self._mc = MediaController(context = self._context)
|
||||||
|
|
||||||
|
|
||||||
def clearTestDirectory(self):
|
def clearTestDirectory(self):
|
||||||
testFiles = glob.glob(f"{self._testDirectory}/*")
|
testFiles = glob.glob(f"{self._testDirectory}/*")
|
||||||
|
|||||||
@@ -23,15 +23,15 @@ class Scenario1(Scenario):
|
|||||||
Converting to VaA, vp9/opus/opus
|
Converting to VaA, vp9/opus/opus
|
||||||
No tmdb, default parameters"""
|
No tmdb, default parameters"""
|
||||||
|
|
||||||
TESTFILE_EXTENSION = 'mkv'
|
TEST_FILE_EXTENSION = 'mkv'
|
||||||
EXPECTED_EXTENSION = 'webm'
|
EXPECTED_FILE_EXTENSION = 'webm'
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, context):
|
def __init__(self, context):
|
||||||
|
|
||||||
context['use_jellyfin'] = True
|
context['use_jellyfin'] = True
|
||||||
context['use_tmdb'] = False
|
context['use_tmdb'] = False
|
||||||
context['use_pattern'] = False
|
context['use_pattern'] = False
|
||||||
#context['no_prompt'] = False
|
|
||||||
|
|
||||||
super().__init__(context)
|
super().__init__(context)
|
||||||
|
|
||||||
@@ -39,7 +39,6 @@ class Scenario1(Scenario):
|
|||||||
return self.__class__.__name__[8:]
|
return self.__class__.__name__[8:]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def job(self, yieldObj: dict):
|
def job(self, yieldObj: dict):
|
||||||
|
|
||||||
testContext = self._context.copy()
|
testContext = self._context.copy()
|
||||||
@@ -62,8 +61,8 @@ class Scenario1(Scenario):
|
|||||||
variantFilenameLabel = variantPayload['label']
|
variantFilenameLabel = variantPayload['label']
|
||||||
expectedBasename = variantPayload['expectedBasename']
|
expectedBasename = variantPayload['expectedBasename']
|
||||||
|
|
||||||
variantFilename = f"{variantBasename}.{Scenario1.TESTFILE_EXTENSION}"
|
variantFilename = f"{variantBasename}.{Scenario1.TEST_FILE_EXTENSION}"
|
||||||
expectedFilename = f"{expectedBasename}.{Scenario1.EXPECTED_EXTENSION}"
|
expectedFilename = f"{expectedBasename}.{Scenario1.EXPECTED_FILE_EXTENSION}"
|
||||||
|
|
||||||
|
|
||||||
if self._context['test_variant'] and variantIdentifier != self._context['test_variant']:
|
if self._context['test_variant'] and variantIdentifier != self._context['test_variant']:
|
||||||
@@ -88,10 +87,9 @@ class Scenario1(Scenario):
|
|||||||
logger=self._logger,
|
logger=self._logger,
|
||||||
length = 2)
|
length = 2)
|
||||||
|
|
||||||
# # Phase 2: Prepare database
|
|
||||||
#
|
|
||||||
|
|
||||||
# Phase 3: Run ffx
|
# Phase 2: Run ffx
|
||||||
|
|
||||||
commandSequence = [sys.executable,
|
commandSequence = [sys.executable,
|
||||||
self._ffxExecutablePath]
|
self._ffxExecutablePath]
|
||||||
|
|
||||||
@@ -123,14 +121,13 @@ class Scenario1(Scenario):
|
|||||||
if rc:
|
if rc:
|
||||||
self._logger.debug(f"{variantLabel}: Process returned ERROR {rc} ({err})")
|
self._logger.debug(f"{variantLabel}: Process returned ERROR {rc} ({err})")
|
||||||
|
|
||||||
# Phase 4: Find result files
|
|
||||||
|
# Phase 3: Evaluate results
|
||||||
|
|
||||||
resultFilenames = [rf for rf in self.getFilenamesInTestDirectory() if rf != 'ffmpeg2pass-0.log' and rf != variantFilename]
|
resultFilenames = [rf for rf in self.getFilenamesInTestDirectory() if rf != 'ffmpeg2pass-0.log' and rf != variantFilename]
|
||||||
|
|
||||||
self._logger.debug(f"{variantLabel}: Result filenames: {resultFilenames}")
|
self._logger.debug(f"{variantLabel}: Result filenames: {resultFilenames}")
|
||||||
|
|
||||||
|
|
||||||
# Phase 5: Evaluate results
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
jobFailed = bool(rc)
|
jobFailed = bool(rc)
|
||||||
@@ -147,15 +144,6 @@ class Scenario1(Scenario):
|
|||||||
assert (os.path.isfile(expectedResultFilePath)
|
assert (os.path.isfile(expectedResultFilePath)
|
||||||
), f"Result file {expectedFilename} in path '{self._testDirectory}' wasn't created"
|
), f"Result file {expectedFilename} in path '{self._testDirectory}' wasn't created"
|
||||||
|
|
||||||
# resultFileProperties = FileProperties(testContext, resultFile)
|
|
||||||
# resultMediaDescriptor = resultFileProperties.getMediaDescriptor()
|
|
||||||
#
|
|
||||||
# if testContext['use_jellyfin']:
|
|
||||||
# sourceMediaDescriptor.applyJellyfinOrder()
|
|
||||||
# resultMediaDescriptor.applySourceIndices(sourceMediaDescriptor)
|
|
||||||
#
|
|
||||||
# resultMediaTracks = resultMediaDescriptor.getAllTrackDescriptors()
|
|
||||||
|
|
||||||
for assertIndex in range(len(assertSelectorList)):
|
for assertIndex in range(len(assertSelectorList)):
|
||||||
|
|
||||||
assertSelector = assertSelectorList[assertIndex]
|
assertSelector = assertSelectorList[assertIndex]
|
||||||
|
|||||||
@@ -21,12 +21,15 @@ class Scenario2(Scenario):
|
|||||||
Converting to VaA, vp9/opus/opus
|
Converting to VaA, vp9/opus/opus
|
||||||
No tmdb, default parameters"""
|
No tmdb, default parameters"""
|
||||||
|
|
||||||
|
TEST_FILE_EXTENSION = 'mkv'
|
||||||
|
EXPECTED_FILE_EXTENSION = 'webm'
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, context):
|
def __init__(self, context):
|
||||||
|
|
||||||
context['use_jellyfin'] = True
|
context['use_jellyfin'] = True
|
||||||
context['use_tmdb'] = False
|
context['use_tmdb'] = False
|
||||||
context['use_pattern'] = False
|
context['use_pattern'] = False
|
||||||
#context['no_prompt'] = False
|
|
||||||
|
|
||||||
super().__init__(context)
|
super().__init__(context)
|
||||||
|
|
||||||
@@ -39,6 +42,7 @@ class Scenario2(Scenario):
|
|||||||
testContext = self._context.copy()
|
testContext = self._context.copy()
|
||||||
|
|
||||||
targetYieldObj = yieldObj['target']
|
targetYieldObj = yieldObj['target']
|
||||||
|
# presetYieldObj = yieldObj['preset'] # not used here
|
||||||
|
|
||||||
identifier = targetYieldObj['identifier']
|
identifier = targetYieldObj['identifier']
|
||||||
variantList = targetYieldObj['variants']
|
variantList = targetYieldObj['variants']
|
||||||
@@ -66,13 +70,18 @@ class Scenario2(Scenario):
|
|||||||
|
|
||||||
self._logger.debug(f"Running Job: {variantLabel}")
|
self._logger.debug(f"Running Job: {variantLabel}")
|
||||||
|
|
||||||
# Phase 1: Setup source files
|
|
||||||
self.clearTestDirectory()
|
|
||||||
mediaFilePath = createMediaTestFile(mediaDescriptor=sourceMediaDescriptor, directory=self._testDirectory, logger=self._logger, length = 2)
|
|
||||||
|
|
||||||
# # Phase 2: Prepare database
|
# Phase 1: Setup source files
|
||||||
#
|
|
||||||
# Phase 3: Run ffx
|
self.clearTestDirectory()
|
||||||
|
mediaFilePath = createMediaTestFile(mediaDescriptor=sourceMediaDescriptor,
|
||||||
|
directory=self._testDirectory,
|
||||||
|
logger=self._logger,
|
||||||
|
length = 2)
|
||||||
|
|
||||||
|
|
||||||
|
# Phase 2: Run ffx
|
||||||
|
|
||||||
commandSequence = [sys.executable,
|
commandSequence = [sys.executable,
|
||||||
self._ffxExecutablePath,
|
self._ffxExecutablePath,
|
||||||
'convert',
|
'convert',
|
||||||
@@ -82,6 +91,7 @@ class Scenario2(Scenario):
|
|||||||
if not testContext['use_jellyfin']:
|
if not testContext['use_jellyfin']:
|
||||||
commandSequence += ['--no-jellyfin']
|
commandSequence += ['--no-jellyfin']
|
||||||
|
|
||||||
|
|
||||||
self._logger.debug(f"{variantLabel}: Test sequence: {commandSequence}")
|
self._logger.debug(f"{variantLabel}: Test sequence: {commandSequence}")
|
||||||
|
|
||||||
out, err, rc = executeProcess(commandSequence, directory = self._testDirectory)
|
out, err, rc = executeProcess(commandSequence, directory = self._testDirectory)
|
||||||
@@ -92,21 +102,21 @@ class Scenario2(Scenario):
|
|||||||
self._logger.debug(f"{variantLabel}: Process returned ERROR {rc} ({err})")
|
self._logger.debug(f"{variantLabel}: Process returned ERROR {rc} ({err})")
|
||||||
|
|
||||||
|
|
||||||
# Phase 4: Evaluate results
|
# Phase 3: Evaluate results
|
||||||
|
|
||||||
resultFilenames = [rf for rf in self.getFilenamesInTestDirectory() if rf != 'ffmpeg2pass-0.log' and rf != variantFilename]
|
resultFilenames = [rf for rf in self.getFilenamesInTestDirectory() if rf.endswith(f".{Scenario2.EXPECTED_FILE_EXTENSION}")]
|
||||||
|
|
||||||
self._logger.debug(f"{variantLabel}: Result filenames: {resultFilenames}")
|
self._logger.debug(f"{variantLabel}: Result filenames: {resultFilenames}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
jobFailed = bool(rc)
|
jobFailed = bool(rc)
|
||||||
|
|
||||||
self._logger.debug(f"{variantLabel}: Should fail: {shouldFail} / actually failed: {jobFailed}")
|
self._logger.debug(f"{variantLabel}: Should fail: {shouldFail} / actually failed: {jobFailed}")
|
||||||
|
|
||||||
assert (jobFailed == shouldFail
|
assert (jobFailed == shouldFail
|
||||||
), f"Process {'failed' if jobFailed else 'did not fail'}"
|
), f"Process {'failed' if jobFailed else 'did not fail'}"
|
||||||
|
|
||||||
|
|
||||||
if not jobFailed:
|
if not jobFailed:
|
||||||
|
|
||||||
resultFile = os.path.join(self._testDirectory, 'media.webm')
|
resultFile = os.path.join(self._testDirectory, 'media.webm')
|
||||||
|
|||||||
@@ -19,9 +19,7 @@ from ffx.test.media_combinator import MediaCombinator
|
|||||||
from ffx.test.indicator_combinator import IndicatorCombinator
|
from ffx.test.indicator_combinator import IndicatorCombinator
|
||||||
|
|
||||||
from ffx.show_descriptor import ShowDescriptor
|
from ffx.show_descriptor import ShowDescriptor
|
||||||
from ffx.show_controller import ShowController
|
|
||||||
from ffx.pattern_controller import PatternController
|
|
||||||
from ffx.media_controller import MediaController
|
|
||||||
|
|
||||||
from ffx.tmdb_controller import TmdbController
|
from ffx.tmdb_controller import TmdbController
|
||||||
from ffx.tmdb_controller import TMDB_API_KEY_NOT_PRESENT_EXCEPTION
|
from ffx.tmdb_controller import TMDB_API_KEY_NOT_PRESENT_EXCEPTION
|
||||||
@@ -47,67 +45,46 @@ class Scenario4(Scenario):
|
|||||||
if self.__tmdbApiKey is None:
|
if self.__tmdbApiKey is None:
|
||||||
raise TMDB_API_KEY_NOT_PRESENT_EXCEPTION
|
raise TMDB_API_KEY_NOT_PRESENT_EXCEPTION
|
||||||
|
|
||||||
self.__testDbFilePath = os.path.join(self._testDirectory, 'test.db')
|
|
||||||
self.createEmptyTestDatabase()
|
|
||||||
|
|
||||||
self.__ic = IndicatorCombinator(context = context)
|
self.__ic = IndicatorCombinator(context = context)
|
||||||
|
|
||||||
self.__tc = TmdbController()
|
self.__tc = TmdbController()
|
||||||
|
|
||||||
|
|
||||||
|
kwargs = {}
|
||||||
|
kwargs[ShowDescriptor.ID_KEY] = Scenario4.TEST_SHOW_IDENTIFIER
|
||||||
|
kwargs[ShowDescriptor.NAME_KEY] = Scenario4.TEST_SHOW_NAME
|
||||||
|
kwargs[ShowDescriptor.YEAR_KEY] = Scenario4.TEST_SHOW_YEAR
|
||||||
|
|
||||||
|
self.__testShowDescriptor = ShowDescriptor(**kwargs)
|
||||||
|
|
||||||
def getScenario(self):
|
def getScenario(self):
|
||||||
return self.__class__.__name__[8:]
|
return self.__class__.__name__[8:]
|
||||||
|
|
||||||
|
|
||||||
def createEmptyTestDatabase(self):
|
|
||||||
|
|
||||||
if not self._context['database'] is None:
|
|
||||||
self._context['database']['engine'].dispose()
|
|
||||||
|
|
||||||
if os.path.isfile(self.__testDbFilePath):
|
|
||||||
os.unlink(self.__testDbFilePath)
|
|
||||||
self._context['database'] = None
|
|
||||||
|
|
||||||
self._logger.debug(f"Creating test db with path {self.__testDbFilePath}")
|
|
||||||
self._context['database'] = databaseContext(databasePath=self.__testDbFilePath)
|
|
||||||
|
|
||||||
self.__sc = ShowController(context = self._context)
|
|
||||||
self.__pc = PatternController(context = self._context)
|
|
||||||
self.__mc = MediaController(context = self._context)
|
|
||||||
|
|
||||||
|
|
||||||
def prepareTestDatabase(self, sourceMediaDescriptor: MediaDescriptor):
|
def prepareTestDatabase(self, sourceMediaDescriptor: MediaDescriptor):
|
||||||
|
|
||||||
if not self._context['database'] is None:
|
if not self._context['database'] is None:
|
||||||
self._context['database']['engine'].dispose()
|
self._context['database']['engine'].dispose()
|
||||||
|
|
||||||
if os.path.isfile(self.__testDbFilePath):
|
if os.path.isfile(self._testDbFilePath):
|
||||||
os.unlink(self.__testDbFilePath)
|
os.unlink(self._testDbFilePath)
|
||||||
self._context['database'] = None
|
self._context['database'] = None
|
||||||
|
|
||||||
self._logger.debug(f"Creating test db with path {self.__testDbFilePath}")
|
self._logger.debug(f"Creating test db with path {self._testDbFilePath}")
|
||||||
self._context['database'] = databaseContext(databasePath=self.__testDbFilePath)
|
self._context['database'] = databaseContext(databasePath=self._testDbFilePath)
|
||||||
|
|
||||||
kwargs = {}
|
|
||||||
|
|
||||||
kwargs[ShowDescriptor.ID_KEY] = Scenario4.TEST_SHOW_IDENTIFIER
|
|
||||||
kwargs[ShowDescriptor.NAME_KEY] = Scenario4.TEST_SHOW_NAME
|
|
||||||
kwargs[ShowDescriptor.YEAR_KEY] = Scenario4.TEST_SHOW_YEAR
|
|
||||||
|
|
||||||
self.__testShowDescriptor = ShowDescriptor(**kwargs)
|
|
||||||
|
|
||||||
self._logger.debug(f"Adding test show '{self.__testShowDescriptor.getFilenamePrefix()}' to test db")
|
self._logger.debug(f"Adding test show '{self.__testShowDescriptor.getFilenamePrefix()}' to test db")
|
||||||
if not self.__sc.updateShow(self.__testShowDescriptor):
|
if not self._sc.updateShow(self.__testShowDescriptor):
|
||||||
raise click.ClickException('Could not create test show in db')
|
raise click.ClickException('Could not create test show in db')
|
||||||
|
|
||||||
testPatternDescriptor = {
|
testPatternDescriptor = {
|
||||||
'show_id': Scenario4.TEST_SHOW_IDENTIFIER,
|
'show_id': Scenario4.TEST_SHOW_IDENTIFIER,
|
||||||
'pattern': Scenario4.TEST_PATTERN
|
'pattern': Scenario4.TEST_PATTERN
|
||||||
}
|
}
|
||||||
patternId = self.__pc.addPattern(testPatternDescriptor)
|
patternId = self._pc.addPattern(testPatternDescriptor)
|
||||||
|
|
||||||
if patternId:
|
if patternId:
|
||||||
self.__mc.setPatternMediaDescriptor(sourceMediaDescriptor, patternId)
|
self._mc.setPatternMediaDescriptor(sourceMediaDescriptor, patternId)
|
||||||
|
|
||||||
|
|
||||||
def job(self, yieldObj: dict):
|
def job(self, yieldObj: dict):
|
||||||
@@ -152,7 +129,9 @@ class Scenario4(Scenario):
|
|||||||
|
|
||||||
self._logger.debug(f"Running Job: {variantLabel}")
|
self._logger.debug(f"Running Job: {variantLabel}")
|
||||||
|
|
||||||
|
|
||||||
# Phase 1: Setup source files
|
# Phase 1: Setup source files
|
||||||
|
|
||||||
self.clearTestDirectory()
|
self.clearTestDirectory()
|
||||||
|
|
||||||
testFileList = []
|
testFileList = []
|
||||||
@@ -175,6 +154,7 @@ class Scenario4(Scenario):
|
|||||||
|
|
||||||
testFileList.append(testFileObj)
|
testFileList.append(testFileObj)
|
||||||
|
|
||||||
|
|
||||||
# Phase 2: Prepare database
|
# Phase 2: Prepare database
|
||||||
|
|
||||||
self.createEmptyTestDatabase()
|
self.createEmptyTestDatabase()
|
||||||
@@ -182,10 +162,11 @@ class Scenario4(Scenario):
|
|||||||
|
|
||||||
|
|
||||||
# Phase 3: Run ffx
|
# Phase 3: Run ffx
|
||||||
|
|
||||||
commandSequence = [sys.executable,
|
commandSequence = [sys.executable,
|
||||||
self._ffxExecutablePath,
|
self._ffxExecutablePath,
|
||||||
'--database-file',
|
'--database-file',
|
||||||
self.__testDbFilePath,
|
self._testDbFilePath,
|
||||||
'convert']
|
'convert']
|
||||||
commandSequence += [tfo['filename'] for tfo in testFileList]
|
commandSequence += [tfo['filename'] for tfo in testFileList]
|
||||||
|
|
||||||
@@ -213,9 +194,6 @@ class Scenario4(Scenario):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
# assert not (bool(rc)
|
|
||||||
# ), f"Process failed"
|
|
||||||
|
|
||||||
jobFailed = bool(rc)
|
jobFailed = bool(rc)
|
||||||
self._logger.debug(f"{variantLabel}: Should fail: {shouldFail} / actually failed: {jobFailed}")
|
self._logger.debug(f"{variantLabel}: Should fail: {shouldFail} / actually failed: {jobFailed}")
|
||||||
|
|
||||||
@@ -239,8 +217,6 @@ class Scenario4(Scenario):
|
|||||||
assert (os.path.isfile(expectedFilePath)
|
assert (os.path.isfile(expectedFilePath)
|
||||||
), f"Result file '{expectedFilename}' in path '{self._testDirectory}' wasn't created"
|
), f"Result file '{expectedFilename}' in path '{self._testDirectory}' wasn't created"
|
||||||
|
|
||||||
###
|
|
||||||
#
|
|
||||||
|
|
||||||
rfp = FileProperties(testContext, expectedFilePath)
|
rfp = FileProperties(testContext, expectedFilePath)
|
||||||
self._logger.debug(f"{variantLabel}: Result file properties: {rfp.getFilename()} season={rfp.getSeason()} episode={rfp.getEpisode()}")
|
self._logger.debug(f"{variantLabel}: Result file properties: {rfp.getFilename()} season={rfp.getSeason()} episode={rfp.getEpisode()}")
|
||||||
@@ -258,7 +234,6 @@ class Scenario4(Scenario):
|
|||||||
rmd.applySourceIndices(sourceMediaDescriptor)
|
rmd.applySourceIndices(sourceMediaDescriptor)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for assertIndex in range(len(assertSelectorList)):
|
for assertIndex in range(len(assertSelectorList)):
|
||||||
|
|
||||||
assertSelector = assertSelectorList[assertIndex]
|
assertSelector = assertSelectorList[assertIndex]
|
||||||
@@ -294,8 +269,6 @@ class Scenario4(Scenario):
|
|||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MC_list = [MediaCombinator.getClassReference(6)]
|
MC_list = [MediaCombinator.getClassReference(6)]
|
||||||
for MC in MC_list:
|
for MC in MC_list:
|
||||||
self._logger.debug(f"MC={MC.__name__}")
|
self._logger.debug(f"MC={MC.__name__}")
|
||||||
|
|||||||
@@ -48,42 +48,90 @@ class TrackTagCombinator34(TrackTagCombinator3):
|
|||||||
|
|
||||||
# source subIndex 0
|
# source subIndex 0
|
||||||
assert ('language' in resortedTrackDescriptors[0].getTags().keys()
|
assert ('language' in resortedTrackDescriptors[0].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag")
|
||||||
assert (resortedTrackDescriptors[0].getTags()['language'] == 'jpn'
|
assert (resortedTrackDescriptors[0].getTags()['language'] == 'jpn'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'jpn'"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'jpn'")
|
||||||
assert ('title' in resortedTrackDescriptors[0].getTags().keys()
|
assert ('title' in resortedTrackDescriptors[0].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag")
|
||||||
assert (resortedTrackDescriptors[0].getTags()['title'] == 'Japanisch'
|
assert (resortedTrackDescriptors[0].getTags()['title'] == 'Japanisch'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Japanisch'"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Japanisch'")
|
||||||
|
|
||||||
assert ('THIS_IS' in resortedTrackDescriptors[0].getTags().keys() and resortedTrackDescriptors[0].getTags()['THIS_IS'] == 'track0'
|
assert ('THIS_IS' in resortedTrackDescriptors[0].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not preserved tag THIS_IS"
|
and resortedTrackDescriptors[0].getTags()['THIS_IS'] == 'track0'
|
||||||
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not preserved tag THIS_IS")
|
||||||
|
|
||||||
# source subIndex 1
|
# source subIndex 1
|
||||||
assert ('language' in resortedTrackDescriptors[1].getTags().keys()
|
assert ('language' in resortedTrackDescriptors[1].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag")
|
||||||
assert (resortedTrackDescriptors[1].getTags()['language'] == 'deu'
|
assert (resortedTrackDescriptors[1].getTags()['language'] == 'deu'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'deu'"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'deu'")
|
||||||
assert ('title' in resortedTrackDescriptors[1].getTags().keys()
|
assert ('title' in resortedTrackDescriptors[1].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag")
|
||||||
assert (resortedTrackDescriptors[1].getTags()['title'] == 'Deutsch'
|
assert (resortedTrackDescriptors[1].getTags()['title'] == 'Deutsch'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Deutsch'"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Deutsch'")
|
||||||
|
|
||||||
assert ('THIS_IS' in resortedTrackDescriptors[1].getTags().keys() and resortedTrackDescriptors[1].getTags()['THIS_IS'] == 'track1'
|
assert ('THIS_IS' in resortedTrackDescriptors[1].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[1].getSubIndex()}] has not preserved tag THIS_IS"
|
and resortedTrackDescriptors[1].getTags()['THIS_IS'] == 'track1'
|
||||||
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[1].getSubIndex()}] has not preserved tag THIS_IS")
|
||||||
|
|
||||||
# source subIndex 2
|
# source subIndex 2
|
||||||
assert ('language' in resortedTrackDescriptors[2].getTags().keys()
|
assert ('language' in resortedTrackDescriptors[2].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag")
|
||||||
assert (resortedTrackDescriptors[2].getTags()['language'] == 'eng'
|
assert (resortedTrackDescriptors[2].getTags()['language'] == 'eng'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'eng'"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'eng'")
|
||||||
assert ('title' in resortedTrackDescriptors[2].getTags().keys()
|
assert ('title' in resortedTrackDescriptors[2].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag")
|
||||||
assert (resortedTrackDescriptors[2].getTags()['title'] == 'English'
|
assert (resortedTrackDescriptors[2].getTags()['title'] == 'English'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'English'"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'English'")
|
||||||
|
|
||||||
assert ('THIS_IS' in resortedTrackDescriptors[2].getTags().keys() and resortedTrackDescriptors[2].getTags()['THIS_IS'] == 'track2'
|
assert ('THIS_IS' in resortedTrackDescriptors[2].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[2].getSubIndex()}] has not preserved tag THIS_IS"
|
and resortedTrackDescriptors[2].getTags()['THIS_IS'] == 'track2'
|
||||||
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()}"
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()}"
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[2].getSubIndex()}] has not preserved tag THIS_IS")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
@@ -95,33 +143,69 @@ class TrackTagCombinator34(TrackTagCombinator3):
|
|||||||
|
|
||||||
# source subIndex 0
|
# source subIndex 0
|
||||||
assert ('language' in resortedTrackDescriptors[0].getTags().keys()
|
assert ('language' in resortedTrackDescriptors[0].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag")
|
||||||
assert (resortedTrackDescriptors[0].getTags()['language'] == 'jpn'
|
assert (resortedTrackDescriptors[0].getTags()['language'] == 'jpn'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'jpn'"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'jpn'")
|
||||||
assert ('title' in resortedTrackDescriptors[0].getTags().keys()
|
assert ('title' in resortedTrackDescriptors[0].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag")
|
||||||
assert (resortedTrackDescriptors[0].getTags()['title'] == 'Japanisch'
|
assert (resortedTrackDescriptors[0].getTags()['title'] == 'Japanisch'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Japanisch'"
|
), (f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[0].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[0].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Japanisch'")
|
||||||
|
|
||||||
# source subIndex 1
|
# source subIndex 1
|
||||||
assert ('language' in resortedTrackDescriptors[1].getTags().keys()
|
assert ('language' in resortedTrackDescriptors[1].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[1].getSubIndex()}] has not set language tag")
|
||||||
assert (resortedTrackDescriptors[1].getTags()['language'] == 'deu'
|
assert (resortedTrackDescriptors[1].getTags()['language'] == 'deu'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'deu'"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[1].getSubIndex()}] has not set language tag 'deu'")
|
||||||
assert ('title' in resortedTrackDescriptors[1].getTags().keys()
|
assert ('title' in resortedTrackDescriptors[1].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[1].getSubIndex()}] has not set title tag")
|
||||||
assert (resortedTrackDescriptors[1].getTags()['title'] == 'Deutsch'
|
assert (resortedTrackDescriptors[1].getTags()['title'] == 'Deutsch'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Deutsch'"
|
), (f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[1].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[1].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[1].getSubIndex()}] has not set title 'Deutsch'")
|
||||||
|
|
||||||
# source subIndex 2
|
# source subIndex 2
|
||||||
assert ('language' in resortedTrackDescriptors[2].getTags().keys()
|
assert ('language' in resortedTrackDescriptors[2].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[2].getSubIndex()}] has not set language tag")
|
||||||
assert (resortedTrackDescriptors[2].getTags()['language'] == 'eng'
|
assert (resortedTrackDescriptors[2].getTags()['language'] == 'eng'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'eng'"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[2].getSubIndex()}] has not set language tag 'eng'")
|
||||||
assert ('title' in resortedTrackDescriptors[2].getTags().keys()
|
assert ('title' in resortedTrackDescriptors[2].getTags().keys()
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title tag"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[2].getSubIndex()}] has not set title tag")
|
||||||
assert (resortedTrackDescriptors[2].getTags()['title'] == 'English'
|
assert (resortedTrackDescriptors[2].getTags()['title'] == 'English'
|
||||||
), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'English'"
|
), (f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} "
|
||||||
|
+ f"index={resortedTrackDescriptors[2].getIndex()} "
|
||||||
|
+ f"[{resortedTrackDescriptors[2].getType().label()}:"
|
||||||
|
+ f"{resortedTrackDescriptors[2].getSubIndex()}] has not set title 'English'")
|
||||||
|
|
||||||
return f
|
return f
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user