def test_index_by_fk_1(self): columns = {'id': '1', 'area': '2', 'type': '3'} parsed_message = Message(1, 'area_alias', columns, 'delete') handler.SCHEMA = SCHEMA self.handler = handler.Handler(SCHEMA.keys()) for entity_type, entity in SCHEMA.items(): self.handler.cores[entity_type] = mock.Mock() self.handler._index_by_fk(parsed_message) calls = self.handler.db_session().execute.call_args_list self.assertEqual(len(calls), 6) actual_queries = [str(call[0][0]) for call in calls] expected_queries = [ 'SELECT place_1.id AS place_1_id \n' 'FROM musicbrainz.place AS place_1 JOIN musicbrainz.area ON musicbrainz.area.id = place_1.area \n' 'WHERE musicbrainz.area.id = :id_1', 'SELECT label_1.id AS label_1_id \n' 'FROM musicbrainz.label AS label_1 JOIN musicbrainz.area ON musicbrainz.area.id = label_1.area \n' 'WHERE musicbrainz.area.id = :id_1', 'SELECT artist_1.id AS artist_1_id \n' 'FROM musicbrainz.artist AS artist_1 JOIN musicbrainz.area ON musicbrainz.area.id = artist_1.end_area \n' 'WHERE musicbrainz.area.id = :id_1', 'SELECT artist_1.id AS artist_1_id \n' 'FROM musicbrainz.artist AS artist_1 JOIN musicbrainz.area ON musicbrainz.area.id = artist_1.area \n' 'WHERE musicbrainz.area.id = :id_1', 'SELECT artist_1.id AS artist_1_id \n' 'FROM musicbrainz.artist AS artist_1 JOIN musicbrainz.area ON musicbrainz.area.id = artist_1.begin_area \n' 'WHERE musicbrainz.area.id = :id_1', 'SELECT musicbrainz.area.id AS musicbrainz_area_id \n' 'FROM musicbrainz.area \n' 'WHERE musicbrainz.area.id = :id_1' ] self.assertEqual(expected_queries, actual_queries)
def test_index_by_fk_3(self): columns = {'release_group': 1} parsed_message = Message(1, 'release', columns, 'delete') handler.SCHEMA = SCHEMA self.handler = handler.Handler() for entity_type, entity in SCHEMA.items(): self.handler.cores[entity_type] = mock.Mock() entity.build_entity_query = mock.MagicMock() self.handler._index_by_fk(parsed_message) calls = self.handler.db_session().execute.call_args_list self.assertEqual(len(calls), 1) actual_queries = [str(call[0][0]) for call in calls] expected_queries = [ 'SELECT musicbrainz.release_group.id AS musicbrainz_release_group_id \n' 'FROM musicbrainz.release_group \n' 'WHERE musicbrainz.release_group.id = :id_1'] self.assertEqual(expected_queries, actual_queries)
def _parsed_message(body='{"_table": "artist", "id": "42"}', channel="search.index"): msg = Message(body=body) parsed_message = PMessage.from_amqp_message(channel, msg) return parsed_message
def _parsed_message(body="artist 123 456", channel="search.index"): msg = Message(body=body) parsed_message = PMessage.from_amqp_message(channel, msg) return parsed_message