import sys
sys.path.insert(0, '/opt/struktur/youtube-research')
import e2e_worker
class Track:
def __init__(self, code, language, generated, text):
self.language_code = code
self.language = language
self.is_generated = generated
self.is_translatable = True
self.text = text
def fetch(self):
return [{'text': self.text, 'start': 0, 'duration': 1}]
class Listing:
def __init__(self, tracks): self.tracks = tracks
def __iter__(self): return iter(self.tracks)
class API:
def __init__(self, tracks): self.tracks = tracks
def list(self, yid): return Listing(self.tracks)
def run(tracks):
e2e_worker._transcript_api = lambda: (API(tracks), False)
segs, meta = e2e_worker.fetch_transcript_with_meta('TEST')
return meta['selected_track'], segs[0][3]
selected, text = run([
Track('en', 'English', False, 'english manual'),
Track('de', 'German', True, 'german auto'),
Track('de', 'German', False, 'german manual'),
])
assert selected['language_code'] == 'de' and selected['is_generated'] is False and text == 'german manual'
selected, text = run([Track('en', 'English', False, 'english manual'), Track('de', 'German', True, 'german auto')])
assert selected['language_code'] == 'de' and selected['is_generated'] is True and text == 'german auto'
print('mock_track_selection=PASS')