def test_order(self): repo = MagicMock() repo.get_node = lambda n: int(n[-1]) self.assertEqual( cmdline.get_target_nodes(repo, "node2,node1,node3"), [1, 2, 3], )
def test_no_such_group(self): def get_node(name): raise NoSuchNode() def get_group(name): raise NoSuchGroup() repo = MagicMock() repo.get_group = get_group repo.get_node = get_node with self.assertRaises(UsageException): cmdline.get_target_nodes(repo, "node1")
def test_no_such_node(self): def get_node(name): raise NoSuchNode() def get_group(name): group = MagicMock() group.nodes = ["g" + name[-1]] return group repo = MagicMock() repo.get_group = get_group repo.get_node = get_node self.assertEqual( cmdline.get_target_nodes(repo, "node1"), ["g1"], )
def test_mixed(self): def get_node(name): if int(name[-1]) > 2: raise NoSuchNode() return "n" + name[-1] def get_group(name): group = MagicMock() group.nodes = ["g" + name[-1]] return group repo = MagicMock() repo.get_group = get_group repo.get_node = get_node self.assertEqual( set(cmdline.get_target_nodes(repo, "node1, node2,group3")), set(["n1", "n2", "g3"]), )
def test_interactive_node(self, interact): args = MagicMock() args.node = "node1" args.itemid = None node = MagicMock() node.name = args.node repo_obj = MagicMock() repo_obj.path = "/dev/null" repo_obj_validated = MagicMock() repo_obj_validated.get_node = MagicMock(return_value=node) with patch( 'blockwart.cmdline.repo.Repository', return_value=repo_obj_validated, ): repo.bw_repo_debug(repo_obj, args) interact.assert_called_with( repo.DEBUG_BANNER_NODE, local={ 'node': node, 'repo': repo_obj_validated, }, )