def get_artists_and_collaborators_of_song_by_uri(self, uri): rows_artists = self._graph.query(Queries.find_artists_uri_compiled(uri)) rows_compilers = self._graph.query(Queries.find_compiler_uri_compiled(uri)) artist_uris = self._get_single_rows_multiple_result(rows_artists) if artist_uris is not None: for artist_uri in artist_uris: yield self.get_artist_by_uri(artist_uri) compilers_tuples = self._get_double_rows_multiple_result(rows_compilers) if compilers_tuples is not None: for compiler_tuple in compilers_tuples: yield self.get_artist_by_uri(compiler_tuple[0])
def test_query_artist_of_song(self): dataset = Dataset("A fancy dataset") generator = get_clean_graph_generator_mongo_repos() mera_graph = generator.generate_mera_graph(artist_parser=FakeArtistParser(dataset), song_parser=FakeSongParser(dataset)) rdflib_graph = mera_graph._graph rows = rdflib_graph.query(Queries.find_artists_uri_compiled(base_entities_URI + "avaloncho")) counter = 0 last_result = "" for row in rows: counter += 1 last_result = str(row[0]) self.assertEquals(counter, 1) self.assertEquals(last_result, base_entities_URI + "herroes_del_selencio")