"""Tests for graphql_orchard.""" from unittest.mock import ANY, patch from src.connectors.graphql import OrchardClient client = OrchardClient("", "", "") @patch.object(client, "_execute") def test_lookup_product_by_id(execute_mock): """Test lookup_product_by_id success case.""" execute_mock.return_value = { "data": {"getProductByLocalId": {"upc": 10292}}, "errors": [], } result = client.lookup_product_by_id(10) assert result == (10, {"upc": 10292}) execute_mock.assert_called_once_with( ANY, {"localId": "10", "system": "ORCHARD"}, ANY ) @patch.object(client, "_execute") def test_lookup_product_by_id_null(execute_mock): """Test lookup_product_by_id when null is returned.""" execute_mock.return_value = {"data": {"getProductByLocalId": None}} result = client.lookup_product_by_id(10) assert result is None execute_mock.assert_called_once_with( ANY, {"localId": "10", "system": "ORCHARD"}, ANY ) @patch.object(client, "_execute") def test_lookup_product_by_id_errors(execute_mock): """Test lookup_product_by_id on error.""" execute_mock.return_value = {"errors": [{}]} result = client.lookup_product_by_id(10) assert result is None execute_mock.assert_called_once_with( ANY, {"localId": "10", "system": "ORCHARD"}, ANY ) @patch.object(client, "_execute") def test_lookup_product_by_release_artist_id(execute_mock): """Test lookup_product_by_release_artist_id success case.""" execute_mock.return_value = { "data": { "getProductByReleaseArtistId": { "ids": [ { "localId": 10, "system": "ORCHARD", }, ], "upc": 10292, }, }, "errors": [], } result = client.lookup_product_by_release_artist_id(1293) assert result == (10, {"ids": [{"localId": 10, "system": "ORCHARD"}], "upc": 10292}) execute_mock.assert_called_once_with( ANY, { "releaseArtistId": "1293", }, ANY, ) @patch.object(client, "_execute") def test_lookup_product_by_release_artist_id_errors(execute_mock): """Test lookup_product_by_release_artist_id error case.""" execute_mock.return_value = { "data": { "getProductByReleaseArtistId": None, }, "errors": [{}], } result = client.lookup_product_by_release_artist_id(1293) assert result is None execute_mock.assert_called_once_with( ANY, { "releaseArtistId": "1293", }, ANY, ) @patch.object(client, "_execute") def test_lookup_product_by_release_artist_id_null(execute_mock): """Test lookup_product_by_release_artist_id null case.""" execute_mock.return_value = { "data": { "getProductByReleaseArtistId": None, }, "errors": [], } result = client.lookup_product_by_release_artist_id(1293) assert result is None execute_mock.assert_called_once_with( ANY, { "releaseArtistId": "1293", }, ANY, ) @patch.object(client, "_execute") def test_lookup_track_by_id(execute_mock): """Test lookup_track_by_id success case.""" execute_mock.return_value = { "data": { "getTrackByLocalId": { "isrc": 10292, }, }, "errors": [], } result = client.lookup_track_by_id(10) assert result == (10, {"isrc": 10292}) execute_mock.assert_called_once_with( ANY, { "localId": "10", "system": "ORCHARD", }, ANY, ) @patch.object(client, "_execute") def test_lookup_track_by_id_errors(execute_mock): """Test lookup_track_by_id error case.""" execute_mock.return_value = { "data": { "getTrackByLocalId": None, }, "errors": [{}], } result = client.lookup_track_by_id(10) assert result is None execute_mock.assert_called_once_with( ANY, { "localId": "10", "system": "ORCHARD", }, ANY, ) @patch.object(client, "_execute") def test_lookup_track_by_id_null(execute_mock): """Test lookup_track_by_id null case.""" execute_mock.return_value = { "data": { "getTrackByLocalId": None, }, "errors": [], } result = client.lookup_track_by_id(10) assert result is None execute_mock.assert_called_once_with( ANY, { "localId": "10", "system": "ORCHARD", }, ANY, ) @patch.object(client, "_execute") def test_lookup_track_by_track_artist_id(execute_mock): """Test lookup_track_by_track_artist_id success case.""" execute_mock.return_value = { "data": { "getTrackByTrackArtistId": { "ids": [ { "localId": 10, "system": "ORCHARD", }, ], "isrc": 10292, }, }, "errors": [], } result = client.lookup_track_by_track_artist_id(1293) assert result == ( 10, {"ids": [{"localId": 10, "system": "ORCHARD"}], "isrc": 10292}, ) execute_mock.assert_called_once_with( ANY, { "trackArtistId": "1293", }, ANY, ) @patch.object(client, "_execute") def test_lookup_track_by_track_artist_id_errors(execute_mock): """Test lookup_track_by_track_artist_id error case.""" execute_mock.return_value = { "data": { "getTrackByTrackArtistId": None, }, "errors": [{}], } result = client.lookup_track_by_track_artist_id(1293) assert result is None execute_mock.assert_called_once_with( ANY, { "trackArtistId": "1293", }, ANY, ) @patch.object(client, "_execute") def test_lookup_track_by_track_artist_id_null(execute_mock): """Test lookup_track_by_track_artist_id null case.""" execute_mock.return_value = { "data": { "getTrackByTrackArtistId": None, }, "errors": [], } result = client.lookup_track_by_track_artist_id(1293) assert result is None execute_mock.assert_called_once_with( ANY, { "trackArtistId": "1293", }, ANY, )