"""Tests for TrackWriter model.""" from ows_product_physical.connector.mysql import db_session from ows_product_physical.models import track_writer from ows_product_physical.models.track import Track def test_track_writer_to_dict(): """Test TrackWriter.to_dict() method.""" expected_result = { 'track_writer_id': 1, 'unique_track_id': 1, 'writer_name': 'Writer Name', } writer = track_writer.TrackWriter( track_writer_id=1, unique_track_id=1, writer_name='Writer Name', ) assert expected_result == writer.to_dict() def test_delete_writer_for_track(db_with_data): """Assert track_writer.delete_by_track_id method success.""" with db_session() as session: track = session.query(Track).get(1) writers = [ writer.to_dict() for writer in track.track_writers ] assert writers != [{ 'id': 0, 'name': 'Writer 1', 'track_id': 1, }] track_writer.delete_by_track_id(1, session) session.expire_all() assert len(track.track_writers) == 0 def test_bulk_delete_by_track_id_writer_for_track(db_with_data): """Assert track_writer.bulk_delete_by_track_id method success.""" track_numbers = [1, 2, 3] with db_session() as session: writers_for_tracks = ( session.query(track_writer.TrackWriter) .filter( track_writer.TrackWriter.track_id.in_(track_numbers) ) ) assert writers_for_tracks.count() == 2 track_writer.bulk_delete_by_track_id([1, 2], session) writers_for_tracks = ( session.query(track_writer.TrackWriter) .filter( track_writer.TrackWriter.track_id.in_(track_numbers) ) ) assert writers_for_tracks.count() == 0