def test_nested_subgroup_loop(self): repo = Repository() repo.add_group(Group("group1", {'subgroups': ["group2"]})) repo.add_group(Group("group2", {'subgroups': ["group1"]})) group = repo.get_group("group1") with self.assertRaises(RepositoryError): list(group.subgroups)
def test_simple_subgroups(self): repo = Repository() repo.add_group(Group("group1", {'subgroups': ["group2", "group3"]})) repo.add_group(Group("group2")) repo.add_group(Group("group3")) group = repo.get_group("group1") self.assertEqual(list(names(group.subgroups)), ["group2", "group3"])
def test_nested_subgroups(self): repo = Repository() repo.add_group(Group("group1", {'subgroups': ["group2"]})) repo.add_group(Group("group2", {'subgroups': ["group3"]})) repo.add_group(Group("group3", {'subgroups': []})) group = repo.get_group("group1") self.assertEqual( set(names(group.subgroups)), set(["group2", "group3"]), )
def test_no_members(self): def _get_group(group_name): group = MagicMock() if group_name == "group1": group.nodes = ["node1", "node2", "node3"] if group_name == "group2": group.nodes = ["node4"] if group_name == "group3": group.nodes = ["node2", "node3"] return group r = Repository() r.get_group = _get_group self.assertEqual( r.nodes_in_all_groups(["group1", "group2", "group3"]), [], )
def test_no_subgroups(self): repo = Repository() repo.add_group(Group("group1", {'subgroups': []})) group = repo.get_group("group1") self.assertEqual(list(names(group.subgroups)), [])