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")