"""Functional tests for isrc in use. Test endpoint: GET /isrc// """ import json from oto import status as response_code from backend.constants import track_field as tf from tests.testutils import db from tests.testutils import mocks @db.test_schema_no_seed def test_no_isrc_match( client_get_isrc_in_use, track_factory, mocker): """Test no match.""" track = track_factory() db.merge_model_objects([track]) mocks.track_persister.get_by_isrc_and_type(mocker, None) res = client_get_isrc_in_use(tf.TRACK_TYPE_VIDEO, track.isrc) res_body = json.loads(res.data.decode()) assert res.status_code == response_code.OK assert res_body == {'used': False, 'used_by_product_id': None} @db.test_schema_no_seed def test_isrc_match( client_get_isrc_in_use, track_factory, mocker): """Test a match.""" track = track_factory() db.merge_model_objects([track]) track_result = {'product_id': 1, 'isrc': 'isrc1'} mocks.track_persister.get_by_isrc_and_type(mocker, track_result) res = client_get_isrc_in_use(tf.TRACK_TYPE_MUSIC, track.isrc) res_body = json.loads(res.data.decode()) assert res.status_code == response_code.OK assert res_body == {'used': True, 'used_by_product_id': 1}