nightly combinator tests rc1
parent
22f4b00e76
commit
207472283b
@ -1,27 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
class DispositionCombination2():
|
||||
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getIdentifier(self):
|
||||
return self._combinationIdentifier
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
basePath = os.path.dirname(__file__)
|
||||
return [os.path.basename(p)[26:-3]
|
||||
for p
|
||||
in glob.glob(f"{ basePath }/disposition_combination_2_*.py", recursive = True)
|
||||
if p != __file__]
|
||||
|
||||
@staticmethod
|
||||
def getClassReference(identifier):
|
||||
importlib.import_module(f"ffx.test.disposition_combination_2_{ identifier }")
|
||||
for name, obj in inspect.getmembers(sys.modules[f"ffx.test.disposition_combination_2_{ identifier }"]):
|
||||
#HINT: Excluding DispositionCombination as it seems to be included by import (?)
|
||||
if inspect.isclass(obj) and name != 'DispositionCombination2' and name.startswith('DispositionCombination2'):
|
||||
return obj
|
@ -1,24 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set()) # 1
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
assert not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has set default disposition"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,28 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set()) # 1
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
if self._context['use_jellyfin']:
|
||||
assert not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has not set default disposition"
|
||||
else:
|
||||
assert trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has not set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has set default disposition"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,24 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set([TrackDisposition.DEFAULT])) # 1
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
assert trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has not set default disposition"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,23 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set([TrackDisposition.DEFAULT])) # 1
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
pass
|
||||
|
||||
def shouldFail(self):
|
||||
return True
|
@ -1,27 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
class DispositionCombination3():
|
||||
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getIdentifier(self):
|
||||
return self._combinationIdentifier
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
basePath = os.path.dirname(__file__)
|
||||
return [os.path.basename(p)[26:-3]
|
||||
for p
|
||||
in glob.glob(f"{ basePath }/disposition_combination_3_*.py", recursive = True)
|
||||
if p != __file__]
|
||||
|
||||
@staticmethod
|
||||
def getClassReference(identifier):
|
||||
importlib.import_module(f"ffx.test.disposition_combination_3_{ identifier }")
|
||||
for name, obj in inspect.getmembers(sys.modules[f"ffx.test.disposition_combination_3_{ identifier }"]):
|
||||
#HINT: Excluding DispositionCombination as it seems to be included by import (?)
|
||||
if inspect.isclass(obj) and name != 'DispositionCombination3' and name.startswith('DispositionCombination3'):
|
||||
return obj
|
@ -1,26 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set(), # 1
|
||||
set()) # 2
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
assert not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has set default disposition"
|
||||
assert not trackDescriptors[2].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #2 has set default disposition"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,31 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set(), # 1
|
||||
set()) # 2
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
if self._context['use_jellyfin']:
|
||||
assert not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has set default disposition"
|
||||
assert trackDescriptors[2].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #2 has not set default disposition"
|
||||
else:
|
||||
assert trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has not set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has set default disposition"
|
||||
assert not trackDescriptors[2].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #2 has set default disposition"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,31 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set([TrackDisposition.DEFAULT]), # 1
|
||||
set()) # 2
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
if self._context['use_jellyfin']:
|
||||
assert not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has set default disposition"
|
||||
assert trackDescriptors[2].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #2 has not set default disposition"
|
||||
else:
|
||||
assert not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has not set default disposition"
|
||||
assert not trackDescriptors[2].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #2 has set default disposition"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,27 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set(), # 1
|
||||
set([TrackDisposition.DEFAULT])) # 2
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
if self._context['use_jellyfin']:
|
||||
assert not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #0 has set default disposition"
|
||||
assert not trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #1 has set default disposition"
|
||||
assert trackDescriptors[2].getDispositionFlag(TrackDisposition.DEFAULT), f"Stream #2 has not set default disposition"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,24 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
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
|
||||
set(), # 1
|
||||
set([TrackDisposition.DEFAULT])) # 2
|
||||
|
||||
def evaluateTrackDescriptors(self, trackDescriptors):
|
||||
pass
|
||||
|
||||
def shouldFail(self):
|
||||
return True
|
@ -0,0 +1,33 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
class JellyfinCombinator():
|
||||
|
||||
IDENTIFIER = 'jellyfin'
|
||||
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getIdentifier(self):
|
||||
return JellyfinCombinator.IDENTIFIER
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
basePath = os.path.dirname(__file__)
|
||||
return [os.path.basename(p)[20:-3]
|
||||
for p
|
||||
in glob.glob(f"{ basePath }/jellyfin_combinator_*.py", recursive = True)
|
||||
if p != __file__]
|
||||
|
||||
@staticmethod
|
||||
def getClassReference(identifier):
|
||||
importlib.import_module(f"ffx.test.jellyfin_combinator_{ identifier }")
|
||||
for name, obj in inspect.getmembers(sys.modules[f"ffx.test.jellyfin_combinator_{ identifier }"]):
|
||||
#HINT: Excluding MediaCombinator as it seems to be included by import (?)
|
||||
if inspect.isclass(obj) and name != 'JellyfinCombinator' and name.startswith('JellyfinCombinator'):
|
||||
return obj
|
||||
|
||||
@staticmethod
|
||||
def getAllClassReferences():
|
||||
return [JellyfinCombinator.getClassReference(i) for i in JellyfinCombinator.list()]
|
@ -0,0 +1,34 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.media_descriptor import MediaDescriptor
|
||||
|
||||
from .jellyfin_combinator import JellyfinCombinator
|
||||
|
||||
|
||||
class JellyfinCombinator0(JellyfinCombinator):
|
||||
|
||||
VARIANT = 'j'
|
||||
|
||||
# def __init__(self, SubCombinators: dict = {}, context = None):
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
# self._SubCombinators = SubCombinators
|
||||
|
||||
def getVariant(self):
|
||||
return JellyfinCombinator0.VARIANT
|
||||
|
||||
|
||||
def getPayload(self):
|
||||
return False
|
||||
|
||||
def assertFunc(self, testObj = {}):
|
||||
pass
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,34 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.media_descriptor import MediaDescriptor
|
||||
|
||||
from .jellyfin_combinator import JellyfinCombinator
|
||||
|
||||
class JellyfinCombinator1(JellyfinCombinator):
|
||||
|
||||
VARIANT = 'J'
|
||||
|
||||
# def __init__(self, SubCombinators: dict = {}, context = None):
|
||||
def __init__(self, context = None):
|
||||
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
# self._SubCombinators = SubCombinations
|
||||
|
||||
def getVariant(self):
|
||||
return JellyfinCombinator1.VARIANT
|
||||
|
||||
|
||||
def getPayload(self):
|
||||
return True
|
||||
|
||||
def assertFunc(self, testObj = {}):
|
||||
pass
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,33 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
class MediaTagCombinator():
|
||||
|
||||
IDENTIFIER = 'mediaTag'
|
||||
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getIdentifier(self):
|
||||
return MediaTagCombinator.IDENTIFIER
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
basePath = os.path.dirname(__file__)
|
||||
return [os.path.basename(p)[21:-3]
|
||||
for p
|
||||
in glob.glob(f"{ basePath }/media_tag_combinator_*.py", recursive = True)
|
||||
if p != __file__]
|
||||
|
||||
@staticmethod
|
||||
def getClassReference(identifier):
|
||||
importlib.import_module(f"ffx.test.media_tag_combinator_{ identifier }")
|
||||
for name, obj in inspect.getmembers(sys.modules[f"ffx.test.media_tag_combinator_{ identifier }"]):
|
||||
#HINT: Excluding MediaCombinator as it seems to be included by import (?)
|
||||
if inspect.isclass(obj) and name != 'MediaTagCombinator' and name.startswith('MediaTagCombinator'):
|
||||
return obj
|
||||
|
||||
@staticmethod
|
||||
def getAllClassReferences():
|
||||
return [MediaTagCombinator.getClassReference(i) for i in MediaTagCombinator.list()]
|
@ -0,0 +1,31 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.media_descriptor import MediaDescriptor
|
||||
|
||||
from .media_tag_combinator import MediaTagCombinator
|
||||
|
||||
|
||||
class MediaTagCombinator0(MediaTagCombinator):
|
||||
|
||||
VARIANT = 'MT0'
|
||||
|
||||
# def __init__(self, SubCombinators: dict = {}, context = None):
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getVariant(self):
|
||||
return MediaTagCombinator0.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return {}
|
||||
|
||||
def assertFunc(self, testObj = {}):
|
||||
pass
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,36 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.media_descriptor import MediaDescriptor
|
||||
|
||||
from .media_tag_combinator import MediaTagCombinator
|
||||
|
||||
class MediaTagCombinator1(MediaTagCombinator):
|
||||
|
||||
VARIANT = 'MT1'
|
||||
|
||||
# def __init__(self, SubCombinators: dict = {}, context = None):
|
||||
def __init__(self, context = None):
|
||||
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
# self._SubCombinators = SubCombinations
|
||||
|
||||
def getVariant(self):
|
||||
return MediaTagCombinator1.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return {'From': 'Encoders'}
|
||||
|
||||
def assertFunc(self, mediaDescriptor: MediaDescriptor):
|
||||
mediaTags = mediaDescriptor.getTags()
|
||||
|
||||
assert 'From' in mediaTags.keys(), "'From' not in media tag keys"
|
||||
assert mediaTags.keys()['From'] == 'Encoders', "Media tag value not 'Encoders' for key 'To'"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,39 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.media_descriptor import MediaDescriptor
|
||||
|
||||
from .media_tag_combinator import MediaTagCombinator
|
||||
|
||||
class MediaTagCombinator2(MediaTagCombinator):
|
||||
|
||||
VARIANT = 'MT2'
|
||||
|
||||
# def __init__(self, SubCombinators: dict = {}, context = None):
|
||||
def __init__(self, context = None):
|
||||
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
# self._SubCombinators = SubCombinations
|
||||
|
||||
def getVariant(self):
|
||||
return MediaTagCombinator2.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return {'To': 'Fanz',
|
||||
'Yolo': 'Holo'}
|
||||
|
||||
def assertFunc(self, mediaDescriptor: MediaDescriptor):
|
||||
mediaTags = mediaDescriptor.getTags()
|
||||
|
||||
assert 'To' in mediaTags.keys(), "'To' not in media tag keys"
|
||||
assert mediaTags.keys()['To'] == 'Fanz', "Media tag value not 'Fanz' for key 'To'"
|
||||
assert 'Yolo' in mediaTags.keys(), "'Yolo' not in media tag keys"
|
||||
assert mediaTags.keys()['Yolo'] == 'Holo', "Media tag value not 'Holo' for key 'Yolo'"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -1,27 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
class TrackCombination():
|
||||
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getIdentifier(self):
|
||||
return self._combinationIdentifier
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
basePath = os.path.dirname(__file__)
|
||||
return [os.path.basename(p)[18:-3]
|
||||
for p
|
||||
in glob.glob(f"{ basePath }/track_combination_*.py", recursive = True)
|
||||
if p != __file__]
|
||||
|
||||
@staticmethod
|
||||
def getClassReference(identifier):
|
||||
importlib.import_module(f"ffx.test.track_combination_{ identifier }")
|
||||
for name, obj in inspect.getmembers(sys.modules[f"ffx.test.track_combination_{ identifier }"]):
|
||||
#HINT: Excluding DispositionCombination as it seems to be included by import (?)
|
||||
if inspect.isclass(obj) and name != 'TrackCombination' and name.startswith('TrackCombination'):
|
||||
return obj
|
@ -1,36 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
|
||||
|
||||
class TrackCombination0(TrackCombination):
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VA'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination0.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackVector(self):
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1]
|
||||
|
||||
def getSubcombinations(self):
|
||||
return
|
@ -1,42 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
|
||||
|
||||
class TrackCombination1(TrackCombination):
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VAS'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination1.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackVector(self):
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor2 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1,
|
||||
trackDescriptor2]
|
||||
|
||||
def getSubcombinations(self):
|
||||
return
|
@ -1,48 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
|
||||
|
||||
class TrackCombination1(TrackCombination):
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VASS'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination1.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackVector(self):
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor2 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor3 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1,
|
||||
trackDescriptor2,
|
||||
trackDescriptor3]
|
||||
|
||||
def getSubcombinations(self):
|
||||
return
|
@ -1,65 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
from .disposition_combination_3 import DispositionCombination3
|
||||
|
||||
|
||||
class TrackCombination3(TrackCombination):
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VASSS'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination3.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackDescriptors(self, dispositionTuple):
|
||||
|
||||
self._logger.debug(f"getTrackDescriptors(): dispositionTuple={dispositionTuple}")
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = dispositionTuple[0]
|
||||
trackDescriptor2 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = dispositionTuple[1]
|
||||
trackDescriptor3 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = dispositionTuple[2]
|
||||
trackDescriptor4 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1,
|
||||
trackDescriptor2,
|
||||
trackDescriptor3,
|
||||
trackDescriptor4]
|
||||
|
||||
def getSubcombinations(self):
|
||||
for dci in DispositionCombination3.list():
|
||||
dispositionCombination = DispositionCombination3.getClassReference(dci)(self._context)
|
||||
dispositionTuple = dispositionCombination.getDispositionTuple() # tuple of set of dispositions
|
||||
trackDescriptors = self.getTrackDescriptors(dispositionTuple)
|
||||
evaluateFunc = dispositionCombination.evaluateTrackDescriptors # assert function
|
||||
shouldFail = dispositionCombination.shouldFail() # true if this combination should fail
|
||||
dispositionIdentifier = dispositionCombination.getIdentifier()
|
||||
yield (trackDescriptors, evaluateFunc, shouldFail, dispositionIdentifier)
|
@ -1,42 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
|
||||
|
||||
class TrackCombination4(TrackCombination):
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VAA'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination4.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackVector(self):
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
trackDescriptor2 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1,
|
||||
trackDescriptor2]
|
||||
|
||||
def getSubcombinations(self):
|
||||
return
|
@ -1,48 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
|
||||
|
||||
class TrackCombination5(TrackCombination):
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VAAS'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination5.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackVector(self):
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
trackDescriptor2 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor3 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1,
|
||||
trackDescriptor2,
|
||||
trackDescriptor3]
|
||||
|
||||
def getSubcombinations(self):
|
||||
return
|
@ -1,54 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
|
||||
|
||||
class TrackCombination6(TrackCombination):
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VAASS'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination6.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackVector(self):
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
trackDescriptor2 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor3 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor4 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1,
|
||||
trackDescriptor2,
|
||||
trackDescriptor3,
|
||||
trackDescriptor4]
|
||||
|
||||
def getSubcombinations(self):
|
||||
return
|
@ -1,62 +0,0 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from .track_combination import TrackCombination
|
||||
|
||||
|
||||
class TrackCombination7(TrackCombination):
|
||||
"""VAASSS"""
|
||||
|
||||
COMBINATION_IDENTIFIER = 'VAASSS'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
self._combinationIdentifier = TrackCombination7.COMBINATION_IDENTIFIER
|
||||
|
||||
def getTrackVector(self):
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.VIDEO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor0 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor1 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
# kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = set([TrackDisposition.DEFAULT])
|
||||
trackDescriptor2 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor3 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor4 = TrackDescriptor(**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
kwargs[TrackDescriptor.CONTEXT_KEY] = self._context
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
trackDescriptor5 = TrackDescriptor(**kwargs)
|
||||
|
||||
return [trackDescriptor0,
|
||||
trackDescriptor1,
|
||||
trackDescriptor2,
|
||||
trackDescriptor3,
|
||||
trackDescriptor4,
|
||||
trackDescriptor5]
|
||||
|
||||
def getSubcombinations(self):
|
||||
return
|
@ -0,0 +1,33 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
class TrackTagCombinator2():
|
||||
|
||||
IDENTIFIER = 'trackTag2'
|
||||
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getIdentifier(self):
|
||||
return TrackTagCombinator2.IDENTIFIER
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
basePath = os.path.dirname(__file__)
|
||||
return [os.path.basename(p)[23:-3]
|
||||
for p
|
||||
in glob.glob(f"{ basePath }/track_tag_combinator_2_*.py", recursive = True)
|
||||
if p != __file__]
|
||||
|
||||
@staticmethod
|
||||
def getClassReference(identifier):
|
||||
importlib.import_module(f"ffx.test.track_tag_combinator_2_{ identifier }")
|
||||
for name, obj in inspect.getmembers(sys.modules[f"ffx.test.track_tag_combinator_2_{ identifier }"]):
|
||||
#HINT: Excluding DispositionCombination as it seems to be included by import (?)
|
||||
if inspect.isclass(obj) and name != 'TrackTagCombinator2' and name.startswith('TrackTagCombinator2'):
|
||||
return obj
|
||||
|
||||
@staticmethod
|
||||
def getAllClassReferences():
|
||||
return [TrackTagCombinator2.getClassReference(i) for i in TrackTagCombinator2.list()]
|
@ -0,0 +1,32 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_2 import TrackTagCombinator2
|
||||
|
||||
|
||||
class TrackTagCombinator20(TrackTagCombinator2):
|
||||
|
||||
VARIANT = 'T00'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator20.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({}, # 0
|
||||
{}) # 1
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
assert not '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 set language tag"
|
||||
assert not '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 set title tag"
|
||||
|
||||
assert not '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 set language tag"
|
||||
assert not '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 set title tag"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,34 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_2 import TrackTagCombinator2
|
||||
|
||||
|
||||
class TrackTagCombinator21(TrackTagCombinator2):
|
||||
|
||||
VARIANT = 'T10'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator21.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({'language': 'fra', 'title': 'Französisch'}, # 0
|
||||
{}) # 1
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
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"
|
||||
assert resortedTrackDescriptors[0].getTags()['language'] == 'fra', f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'fra'"
|
||||
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"
|
||||
assert resortedTrackDescriptors[0].getTags()['title'] == 'Französisch', f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Französisch'"
|
||||
|
||||
assert not '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 set language tag"
|
||||
assert not '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 set title tag"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,35 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_2 import TrackTagCombinator2
|
||||
|
||||
|
||||
class TrackTagCombinator21(TrackTagCombinator2):
|
||||
|
||||
VARIANT = 'T01'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator21.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({}, # 0
|
||||
{'language': 'bas', 'title': 'Baskisch'}) # 1
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
assert not '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 set language tag"
|
||||
assert not '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 set title tag"
|
||||
|
||||
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"
|
||||
assert resortedTrackDescriptors[1].getTags()['language'] == 'bas', f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'bas'"
|
||||
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"
|
||||
assert resortedTrackDescriptors[1].getTags()['title'] == 'Baskisch', f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Baskisch'"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
||||
|
@ -0,0 +1,37 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_2 import TrackTagCombinator2
|
||||
|
||||
|
||||
class TrackTagCombinator23(TrackTagCombinator2):
|
||||
|
||||
VARIANT = 'T11'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator23.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({'language': 'deu', 'title': 'Deutsch'}, # 0
|
||||
{'language': 'jpn', 'title': 'Japanisch'}) # 1
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
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"
|
||||
assert resortedTrackDescriptors[0].getTags()['language'] == 'deu', f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'deu'"
|
||||
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"
|
||||
assert resortedTrackDescriptors[0].getTags()['title'] == 'Deutsch', f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Deutsch'"
|
||||
|
||||
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"
|
||||
assert resortedTrackDescriptors[1].getTags()['language'] == 'jpn', f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'jpn'"
|
||||
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"
|
||||
assert resortedTrackDescriptors[1].getTags()['title'] == 'Japanisch', f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Japanisch'"
|
||||
|
||||
|
||||
def shouldFail(self):
|
||||
return True
|
@ -0,0 +1,33 @@
|
||||
import os, sys, importlib, glob, inspect, itertools
|
||||
|
||||
class TrackTagCombinator3():
|
||||
|
||||
IDENTIFIER = 'trackTag3'
|
||||
|
||||
def __init__(self, context = None):
|
||||
self._context = context
|
||||
self._logger = context['logger']
|
||||
self._reportLogger = context['report_logger']
|
||||
|
||||
def getIdentifier(self):
|
||||
return TrackTagCombinator3.IDENTIFIER
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
basePath = os.path.dirname(__file__)
|
||||
return [os.path.basename(p)[23:-3]
|
||||
for p
|
||||
in glob.glob(f"{ basePath }/track_tag_combinator_3_*.py", recursive = True)
|
||||
if p != __file__]
|
||||
|
||||
@staticmethod
|
||||
def getClassReference(identifier):
|
||||
importlib.import_module(f"ffx.test.track_tag_combinator_3_{ identifier }")
|
||||
for name, obj in inspect.getmembers(sys.modules[f"ffx.test.track_tag_combinator_3_{ identifier }"]):
|
||||
#HINT: Excluding DispositionCombination as it seems to be included by import (?)
|
||||
if inspect.isclass(obj) and name != 'TrackTagCombinator3' and name.startswith('TrackTagCombinator3'):
|
||||
return obj
|
||||
|
||||
@staticmethod
|
||||
def getAllClassReferences():
|
||||
return [TrackTagCombinator3.getClassReference(i) for i in TrackTagCombinator3.list()]
|
@ -0,0 +1,36 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_3 import TrackTagCombinator3
|
||||
|
||||
|
||||
class TrackTagCombinator30(TrackTagCombinator3):
|
||||
|
||||
VARIANT = 'T000'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator30.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({}, # 0
|
||||
{}, # 1
|
||||
{}) # 2
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
assert not '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 set language tag"
|
||||
assert not '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 set title tag"
|
||||
|
||||
assert not 'language' in resortedTrackDescriptors[1].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[1].getSubIndex()}] has set language tag"
|
||||
assert not 'title' in resortedTrackDescriptors[1].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[1].getSubIndex()}] has set title tag"
|
||||
|
||||
assert not 'language' in resortedTrackDescriptors[2].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[2].getSubIndex()}] has set language tag"
|
||||
assert not 'title' in resortedTrackDescriptors[2].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[2].getSubIndex()}] has set title tag"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,38 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_3 import TrackTagCombinator3
|
||||
|
||||
|
||||
class TrackTagCombinator31(TrackTagCombinator3):
|
||||
|
||||
VARIANT = 'T100'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator31.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({'language': 'fra', 'title': 'Französisch'}, # 0
|
||||
{}, # 1
|
||||
{}) # 2
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
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"
|
||||
assert resortedTrackDescriptors[0].getTags()['language'] == 'fra', f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'fra'"
|
||||
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"
|
||||
assert resortedTrackDescriptors[0].getTags()['title'] == 'Französisch', f"Stream src_index={resortedTrackDescriptors[0].getSourceIndex()} index={resortedTrackDescriptors[0].getIndex()} [{resortedTrackDescriptors[0].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Französisch'"
|
||||
|
||||
assert not 'language' in resortedTrackDescriptors[1].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[1].getSubIndex()}] has set language tag"
|
||||
assert not 'title' in resortedTrackDescriptors[1].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[1].getSubIndex()}] has set title tag"
|
||||
|
||||
assert not 'language' in resortedTrackDescriptors[2].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[2].getSubIndex()}] has set language tag"
|
||||
assert not 'title' in resortedTrackDescriptors[2].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[2].getSubIndex()}] has set title tag"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,39 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_3 import TrackTagCombinator3
|
||||
|
||||
|
||||
class TrackTagCombinator32(TrackTagCombinator3):
|
||||
|
||||
VARIANT = 'T010'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator32.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({}, # 0
|
||||
{'language': 'bas', 'title': 'Baskisch'}, # 1
|
||||
{}) # 2
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
assert not '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 set language tag"
|
||||
assert not '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 set title tag"
|
||||
|
||||
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"
|
||||
assert resortedTrackDescriptors[1].getTags()['language'] == 'bas', f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set language tag 'bas'"
|
||||
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"
|
||||
assert resortedTrackDescriptors[1].getTags()['title'] == 'Baskisch', f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[0].getSubIndex()}] has not set title 'Baskisch'"
|
||||
|
||||
assert not 'language' in resortedTrackDescriptors[2].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[2].getSubIndex()}] has set language tag"
|
||||
assert not 'title' in resortedTrackDescriptors[2].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[2].getSourceIndex()} index={resortedTrackDescriptors[2].getIndex()} [{resortedTrackDescriptors[2].getType().label()}:{resortedTrackDescriptors[2].getSubIndex()}] has set title tag"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,38 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_3 import TrackTagCombinator3
|
||||
|
||||
|
||||
class TrackTagCombinator33(TrackTagCombinator3):
|
||||
|
||||
VARIANT = 'T001'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator33.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({}, # 0
|
||||
{}, # 1
|
||||
{'language': 'eng', 'title': 'English'}) # 2
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
assert not '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 set language tag"
|
||||
assert not '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 set title tag"
|
||||
|
||||
assert not 'language' in resortedTrackDescriptors[1].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[1].getSubIndex()}] has set language tag"
|
||||
assert not 'title' in resortedTrackDescriptors[1].getTags().keys(), f"Stream src_index={resortedTrackDescriptors[1].getSourceIndex()} index={resortedTrackDescriptors[1].getIndex()} [{resortedTrackDescriptors[1].getType().label()}:{resortedTrackDescriptors[1].getSubIndex()}] has set title tag"
|
||||
|
||||
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"
|
||||
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'"
|
||||
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"
|
||||
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'"
|
||||
|
||||
def shouldFail(self):
|
||||
return False
|
@ -0,0 +1,42 @@
|
||||
import os, sys, importlib, glob, inspect
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from .track_tag_combinator_3 import TrackTagCombinator3
|
||||
|
||||
|
||||
class TrackTagCombinator34(TrackTagCombinator3):
|
||||
|
||||
VARIANT = 'T111'
|
||||
|
||||
def __init__(self, context):
|
||||
super().__init__(context)
|
||||
|
||||
def getVariant(self):
|
||||
return TrackTagCombinator34.VARIANT
|
||||
|
||||
def getPayload(self):
|
||||
return ({'language': 'jpn', 'title': 'Japanisch'}, # 0
|
||||
{'language': 'deu', 'title': 'Deutsch'}, # 1
|
||||
{'language': 'eng', 'title': 'English'}) # 2
|
||||
|
||||
def assertFunc(self, trackDescriptors):
|
||||
|
||||
resortedTrackDescriptors = sorted(trackDescriptors, key=lambda d: d.getSourceIndex())
|
||||
|
||||
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"
|
||||
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'"
|
||||
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"
|
||||
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'"
|
||||
|
||||
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"
|
||||
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'"
|
||||
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"
|
||||
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'"
|
||||
|
||||
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"
|
||||
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'"
|
||||
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"
|
||||
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'"
|
||||
|
||||
def shouldFail(self):
|
||||
return True
|
Loading…
Reference in New Issue