diff options
Diffstat (limited to 'parts/django/tests/modeltests/user_commands')
6 files changed, 49 insertions, 0 deletions
diff --git a/parts/django/tests/modeltests/user_commands/__init__.py b/parts/django/tests/modeltests/user_commands/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/parts/django/tests/modeltests/user_commands/__init__.py diff --git a/parts/django/tests/modeltests/user_commands/management/__init__.py b/parts/django/tests/modeltests/user_commands/management/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/parts/django/tests/modeltests/user_commands/management/__init__.py diff --git a/parts/django/tests/modeltests/user_commands/management/commands/__init__.py b/parts/django/tests/modeltests/user_commands/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/parts/django/tests/modeltests/user_commands/management/commands/__init__.py diff --git a/parts/django/tests/modeltests/user_commands/management/commands/dance.py b/parts/django/tests/modeltests/user_commands/management/commands/dance.py new file mode 100644 index 0000000..acefe09 --- /dev/null +++ b/parts/django/tests/modeltests/user_commands/management/commands/dance.py @@ -0,0 +1,14 @@ +from optparse import make_option +from django.core.management.base import BaseCommand + +class Command(BaseCommand): + help = "Dance around like a madman." + args = '' + requires_model_validation = True + + option_list =[ + make_option("-s", "--style", default="Rock'n'Roll") + ] + + def handle(self, *args, **options): + self.stdout.write("I don't feel like dancing %s." % options["style"]) diff --git a/parts/django/tests/modeltests/user_commands/models.py b/parts/django/tests/modeltests/user_commands/models.py new file mode 100644 index 0000000..f2aa549 --- /dev/null +++ b/parts/django/tests/modeltests/user_commands/models.py @@ -0,0 +1,14 @@ +""" +38. User-registered management commands + +The ``manage.py`` utility provides a number of useful commands for managing a +Django project. If you want to add a utility command of your own, you can. + +The user-defined command ``dance`` is defined in the management/commands +subdirectory of this test application. It is a simple command that responds +with a printed message when invoked. + +For more details on how to define your own ``manage.py`` commands, look at the +``django.core.management.commands`` directory. This directory contains the +definitions for the base Django ``manage.py`` commands. +""" diff --git a/parts/django/tests/modeltests/user_commands/tests.py b/parts/django/tests/modeltests/user_commands/tests.py new file mode 100644 index 0000000..84aa7a5 --- /dev/null +++ b/parts/django/tests/modeltests/user_commands/tests.py @@ -0,0 +1,21 @@ +from StringIO import StringIO + +from django.test import TestCase +from django.core import management +from django.core.management.base import CommandError + +class CommandTests(TestCase): + def test_command(self): + out = StringIO() + management.call_command('dance', stdout=out) + self.assertEquals(out.getvalue(), + "I don't feel like dancing Rock'n'Roll.") + + def test_command_style(self): + out = StringIO() + management.call_command('dance', style='Jive', stdout=out) + self.assertEquals(out.getvalue(), + "I don't feel like dancing Jive.") + + def test_explode(self): + self.assertRaises(CommandError, management.call_command, ('explode',))
\ No newline at end of file |