summaryrefslogtreecommitdiff
path: root/tests/user_commands
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2015-10-03 09:58:36 +0200
committerClaude Paroz <claude@2xlibre.net>2015-10-03 14:40:33 +0200
commit3f22e83e90bc2eeea5f65858660385a34fbf5486 (patch)
tree644c57eeded9626f64e5ef1af00abc63715e8d1e /tests/user_commands
parentfa2e1e633ac2073906ed3f1f32107d02331107aa (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.py3
-rw-r--r--tests/user_commands/tests.py8
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)