diff --git a/grakn/service/Session/Concept/Concept.py b/grakn/service/Session/Concept/Concept.py index 721143d4..6fa49c22 100644 --- a/grakn/service/Session/Concept/Concept.py +++ b/grakn/service/Session/Concept/Concept.py @@ -595,8 +595,8 @@ def to_pair(tx_service, iter_res): else: id_mapping[role_id] = role role_key = role - mapping[role_key] = set() - mapping[role_key].add(player) + mapping[role_key] = [] + mapping[role_key].append(player) return mapping diff --git a/tests/integration/test_answer.py b/tests/integration/test_answer.py index c21aece0..02055a2e 100644 --- a/tests/integration/test_answer.py +++ b/tests/integration/test_answer.py @@ -138,7 +138,7 @@ def test_delete_returns_Void(self): tx.close() client.keyspaces().delete("matchdelete_void") - def test_compute_count_empty_graph_anwer_Value(self): + def test_compute_count_empty_graph_answer_Value(self): with client.session("countingzero") as local_session: tx = local_session.transaction().write() tx.put_entity_type("foo") @@ -149,7 +149,7 @@ def test_compute_count_empty_graph_anwer_Value(self): tx.close() client.keyspaces().delete("countingzero") - def test_aggr_count_empty_graph_anwer_Value(self): + def test_aggr_count_empty_graph_answer_Value(self): with client.session("countingnonzero") as local_session: tx = local_session.transaction().write() tx.query("define person sub entity; dog sub entity;") diff --git a/tests/integration/test_concept.py b/tests/integration/test_concept.py index a722cc07..7b7aa739 100644 --- a/tests/integration/test_concept.py +++ b/tests/integration/test_concept.py @@ -669,8 +669,8 @@ def test_role_players_2_roles_1_player(self): role_players_map = parentship.role_players_map() self.assertEqual(len(role_players_map.keys()), 2) for role in role_players_map: - players_set = role_players_map[role] - self.assertEqual(len(players_set), 1) + players_list = role_players_map[role] + self.assertEqual(len(players_list), 1) self.assertTrue(role.is_role()) role_players = list(parentship.role_players()) @@ -691,14 +691,13 @@ def test_role_players_1_role_2_players(self): role_players_map = parentship.role_players_map() self.assertEqual(len(role_players_map.keys()), 1) for role in role_players_map: - players_set = role_players_map[role] - self.assertEqual(len(players_set), 2) + players_list = role_players_map[role] + self.assertEqual(len(players_list), 2) self.assertTrue(role.is_role()) role_players = list(parentship.role_players()) self.assertEqual(len(role_players), 2) - @unittest.skip("behaviour changed on server side") def test_role_players_2_roles_same_player(self): parentship_type = self.tx.get_schema_concept("parentship") person_type = self.tx.get_schema_concept("person") @@ -714,12 +713,34 @@ def test_role_players_2_roles_same_player(self): role_players_map = parentship.role_players_map() self.assertEqual(len(role_players_map.keys()), 2) for role in role_players_map: - players_set = role_players_map[role] - self.assertEqual(len(players_set), 1) + players_list = role_players_map[role] + self.assertEqual(len(players_list), 1) self.assertTrue(role.is_role()) role_players = list(parentship.role_players()) - self.assertEqual(len(role_players), 1) + self.assertEqual(len(role_players), 2) + self.assertTrue(role_players[0].is_thing()) + + def test_role_players_1_role_same_player(self): + parentship_type = self.tx.get_schema_concept("parentship") + person_type = self.tx.get_schema_concept("person") + parent_role = self.tx.get_schema_concept("parent") + + self_parent = person_type.create() + parentship = parentship_type.create() + + parentship.assign(parent_role, self_parent) + parentship.assign(parent_role, self_parent) + + role_players_map = parentship.role_players_map() + self.assertEqual(len(role_players_map.keys()), 1) + for role in role_players_map: + players_list = role_players_map[role] + self.assertEqual(len(players_list), 2) + self.assertTrue(role.is_role()) + + role_players = list(parentship.role_players()) + self.assertEqual(len(role_players), 2) self.assertTrue(role_players[0].is_thing()) def test_assign_unassign(self):