"""Integration tests for Rights Attribute Suggestion Persister.""" from backend.connectors import mysql from backend.models.rights_attribute import TrackRightsAttributeSuggestions from backend.models.track_rights_attribute_persister import TrackRightsAttributePersister from tests.testutils import db SUGGESTIONS = [ {'attribute_id': 2, 'reasons': [{'type': 'keyword_match', 'keyword': 'dragonball', 'on': 'track_name'}]}, {'attribute_id': 3, 'reasons': [{'type': 'vendor_subaccount_match', 'vendor_id': 99, 'subaccount_id': 7}]}, ] @db.test_schema def test_write_rights_attribute_suggestions_inserts_one_row(): """Test that write_rights_attribute_suggestions inserts a single row with the suggestions JSON.""" TrackRightsAttributePersister.write_rights_attribute_suggestions( unique_track_id=182, suggestions=SUGGESTIONS, user_uuid='8955b4aa-2ad0-4b0b-a2ea-6f070554d6d0', review_queue_id=42, ) with mysql.db_session() as session: rows = ( session.query(TrackRightsAttributeSuggestions) .filter( TrackRightsAttributeSuggestions.unique_track_id == 182, TrackRightsAttributeSuggestions.review_queue_id == 42, ) .all() ) assert len(rows) == 1 assert rows[0].suggestions == SUGGESTIONS @db.test_schema def test_write_rights_attribute_suggestions_stores_correct_fields(): """Test that the inserted suggestion row stores all fields correctly.""" TrackRightsAttributePersister.write_rights_attribute_suggestions( unique_track_id=182, suggestions=SUGGESTIONS, user_uuid='8955b4aa-2ad0-4b0b-a2ea-6f070554d6d0', review_queue_id=99, ) with mysql.db_session() as session: row = ( session.query(TrackRightsAttributeSuggestions) .filter( TrackRightsAttributeSuggestions.unique_track_id == 182, TrackRightsAttributeSuggestions.review_queue_id == 99, ) .one() ) assert row.unique_track_id == 182 assert row.suggestions == SUGGESTIONS assert row.user_uuid == '8955b4aa-2ad0-4b0b-a2ea-6f070554d6d0' assert row.review_queue_id == 99