ffcb
This commit is contained in:
@@ -76,6 +76,12 @@ class FakeTagTable:
|
||||
def select_row(self, row_key):
|
||||
self._selected_row_key = row_key
|
||||
|
||||
def move_cursor(self, *, row=None, column=None, animate=False, scroll=True):
|
||||
if row is not None and self._row_order:
|
||||
self._selected_row_key = self._row_order[int(row)]
|
||||
if column is not None:
|
||||
self.cursor_coordinate = (self.cursor_coordinate[0], int(column))
|
||||
|
||||
def get_row_index(self, row_key):
|
||||
return self._row_order.index(row_key)
|
||||
|
||||
@@ -110,6 +116,12 @@ class FakeValueWidget:
|
||||
self.disabled = False
|
||||
|
||||
|
||||
class FakeButtonWidget:
|
||||
def __init__(self):
|
||||
self.disabled = False
|
||||
self.variant = "default"
|
||||
|
||||
|
||||
class FakeInputWidget:
|
||||
def __init__(self, value):
|
||||
self.value = value
|
||||
@@ -379,6 +391,7 @@ class TagTableScreenStateTests(unittest.TestCase):
|
||||
def test_pattern_details_screen_toggles_draft_track_drop_state(self):
|
||||
first_track = make_track_descriptor(0, 0, TrackType.VIDEO)
|
||||
second_track = make_track_descriptor(1, 0, TrackType.SUBTITLE)
|
||||
drop_button = FakeButtonWidget()
|
||||
|
||||
screen = object.__new__(PatternDetailsScreen)
|
||||
screen.context = {"logger": get_ffx_logger()}
|
||||
@@ -386,6 +399,7 @@ class TagTableScreenStateTests(unittest.TestCase):
|
||||
screen._PatternDetailsScreen__draftTracks = [first_track, second_track]
|
||||
screen._PatternDetailsScreen__pattern = None
|
||||
screen._PatternDetailsScreen__trackRowData = {}
|
||||
screen.query_one = lambda selector, _widget_type=None: drop_button
|
||||
|
||||
screen.updateTracks()
|
||||
screen.tracksTable.select_row("row-1")
|
||||
@@ -395,6 +409,39 @@ class TagTableScreenStateTests(unittest.TestCase):
|
||||
self.assertFalse(first_track.isDropped())
|
||||
self.assertTrue(second_track.isDropped())
|
||||
self.assertEqual("Ja", list(screen.tracksTable.rows.values())[1][9])
|
||||
self.assertIs(second_track, screen.getSelectedTrackDescriptor())
|
||||
self.assertEqual("warning", drop_button.variant)
|
||||
|
||||
def test_pattern_details_screen_updates_drop_button_for_selected_track(self):
|
||||
first_track = make_track_descriptor(0, 0, TrackType.VIDEO)
|
||||
second_track = make_track_descriptor(
|
||||
1,
|
||||
0,
|
||||
TrackType.SUBTITLE,
|
||||
dropped=True,
|
||||
)
|
||||
drop_button = FakeButtonWidget()
|
||||
|
||||
screen = object.__new__(PatternDetailsScreen)
|
||||
screen.tracksTable = FakeTagTable()
|
||||
screen._PatternDetailsScreen__draftTracks = [first_track, second_track]
|
||||
screen._PatternDetailsScreen__pattern = None
|
||||
screen._PatternDetailsScreen__trackRowData = {}
|
||||
screen.query_one = lambda selector, _widget_type=None: drop_button
|
||||
|
||||
screen.updateTracks()
|
||||
|
||||
self.assertEqual("default", drop_button.variant)
|
||||
|
||||
screen.tracksTable.select_row("row-1")
|
||||
screen.updateTrackDropButtonState()
|
||||
|
||||
self.assertEqual("warning", drop_button.variant)
|
||||
|
||||
screen.tracksTable.select_row("row-0")
|
||||
screen.updateTrackDropButtonState()
|
||||
|
||||
self.assertEqual("default", drop_button.variant)
|
||||
|
||||
def test_pattern_details_screen_toggles_persisted_track_drop_state(self):
|
||||
class _FakePattern:
|
||||
|
||||
Reference in New Issue
Block a user