diff options
| author | Claude Paroz <claude@2xlibre.net> | 2015-10-03 09:58:36 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2015-10-03 14:40:33 +0200 |
| commit | 3f22e83e90bc2eeea5f65858660385a34fbf5486 (patch) | |
| tree | 644c57eeded9626f64e5ef1af00abc63715e8d1e /tests/user_commands | |
| parent | fa2e1e633ac2073906ed3f1f32107d02331107aa (diff) | |
Fixed #25483 -- Allowed passing non-string arguments to call_command
Thanks KS Chan for the report and Tim Graham for the review.
Diffstat (limited to 'tests/user_commands')
| -rw-r--r-- | tests/user_commands/management/commands/dance.py | 3 | ||||
| -rw-r--r-- | tests/user_commands/tests.py | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/tests/user_commands/management/commands/dance.py b/tests/user_commands/management/commands/dance.py index 0fc82724f4..b86ba6c622 100644 --- a/tests/user_commands/management/commands/dance.py +++ b/tests/user_commands/management/commands/dance.py @@ -7,6 +7,7 @@ class Command(BaseCommand): requires_system_checks = True def add_arguments(self, parser): + parser.add_argument("integer", nargs='?', type=int, default=0) parser.add_argument("-s", "--style", default="Rock'n'Roll") parser.add_argument("-x", "--example") parser.add_argument("--opt-3", action='store_true', dest='option3') @@ -18,3 +19,5 @@ class Command(BaseCommand): if options['verbosity'] > 0: self.stdout.write("I don't feel like dancing %s." % options["style"]) self.stdout.write(','.join(options.keys())) + if options['integer'] > 0: + self.stdout.write("You passed %d as a positional argument." % options['integer']) diff --git a/tests/user_commands/tests.py b/tests/user_commands/tests.py index 8bceccc487..772da22bed 100644 --- a/tests/user_commands/tests.py +++ b/tests/user_commands/tests.py @@ -103,6 +103,14 @@ class CommandTests(SimpleTestCase): self.assertNotIn("opt_3", out.getvalue()) self.assertNotIn("opt-3", out.getvalue()) + def test_call_command_option_parsing_non_string_arg(self): + """ + It should be possible to pass non-string arguments to call_command. + """ + out = StringIO() + management.call_command('dance', 1, verbosity=0, stdout=out) + self.assertIn("You passed 1 as a positional argument.", out.getvalue()) + def test_calling_a_command_with_only_empty_parameter_should_ends_gracefully(self): out = StringIO() management.call_command('hal', "--empty", stdout=out) |
