summaryrefslogtreecommitdiff
path: root/parts/django/tests/modeltests/user_commands
diff options
context:
space:
mode:
Diffstat (limited to 'parts/django/tests/modeltests/user_commands')
-rw-r--r--parts/django/tests/modeltests/user_commands/__init__.py0
-rw-r--r--parts/django/tests/modeltests/user_commands/management/__init__.py0
-rw-r--r--parts/django/tests/modeltests/user_commands/management/commands/__init__.py0
-rw-r--r--parts/django/tests/modeltests/user_commands/management/commands/dance.py14
-rw-r--r--parts/django/tests/modeltests/user_commands/models.py14
-rw-r--r--parts/django/tests/modeltests/user_commands/tests.py21
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