From a8791f925d2f2a61bc0c4ecef840d054a81a1ea0 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sun, 13 Apr 2025 10:17:58 +0100 Subject: [PATCH] All test_playlistmodel tests pass --- app/playlistmodel.py | 17 +++++++++-------- app/playlistrow.py | 2 +- tests/test_playlistmodel.py | 35 +++++++++++++++-------------------- 3 files changed, 25 insertions(+), 29 deletions(-) diff --git a/app/playlistmodel.py b/app/playlistmodel.py index 5edf3c7..05a128a 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -857,7 +857,7 @@ class PlaylistModel(QAbstractTableModel): # @log_call def move_rows_between_playlists( self, - from_rows: list[PlaylistRow], + from_rows: list[int], to_row_number: int, to_playlist_id: int, ) -> None: @@ -878,7 +878,7 @@ class PlaylistModel(QAbstractTableModel): # and the row range must be contiguous. Process the highest rows # first so the lower row numbers are unchanged - row_groups = self._reversed_contiguous_row_groups([a.row_number for a in from_rows]) + row_groups = self._reversed_contiguous_row_groups(from_rows) # Handle the moves in row_group chunks @@ -891,10 +891,10 @@ class PlaylistModel(QAbstractTableModel): to_row_number + len(row_group) ) self.signals.signal_begin_insert_rows.emit(insert_rows) - ds.move_rows(from_rows=row_group, - from_playlist_id=self.playlist_id, - to_row=to_row_number, - to_playlist_id=to_playlist_id) + ds.playlist_move_rows(from_rows=row_group, + from_playlist_id=self.playlist_id, + to_row=to_row_number, + to_playlist_id=to_playlist_id) self.signals.signal_end_insert_rows.emit(to_playlist_id) super().endRemoveRows() @@ -921,6 +921,7 @@ class PlaylistModel(QAbstractTableModel): return super().endInsertRows() + self.refresh_data() # @log_call def move_track_add_note( @@ -1035,7 +1036,7 @@ class PlaylistModel(QAbstractTableModel): """Populate dict for one row from database""" plrid = self.playlist_rows[row_number].playlistrow_id - refreshed_row = ds.get_playlist_row(plrid) + refreshed_row = ds.playlistrow_by_id(plrid) if not refreshed_row: raise ApplicationError(f"Failed to retrieve row {self.playlist_id=}, {row_number=}") @@ -1161,7 +1162,7 @@ class PlaylistModel(QAbstractTableModel): header_text = header_text[0:-1] # Parse passed header text and remove the first colour match string - return ds.remove_colour_substring(header_text) + return ds.notecolours_remove_colour_substring(header_text) def rowCount(self, index: QModelIndex = QModelIndex()) -> int: """Standard function for view""" diff --git a/app/playlistrow.py b/app/playlistrow.py index aee0fb8..0928b88 100644 --- a/app/playlistrow.py +++ b/app/playlistrow.py @@ -161,7 +161,7 @@ class PlaylistRow: if self.track_id > 0: raise ApplicationError("Attempting to add track to row with existing track ({self=}") - ds.add_track_to_header(playlistrow_id=self.playlistrow_id, track_id=track_id) + ds.track_add_to_header(playlistrow_id=self.playlistrow_id, track_id=track_id) # Need to update with track information track = ds.track_by_id(track_id) diff --git a/tests/test_playlistmodel.py b/tests/test_playlistmodel.py index 3a71409..bb1ecc2 100644 --- a/tests/test_playlistmodel.py +++ b/tests/test_playlistmodel.py @@ -37,8 +37,9 @@ class TestMMMiscTracks(unittest.TestCase): for row in range(len(self.test_tracks)): track_path = self.test_tracks[row % len(self.test_tracks)] - track = ds.track_create(**get_all_track_metadata(track_path)) - self.model.insert_row(track_id=track.id, note=f"{row=}") + metadata = get_all_track_metadata(track_path) + track = ds.track_create(metadata) + self.model.insert_row(track_id=track.track_id, note=f"{row=}") def tearDown(self): db.drop_all() @@ -91,14 +92,14 @@ class TestMMMiscNoPlaylist(unittest.TestCase): # insert a track into a new playlist playlist = ds.playlist_create(self.PLAYLIST_NAME, template_id=0) # Create a model - model = playlistmodel.PlaylistModel(playlist.id, is_template=False) + model = playlistmodel.PlaylistModel(playlist.playlist_id, is_template=False) # test repr _ = str(model) track_path = self.test_tracks[0] metadata = get_all_track_metadata(track_path) track = ds.track_create(metadata) - model.insert_row(track_id=track.id) + model.insert_row(track_id=track.track_id) prd = model.playlist_rows[model.rowCount() - 1] # test repr @@ -118,7 +119,7 @@ class TestMMMiscRowMove(unittest.TestCase): db.create_all() self.playlist = ds.playlist_create(self.PLAYLIST_NAME, template_id=0) - self.model = playlistmodel.PlaylistModel(self.playlist.id, is_template=False) + self.model = playlistmodel.PlaylistModel(self.playlist.playlist_id, is_template=False) for row in range(self.ROWS_TO_CREATE): self.model.insert_row(note=str(row)) @@ -207,12 +208,10 @@ class TestMMMiscRowMove(unittest.TestCase): for row in range(self.ROWS_TO_CREATE): model_dst.insert_row(note=str(row)) - ds.playlist_move_rows( - from_rows, self.playlist.playlist_id, to_row, playlist_dst.playlist_id - ) + model_src.move_rows_between_playlists(from_rows, to_row, playlist_dst.playlist_id) - assert len(model_src.playlist_rows) == self.ROWS_TO_CREATE - len(from_rows) - assert len(model_dst.playlist_rows) == self.ROWS_TO_CREATE + len(from_rows) + assert model_src.rowCount() == self.ROWS_TO_CREATE - len(from_rows) + assert model_dst.rowCount() == self.ROWS_TO_CREATE + len(from_rows) assert sorted([a.row_number for a in model_src.playlist_rows.values()]) == list( range(len(model_src.playlist_rows)) ) @@ -230,9 +229,7 @@ class TestMMMiscRowMove(unittest.TestCase): for row in range(self.ROWS_TO_CREATE): model_dst.insert_row(note=str(row)) - ds.playlist_move_rows( - from_rows, self.playlist.playlist_id, to_row, playlist_dst.playlist_id - ) + model_src.move_rows_between_playlists(from_rows, to_row, playlist_dst.playlist_id) # Check the rows of the destination model row_notes = [] @@ -242,8 +239,8 @@ class TestMMMiscRowMove(unittest.TestCase): ) row_notes.append(model_dst.data(index, Qt.ItemDataRole.EditRole)) - assert len(model_src.playlist_rows) == self.ROWS_TO_CREATE - len(from_rows) - assert len(model_dst.playlist_rows) == self.ROWS_TO_CREATE + len(from_rows) + assert model_src.rowCount() == self.ROWS_TO_CREATE - len(from_rows) + assert model_dst.rowCount() == self.ROWS_TO_CREATE + len(from_rows) assert [int(a) for a in row_notes] == [0, 1, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10] def test_move_multiple_rows_between_playlists_to_end(self): @@ -260,9 +257,7 @@ class TestMMMiscRowMove(unittest.TestCase): for row in range(self.ROWS_TO_CREATE): model_dst.insert_row(note=str(row)) - ds.playlist_move_rows( - from_rows, self.playlist.id, playlist_dst.playlist_id, to_row - ) + model_src.move_rows_between_playlists(from_rows, to_row, playlist_dst.playlist_id) # Check the rows of the destination model row_notes = [] @@ -272,8 +267,8 @@ class TestMMMiscRowMove(unittest.TestCase): ) row_notes.append(model_dst.data(index, Qt.ItemDataRole.EditRole)) - assert len(model_src.playlist_rows) == self.ROWS_TO_CREATE - len(from_rows) - assert len(model_dst.playlist_rows) == self.ROWS_TO_CREATE + len(from_rows) + assert model_src.rowCount() == self.ROWS_TO_CREATE - len(from_rows) + assert model_dst.rowCount() == self.ROWS_TO_CREATE + len(from_rows) assert [int(a) for a in row_notes] == [ 0, 1,