Пример #1
0
 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],
     )
Пример #2
0
    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")
Пример #3
0
    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"],
        )
Пример #4
0
    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"]),
        )
Пример #5
0
 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,
             },
         )