from bulkperformancerights.connectors import mysql from bulkperformancerights.logic import update def test_update_track_recording_country(db_fixture): target_track_id = 1 canada_country_id = 2 update_test = update.update_track_recording_country(db_fixture, target_track_id, canada_country_id) test_result = update_test.last_updated_params() assert test_result.get('recording_country') == canada_country_id def test_update_track_writer(db_fixture): track_id = 1 new_track_writers = ['Bob Marley'] update_test = update.update_track_writer(db_fixture, track_id, new_track_writers) test_result = update_test.last_inserted_params() assert test_result.get('writer_name_0') == new_track_writers[0] new_track_writers = ['Bob Marley', 'Johhny Cash'] update_test = update.update_track_writer(db_fixture, track_id, new_track_writers) test_result = update_test.last_inserted_params() assert test_result.get('writer_name_1') == new_track_writers[1] assert update_test.rowcount == 2 def test_update_line(db_fixture): valid_line1 = {'Orchard Track Unique ID': 1, 'Songwriter(s)': 'Peter Tosh|BAR', 'Country of Recording': 'USA', 'Nationality of 1st Producer': 'Mexico', 'Master Rights': 'Yes'} # asserting all went through as expected country_dict = {'USA': 1, 'Mexico': 2} session = mysql.art_relations_session() assert update.update_line(session, valid_line1, country_dict) is True # asserting all went through as expected with an empty val also valid_line1['Country of Recording'] = None assert update.update_line(session, valid_line1, country_dict) is True valid_line1['Songwriter(s)'] = 2 assert update.update_line(session, valid_line1, country_dict) is True # empty lines will not be counted in the processed count valid_empty_line = {'Orchard Track Unique ID': 1, 'Songwriter(s)': None, 'Country of Recording': None, 'Nationality of 1st Producer': None, 'Master Rights': None} assert update.update_line(session, valid_empty_line, country_dict) is False