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_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_password_from_group(self): n = Node("node1", {}) g = Group("group1", {'password': "******"}) r = Repository() r.add_group(g) r.add_node(n) with patch('tests.unit.node_tests.Node.groups', new=(g,)): self.assertEqual(n.password, "grouppasswd")
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_static_members(self): repo = Repository() node1 = Node("node1") node2 = Node("node2") repo.add_node(node1) repo.add_node(node2) group = Group("group1", {'members': ("node2", "node1")}) repo.add_group(group) self.assertEqual( set(group._nodes_from_static_members), set((node1, node2)), )
def test_static_subgroup_members(self, *args): repo = Repository() group1 = Group("group1", {'subgroups': ("group2",)}) node3 = Node("node3") node4 = Node("node4") repo.add_group(group1) repo.add_group(Group("group2", {'members': ("node3", "node4")})) repo.add_node(node3) repo.add_node(node4) repo.add_node(Node("node5")) self.assertEqual( set(group1._nodes_from_subgroups), set((node3, node4)), )
def test_bundles(self): repo = Repository() repo.bundle_names = ("bundle1", "bundle2", "bundle3") n = Node("node1", {}) repo.add_node(n) g1 = Group("group1", {'bundles': ("bundle1", "bundle2")}) repo.add_group(g1) g2 = Group("group2", {'bundles': ("bundle3",)}) repo.add_group(g2) with patch('tests.unit.node_tests.Node.groups', new=(g1, g2)): self.assertEqual( tuple(names(n.bundles)), ("bundle1", "bundle2", "bundle3"), )
def test_pattern_members(self, *args): repo = Repository() repo.add_node(Node("node1")) repo.add_node(Node("node2")) group = Group("all", { 'member_patterns': (r".*",) }) repo.add_group(group) self.assertEqual( list(names(group.nodes)), ["node1", "node2"], ) group2 = Group("group2", { 'member_patterns': (r".*2",)} ) repo.add_group(group2) self.assertEqual( list(names(group2.nodes)), ["node2"], )
def test_no_subgroups(self): repo = Repository() repo.add_group(Group("group1", {'subgroups': []})) group = repo.get_group("group1") self.assertEqual(list(names(group.subgroups)), [])