Example #1
0
 def test_unknown_output(self):
     # Avoid the help message on stdout
     with captured_output() as (stdout, stderr):
         with self.assertRaises(SystemExit):
             cli.parse_args([
                 "--output",
                 "foo",
                 "mem://some/schema",
             ])
     self.assertIn("invalid choice: 'foo'", stderr.getvalue())
     self.assertFalse(stdout.getvalue())
Example #2
0
 def test_useless_error_format(self):
     # Avoid the help message on stdout
     with captured_output() as (stdout, stderr):
         with self.assertRaises(SystemExit):
             cli.parse_args([
                 "--output",
                 "pretty",
                 "--error-format",
                 "foo",
                 "mem://some/schema",
             ])
     self.assertIn(
         "--error-format can only be used with --output plain",
         stderr.getvalue(),
     )
     self.assertFalse(stdout.getvalue())
Example #3
0
 def test_latest_validator_is_the_default(self):
     arguments = cli.parse_args([
         "--instance",
         "mem://some/instance",
         "mem://some/schema",
     ])
     self.assertIs(arguments["validator"], _LATEST_VERSION)
Example #4
0
 def test_find_validator_in_jsonschema(self):
     arguments = cli.parse_args([
         "--validator",
         "Draft4Validator",
         "--instance",
         "foo.json",
         "schema.json",
     ])
     self.assertIs(arguments["validator"], Draft4Validator)
Example #5
0
 def test_find_validator_by_fully_qualified_object_name(self):
     arguments = cli.parse_args([
         "--validator",
         "jsonschema.tests.test_cli.TestParser.FakeValidator",
         "--instance",
         "foo.json",
         "schema.json",
     ])
     self.assertIs(arguments["validator"], self.FakeValidator)
Example #6
0
 def test_find_validator_in_jsonschema(self):
     arguments = cli.parse_args(
         [
             "--validator", "Draft4Validator",
             "--instance", "foo.json",
             "schema.json",
         ]
     )
     self.assertIs(arguments["validator"], Draft4Validator)
Example #7
0
 def test_find_validator_in_jsonschema(self):
     arguments = cli.parse_args(
         [
             "--validator", "Draft4Validator",
             "--instance", "mem://some/instance",
             "mem://some/schema",
         ],
     )
     self.assertIs(arguments["validator"], Draft4Validator)
Example #8
0
 def test_find_validator_by_fully_qualified_object_name(self):
     arguments = cli.parse_args(
         [
             "--validator",
             "jsonschema.tests.test_cli.TestParser.FakeValidator",
             "--instance", "foo.json",
             "schema.json",
         ]
     )
     self.assertIs(arguments["validator"], self.FakeValidator)
Example #9
0
    def run_cli(self,
                argv,
                files={},
                stdin=StringIO(),
                exit_code=0,
                **override):
        arguments = cli.parse_args(argv)
        arguments.update(override)

        self.assertFalse(hasattr(cli, "open"))
        cli.open = fake_open(files)
        try:
            stdout, stderr = StringIO(), StringIO()
            actual_exit_code = cli.run(
                arguments,
                stdin=stdin,
                stdout=stdout,
                stderr=stderr,
            )
        finally:
            del cli.open

        self.assertEqual(
            actual_exit_code,
            exit_code,
            msg=dedent(
                """
                    Expected an exit code of {} != {}.

                    stdout: {}

                    stderr: {}
                """.format(
                    exit_code,
                    actual_exit_code,
                    stdout.getvalue(),
                    stderr.getvalue(),
                ), ),
        )
        return stdout.getvalue(), stderr.getvalue()
Example #10
0
 def cli_output_for(self, *argv):
     stdout, stderr = StringIO(), StringIO()
     with redirect_stdout(stdout), redirect_stderr(stderr):
         with self.assertRaises(SystemExit):
             cli.parse_args(argv)
     return stdout.getvalue(), stderr.getvalue()