Пример #1
0
 def test_repository_macro(self, config_file):
     """fix up <repository> macros."""
     result = argparse.Namespace()
     parser = Parser(namespace=result)
     parser.add_options([
         PathOption("--test1"),
         RepositoryMacroOption("--test2"),
         PathOption(cf=("test", "test_path")),
         PathOption(cf=("test", "test_path_default"),
                    default="<repository>/test/default"),
         RepositoryMacroOption(cf=("test", "test_macro")),
         RepositoryMacroOption(cf=("test", "test_macro_default"),
                               default="<repository>"), Common.repository
     ])
     parser.parse([
         "-C", config_file, "-Q", "/foo/bar", "--test1",
         "<repository>/test1", "--test2", "<repository><repository>"
     ])
     self.assertEqual(result.repository, "/foo/bar")
     self.assertEqual(result.test1, "/foo/bar/test1")
     self.assertEqual(result.test2, "/foo/bar/foo/bar")
     self.assertEqual(result.test_macro, "/foo/bar")
     self.assertEqual(result.test_macro_default, "/foo/bar")
     self.assertEqual(result.test_path, "/foo/bar/test")
     self.assertEqual(result.test_path_default, "/foo/bar/test/default")
Пример #2
0
 def test_default_path_canonicalization(self, config_file):
     """canonicalize default PathOption values."""
     testdir = os.path.expanduser("~/test")
     result = argparse.Namespace()
     parser = Parser(namespace=result)
     parser.add_options([PathOption("--test1", default="~/test"),
                         PathOption(cf=("test", "test2"),
                                    default="~/test"),
                         Common.repository])
     parser.parse(["-C", config_file])
     self.assertEqual(result.test1, testdir)
     self.assertEqual(result.test2, testdir)
Пример #3
0
 def test_default_path_canonicalization(self, config_file):
     """canonicalize default PathOption values."""
     testdir = os.path.expanduser("~/test")
     result = argparse.Namespace()
     parser = Parser(namespace=result)
     parser.add_options([
         PathOption("--test1", default="~/test"),
         PathOption(cf=("test", "test2"), default="~/test"),
         Common.repository
     ])
     parser.parse(["-C", config_file])
     self.assertEqual(result.test1, testdir)
     self.assertEqual(result.test2, testdir)
Пример #4
0
    def test_positional_args(self, config_file):
        """get values from positional arguments."""
        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options([PositionalArgument("single")])
        parser.parse(["-C", config_file, "single"])
        self.assertEqual(result.single, "single")

        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options([PositionalArgument("one"),
                            PositionalArgument("two")])
        parser.parse(["-C", config_file, "one", "two"])
        self.assertEqual(result.one, "one")
        self.assertEqual(result.two, "two")
Пример #5
0
    def test_positional_args(self, config_file):
        """get values from positional arguments."""
        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options([PositionalArgument("single")])
        parser.parse(["-C", config_file, "single"])
        self.assertEqual(result.single, "single")

        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options(
            [PositionalArgument("one"),
             PositionalArgument("two")])
        parser.parse(["-C", config_file, "one", "two"])
        self.assertEqual(result.one, "one")
        self.assertEqual(result.two, "two")
Пример #6
0
    def _test_dest(self, *args, **kwargs):
        """helper to test that ``dest`` is set properly."""
        args = list(args)
        expected = args.pop(0)
        config_file = args.pop()

        sentinel = object()
        kwargs["default"] = sentinel

        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options([Option(*args, **kwargs)])
        parser.parse(["-C", config_file])

        self.assertTrue(hasattr(result, expected))
        self.assertEqual(getattr(result, expected), sentinel)
Пример #7
0
    def _test_dest(self, *args, **kwargs):
        """helper to test that ``dest`` is set properly."""
        args = list(args)
        expected = args.pop(0)
        config_file = args.pop()

        sentinel = object()
        kwargs["default"] = sentinel

        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options([Option(*args, **kwargs)])
        parser.parse(["-C", config_file])

        self.assertTrue(hasattr(result, expected))
        self.assertEqual(getattr(result, expected), sentinel)
Пример #8
0
    def test_file_like_path_option(self, config_file):
        """get file-like object from PathOption."""
        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options([PathOption("--test", type=argparse.FileType('r'))])

        fd, name = tempfile.mkstemp()
        fh = os.fdopen(fd, "w")
        fh.write("test")
        fh.close()

        try:
            parser.parse(["-C", config_file, "--test", name])
            self.assertEqual(result.test.name, name)
            self.assertEqual(result.test.read(), "test")
        finally:
            os.unlink(name)
Пример #9
0
    def test_file_like_path_option(self, config_file):
        """get file-like object from PathOption."""
        result = argparse.Namespace()
        parser = Parser(namespace=result)
        parser.add_options([PathOption("--test", type=argparse.FileType('r'))])

        fd, name = tempfile.mkstemp()
        fh = os.fdopen(fd, "w")
        fh.write("test")
        fh.close()

        try:
            parser.parse(["-C", config_file, "--test", name])
            self.assertEqual(result.test.name, name)
            self.assertEqual(result.test.read(), "test")
        finally:
            os.unlink(name)
Пример #10
0
 def test_repository_macro(self, config_file):
     """fix up <repository> macros."""
     result = argparse.Namespace()
     parser = Parser(namespace=result)
     parser.add_options([PathOption("--test1"),
                         PathOption("--test2"),
                         PathOption(cf=("test", "test_path")),
                         PathOption(cf=("test", "test_path_default"),
                                    default="<repository>/test/default"),
                         Common.repository])
     parser.parse(["-C", config_file, "-Q", "/foo/bar",
                   "--test1", "<repository>/test1",
                   "--test2", "<repository><repository>"])
     self.assertEqual(result.repository, "/foo/bar")
     self.assertEqual(result.test1, "/foo/bar/test1")
     self.assertEqual(result.test2, "/foo/bar/foo/bar")
     self.assertEqual(result.test_path, "/foo/bar/test")
     self.assertEqual(result.test_path_default, "/foo/bar/test/default")