mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #17042 -- Extended startproject and startapp management commands to better handle custom app and project templates. Many thanks to Preston Holmes for his initial patch and Alex Gaynor, Carl Meyer, Donald Stufft, Jacob Kaplan-Moss and Julien Phalip for code reviewing.
* Added ability to pass the project or app directory path as the second argument * Added ``--template`` option for specifying custom project and app templates * Cleaned up admin_scripts tests a little while I was there git-svn-id: http://code.djangoproject.com/svn/django/trunk@17246 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -6,24 +6,29 @@ and default settings.py files.
|
||||
from __future__ import with_statement
|
||||
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import socket
|
||||
import sys
|
||||
import re
|
||||
import urllib
|
||||
|
||||
from django import conf, bin, get_version
|
||||
from django.conf import settings
|
||||
from django.test.simple import DjangoTestSuiteRunner
|
||||
from django.utils import unittest
|
||||
from django.test import LiveServerTestCase
|
||||
|
||||
test_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
expected_query_re = re.compile(r'CREATE TABLE [`"]admin_scripts_article[`"]', re.IGNORECASE)
|
||||
|
||||
|
||||
class AdminScriptTestCase(unittest.TestCase):
|
||||
def write_settings(self, filename, apps=None, is_dir=False, sdict=None):
|
||||
test_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
if is_dir:
|
||||
settings_dir = os.path.join(test_dir,filename)
|
||||
settings_dir = os.path.join(test_dir, filename)
|
||||
os.mkdir(settings_dir)
|
||||
settings_file = open(os.path.join(settings_dir,'__init__.py'), 'w')
|
||||
settings_file = open(os.path.join(settings_dir, '__init__.py'), 'w')
|
||||
else:
|
||||
settings_file = open(os.path.join(test_dir, filename), 'w')
|
||||
settings_file.write('# Settings file automatically generated by regressiontests.admin_scripts test case\n')
|
||||
@@ -50,7 +55,6 @@ class AdminScriptTestCase(unittest.TestCase):
|
||||
settings_file.close()
|
||||
|
||||
def remove_settings(self, filename, is_dir=False):
|
||||
test_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
full_name = os.path.join(test_dir, filename)
|
||||
if is_dir:
|
||||
shutil.rmtree(full_name)
|
||||
@@ -84,7 +88,6 @@ class AdminScriptTestCase(unittest.TestCase):
|
||||
return paths
|
||||
|
||||
def run_test(self, script, args, settings_file=None, apps=None):
|
||||
test_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
project_dir = os.path.dirname(test_dir)
|
||||
base_dir = os.path.dirname(project_dir)
|
||||
ext_backend_base_dirs = self._ext_backend_paths()
|
||||
@@ -142,13 +145,12 @@ class AdminScriptTestCase(unittest.TestCase):
|
||||
|
||||
def run_django_admin(self, args, settings_file=None):
|
||||
bin_dir = os.path.abspath(os.path.dirname(bin.__file__))
|
||||
return self.run_test(os.path.join(bin_dir,'django-admin.py'), args, settings_file)
|
||||
return self.run_test(os.path.join(bin_dir, 'django-admin.py'), args, settings_file)
|
||||
|
||||
def run_manage(self, args, settings_file=None):
|
||||
conf_dir = os.path.dirname(conf.__file__)
|
||||
template_manage_py = os.path.join(conf_dir, 'project_template', 'manage.py')
|
||||
|
||||
test_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
test_manage_py = os.path.join(test_dir, 'manage.py')
|
||||
shutil.copyfile(template_manage_py, test_manage_py)
|
||||
|
||||
@@ -196,22 +198,22 @@ class DjangoAdminNoSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"no settings: django-admin builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'environment variable DJANGO_SETTINGS_MODULE is undefined')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"no settings: django-admin builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"no settings: django-admin builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -228,36 +230,36 @@ class DjangoAdminDefaultSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"default: django-admin builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'environment variable DJANGO_SETTINGS_MODULE is undefined')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"default: django-admin builtin commands succeed if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"default: django-admin builtin commands succeed if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"default: django-admin builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"default: django-admin builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -278,7 +280,7 @@ class DjangoAdminDefaultSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"default: django-admin can execute user commands if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand")
|
||||
|
||||
@@ -294,36 +296,36 @@ class DjangoAdminFullPathDefaultSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"fulldefault: django-admin builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'environment variable DJANGO_SETTINGS_MODULE is undefined')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"fulldefault: django-admin builtin commands succeed if a settings file is provided"
|
||||
args = ['sqlall','--settings=regressiontests.settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"fulldefault: django-admin builtin commands succeed if the environment contains settings"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"fulldefault: django-admin builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"fulldefault: django-admin builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -344,7 +346,7 @@ class DjangoAdminFullPathDefaultSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"fulldefault: django-admin can execute user commands if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand")
|
||||
|
||||
@@ -353,43 +355,43 @@ class DjangoAdminMinimalSettings(AdminScriptTestCase):
|
||||
doesn't contain the test application.
|
||||
"""
|
||||
def setUp(self):
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth','django.contrib.contenttypes'])
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth', 'django.contrib.contenttypes'])
|
||||
|
||||
def tearDown(self):
|
||||
self.remove_settings('settings.py')
|
||||
|
||||
def test_builtin_command(self):
|
||||
"minimal: django-admin builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'environment variable DJANGO_SETTINGS_MODULE is undefined')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"minimal: django-admin builtin commands fail if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'App with label admin_scripts could not be found')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"minimal: django-admin builtin commands fail if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'App with label admin_scripts could not be found')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"minimal: django-admin builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"minimal: django-admin builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -410,7 +412,7 @@ class DjangoAdminMinimalSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"minimal: django-admin can't execute user commands, even if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Unknown command: 'noargs_command'")
|
||||
|
||||
@@ -426,36 +428,36 @@ class DjangoAdminAlternateSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"alternate: django-admin builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'environment variable DJANGO_SETTINGS_MODULE is undefined')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"alternate: django-admin builtin commands succeed if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.alternate_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.alternate_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"alternate: django-admin builtin commands succeed if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'regressiontests.alternate_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'regressiontests.alternate_settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"alternate: django-admin builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"alternate: django-admin builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -476,7 +478,7 @@ class DjangoAdminAlternateSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"alternate: django-admin can execute user commands if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_django_admin(args,'regressiontests.alternate_settings')
|
||||
out, err = self.run_django_admin(args, 'regressiontests.alternate_settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand")
|
||||
|
||||
@@ -488,7 +490,7 @@ class DjangoAdminMultipleSettings(AdminScriptTestCase):
|
||||
alternate settings must be used by the running script.
|
||||
"""
|
||||
def setUp(self):
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth','django.contrib.contenttypes'])
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth', 'django.contrib.contenttypes'])
|
||||
self.write_settings('alternate_settings.py')
|
||||
|
||||
def tearDown(self):
|
||||
@@ -497,35 +499,35 @@ class DjangoAdminMultipleSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"alternate: django-admin builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'environment variable DJANGO_SETTINGS_MODULE is undefined')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"alternate: django-admin builtin commands succeed if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.alternate_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.alternate_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"alternate: django-admin builtin commands succeed if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'regressiontests.alternate_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'regressiontests.alternate_settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"alternate: django-admin builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"alternate: django-admin builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -546,7 +548,7 @@ class DjangoAdminMultipleSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"alternate: django-admin can execute user commands if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_django_admin(args,'regressiontests.alternate_settings')
|
||||
out, err = self.run_django_admin(args, 'regressiontests.alternate_settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand")
|
||||
|
||||
@@ -565,31 +567,41 @@ class DjangoAdminSettingsDirectory(AdminScriptTestCase):
|
||||
|
||||
def test_setup_environ(self):
|
||||
"directory: startapp creates the correct directory"
|
||||
test_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
args = ['startapp','settings_test']
|
||||
args = ['startapp', 'settings_test']
|
||||
app_path = os.path.join(test_dir, 'settings_test')
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.addCleanup(shutil.rmtree, app_path)
|
||||
self.assertNoOutput(err)
|
||||
self.assertTrue(os.path.exists(app_path))
|
||||
|
||||
def test_setup_environ_custom_template(self):
|
||||
"directory: startapp creates the correct directory with a custom template"
|
||||
template_path = os.path.join(test_dir, 'admin_scripts', 'custom_templates', 'app_template')
|
||||
args = ['startapp', '--template', template_path, 'custom_settings_test']
|
||||
app_path = os.path.join(test_dir, 'custom_settings_test')
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.addCleanup(shutil.rmtree, app_path)
|
||||
self.assertNoOutput(err)
|
||||
self.assertTrue(os.path.exists(app_path))
|
||||
self.assertTrue(os.path.exists(os.path.join(app_path, 'api.py')))
|
||||
|
||||
def test_builtin_command(self):
|
||||
"directory: django-admin builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'environment variable DJANGO_SETTINGS_MODULE is undefined')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"directory: django-admin builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"directory: django-admin builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -602,15 +614,15 @@ class DjangoAdminSettingsDirectory(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"directory: django-admin builtin commands succeed if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.settings', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"directory: django-admin builtin commands succeed if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_django_admin(args,'regressiontests.settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_django_admin(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
@@ -626,22 +638,22 @@ class ManageNoSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"no settings: manage.py builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'regressiontests.settings'")
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"no settings: manage.py builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"no settings: manage.py builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -658,36 +670,36 @@ class ManageDefaultSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"default: manage.py builtin commands succeed when default settings are appropriate"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"default: manage.py builtin commands succeed if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"default: manage.py builtin commands succeed if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'regressiontests.settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"default: manage.py builtin commands succeed if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"default: manage.py builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -708,7 +720,7 @@ class ManageDefaultSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"default: manage.py can execute user commands when settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_manage(args,'regressiontests.settings')
|
||||
out, err = self.run_manage(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand")
|
||||
|
||||
@@ -725,36 +737,36 @@ class ManageFullPathDefaultSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"fulldefault: manage.py builtin commands succeed when default settings are appropriate"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"fulldefault: manage.py builtin commands succeed if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"fulldefault: manage.py builtin commands succeed if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'regressiontests.settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"fulldefault: manage.py builtin commands succeed if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"fulldefault: manage.py builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -775,7 +787,7 @@ class ManageFullPathDefaultSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"fulldefault: manage.py can execute user commands when settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_manage(args,'regressiontests.settings')
|
||||
out, err = self.run_manage(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand")
|
||||
|
||||
@@ -784,43 +796,43 @@ class ManageMinimalSettings(AdminScriptTestCase):
|
||||
doesn't contain the test application.
|
||||
"""
|
||||
def setUp(self):
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth','django.contrib.contenttypes'])
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth', 'django.contrib.contenttypes'])
|
||||
|
||||
def tearDown(self):
|
||||
self.remove_settings('settings.py')
|
||||
|
||||
def test_builtin_command(self):
|
||||
"minimal: manage.py builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'App with label admin_scripts could not be found')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"minimal: manage.py builtin commands fail if settings are provided as argument"
|
||||
args = ['sqlall','--settings=regressiontests.settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=regressiontests.settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'App with label admin_scripts could not be found')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"minimal: manage.py builtin commands fail if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'regressiontests.settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'App with label admin_scripts could not be found')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"minimal: manage.py builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"minimal: manage.py builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -841,7 +853,7 @@ class ManageMinimalSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"minimal: manage.py can't execute user commands, even if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_manage(args,'regressiontests.settings')
|
||||
out, err = self.run_manage(args, 'regressiontests.settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Unknown command: 'noargs_command'")
|
||||
|
||||
@@ -857,38 +869,36 @@ class ManageAlternateSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"alternate: manage.py builtin commands fail with an import error when no default settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'regressiontests.settings'")
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"alternate: manage.py builtin commands work with settings provided as argument"
|
||||
args = ['sqlall','--settings=alternate_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=alternate_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
expected_query_re = re.compile('CREATE TABLE [`"]admin_scripts_article[`"]', re.IGNORECASE)
|
||||
self.assertRegexpMatches(out, expected_query_re)
|
||||
self.assertNoOutput(err)
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"alternate: manage.py builtin commands work if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'alternate_settings')
|
||||
expected_query_re = re.compile('CREATE TABLE [`"]admin_scripts_article[`"]', re.IGNORECASE)
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'alternate_settings')
|
||||
self.assertRegexpMatches(out, expected_query_re)
|
||||
self.assertNoOutput(err)
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"alternate: manage.py builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"alternate: manage.py builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -909,7 +919,7 @@ class ManageAlternateSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"alternate: manage.py can execute user commands if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_manage(args,'alternate_settings')
|
||||
out, err = self.run_manage(args, 'alternate_settings')
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand options=[('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
self.assertNoOutput(err)
|
||||
|
||||
@@ -921,7 +931,7 @@ class ManageMultipleSettings(AdminScriptTestCase):
|
||||
alternate settings must be used by the running script.
|
||||
"""
|
||||
def setUp(self):
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth','django.contrib.contenttypes'])
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth', 'django.contrib.contenttypes'])
|
||||
self.write_settings('alternate_settings.py')
|
||||
|
||||
def tearDown(self):
|
||||
@@ -930,36 +940,36 @@ class ManageMultipleSettings(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"multiple: manage.py builtin commands fail with an import error when no settings provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, 'App with label admin_scripts could not be found.')
|
||||
|
||||
def test_builtin_with_settings(self):
|
||||
"multiple: manage.py builtin commands succeed if settings are provided as argument"
|
||||
args = ['sqlall','--settings=alternate_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=alternate_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_environment(self):
|
||||
"multiple: manage.py can execute builtin commands if settings are provided in the environment"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'alternate_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'alternate_settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, 'CREATE TABLE')
|
||||
|
||||
def test_builtin_with_bad_settings(self):
|
||||
"multiple: manage.py builtin commands fail if settings file (from argument) doesn't exist"
|
||||
args = ['sqlall','--settings=bad_settings', 'admin_scripts']
|
||||
args = ['sqlall', '--settings=bad_settings', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
def test_builtin_with_bad_environment(self):
|
||||
"multiple: manage.py builtin commands fail if settings file (from environment) doesn't exist"
|
||||
args = ['sqlall','admin_scripts']
|
||||
out, err = self.run_manage(args,'bad_settings')
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args, 'bad_settings')
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "Could not import settings 'bad_settings'")
|
||||
|
||||
@@ -980,7 +990,7 @@ class ManageMultipleSettings(AdminScriptTestCase):
|
||||
def test_custom_command_with_environment(self):
|
||||
"multiple: manage.py can execute user commands if settings are provided in environment"
|
||||
args = ['noargs_command']
|
||||
out, err = self.run_manage(args,'alternate_settings')
|
||||
out, err = self.run_manage(args, 'alternate_settings')
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:NoArgsCommand")
|
||||
|
||||
@@ -995,11 +1005,10 @@ class ManageSettingsWithImportError(AdminScriptTestCase):
|
||||
self.remove_settings('settings.py')
|
||||
|
||||
def write_settings_with_import_error(self, filename, apps=None, is_dir=False, sdict=None):
|
||||
test_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
if is_dir:
|
||||
settings_dir = os.path.join(test_dir,filename)
|
||||
settings_dir = os.path.join(test_dir, filename)
|
||||
os.mkdir(settings_dir)
|
||||
settings_file = open(os.path.join(settings_dir,'__init__.py'), 'w')
|
||||
settings_file = open(os.path.join(settings_dir, '__init__.py'), 'w')
|
||||
else:
|
||||
settings_file = open(os.path.join(test_dir, filename), 'w')
|
||||
settings_file.write('# Settings file automatically generated by regressiontests.admin_scripts test case\n')
|
||||
@@ -1009,7 +1018,7 @@ class ManageSettingsWithImportError(AdminScriptTestCase):
|
||||
|
||||
def test_builtin_command(self):
|
||||
"import error: manage.py builtin commands shows useful diagnostic info when settings with import errors is provided"
|
||||
args = ['sqlall','admin_scripts']
|
||||
args = ['sqlall', 'admin_scripts']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "No module named foo42bar")
|
||||
@@ -1200,14 +1209,14 @@ class CommandTypes(AdminScriptTestCase):
|
||||
|
||||
def test_specific_help(self):
|
||||
"--help can be used on a specific command"
|
||||
args = ['sqlall','--help']
|
||||
args = ['sqlall', '--help']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).")
|
||||
|
||||
def test_base_command(self):
|
||||
"User BaseCommands can execute when a label is provided"
|
||||
args = ['base_command','testlabel']
|
||||
args = ['base_command', 'testlabel']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', '1'), ('option_b', '2'), ('option_c', '3'), ('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
@@ -1221,21 +1230,21 @@ class CommandTypes(AdminScriptTestCase):
|
||||
|
||||
def test_base_command_multiple_label(self):
|
||||
"User BaseCommands can execute when no labels are provided"
|
||||
args = ['base_command','testlabel','anotherlabel']
|
||||
args = ['base_command', 'testlabel', 'anotherlabel']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel', 'anotherlabel'), options=[('option_a', '1'), ('option_b', '2'), ('option_c', '3'), ('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_base_command_with_option(self):
|
||||
"User BaseCommands can execute with options when a label is provided"
|
||||
args = ['base_command','testlabel','--option_a=x']
|
||||
args = ['base_command', 'testlabel', '--option_a=x']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', 'x'), ('option_b', '2'), ('option_c', '3'), ('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_base_command_with_options(self):
|
||||
"User BaseCommands can execute with multiple options when a label is provided"
|
||||
args = ['base_command','testlabel','-a','x','--option_b=y']
|
||||
args = ['base_command', 'testlabel', '-a', 'x', '--option_b=y']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', 'x'), ('option_b', 'y'), ('option_c', '3'), ('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
@@ -1249,7 +1258,7 @@ class CommandTypes(AdminScriptTestCase):
|
||||
|
||||
def test_noargs_with_args(self):
|
||||
"NoArg Commands raise an error if an argument is provided"
|
||||
args = ['noargs_command','argument']
|
||||
args = ['noargs_command', 'argument']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertOutput(err, "Error: Command doesn't accept any arguments")
|
||||
|
||||
@@ -1259,7 +1268,7 @@ class CommandTypes(AdminScriptTestCase):
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:AppCommand app=<module 'django.contrib.auth.models'")
|
||||
self.assertOutput(out, os.sep.join(['django','contrib','auth','models.py']))
|
||||
self.assertOutput(out, os.sep.join(['django', 'contrib', 'auth', 'models.py']))
|
||||
self.assertOutput(out, "'>, options=[('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_app_command_no_apps(self):
|
||||
@@ -1270,14 +1279,14 @@ class CommandTypes(AdminScriptTestCase):
|
||||
|
||||
def test_app_command_multiple_apps(self):
|
||||
"User AppCommands raise an error when multiple app names are provided"
|
||||
args = ['app_command','auth','contenttypes']
|
||||
args = ['app_command', 'auth', 'contenttypes']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:AppCommand app=<module 'django.contrib.auth.models'")
|
||||
self.assertOutput(out, os.sep.join(['django','contrib','auth','models.py']))
|
||||
self.assertOutput(out, os.sep.join(['django', 'contrib', 'auth', 'models.py']))
|
||||
self.assertOutput(out, "'>, options=[('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
self.assertOutput(out, "EXECUTE:AppCommand app=<module 'django.contrib.contenttypes.models'")
|
||||
self.assertOutput(out, os.sep.join(['django','contrib','contenttypes','models.py']))
|
||||
self.assertOutput(out, os.sep.join(['django', 'contrib', 'contenttypes', 'models.py']))
|
||||
self.assertOutput(out, "'>, options=[('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_app_command_invalid_appname(self):
|
||||
@@ -1294,7 +1303,7 @@ class CommandTypes(AdminScriptTestCase):
|
||||
|
||||
def test_label_command(self):
|
||||
"User LabelCommands can execute when a label is provided"
|
||||
args = ['label_command','testlabel']
|
||||
args = ['label_command', 'testlabel']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:LabelCommand label=testlabel, options=[('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
@@ -1307,7 +1316,7 @@ class CommandTypes(AdminScriptTestCase):
|
||||
|
||||
def test_label_command_multiple_label(self):
|
||||
"User LabelCommands are executed multiple times if multiple labels are provided"
|
||||
args = ['label_command','testlabel','anotherlabel']
|
||||
args = ['label_command', 'testlabel', 'anotherlabel']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:LabelCommand label=testlabel, options=[('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
|
||||
@@ -1323,7 +1332,7 @@ class ArgumentOrder(AdminScriptTestCase):
|
||||
individual command.
|
||||
"""
|
||||
def setUp(self):
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth','django.contrib.contenttypes'])
|
||||
self.write_settings('settings.py', apps=['django.contrib.auth', 'django.contrib.contenttypes'])
|
||||
self.write_settings('alternate_settings.py')
|
||||
|
||||
def tearDown(self):
|
||||
@@ -1332,35 +1341,113 @@ class ArgumentOrder(AdminScriptTestCase):
|
||||
|
||||
def test_setting_then_option(self):
|
||||
"Options passed after settings are correctly handled"
|
||||
args = ['base_command','testlabel','--settings=alternate_settings','--option_a=x']
|
||||
args = ['base_command', 'testlabel', '--settings=alternate_settings', '--option_a=x']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', 'x'), ('option_b', '2'), ('option_c', '3'), ('pythonpath', None), ('settings', 'alternate_settings'), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_setting_then_short_option(self):
|
||||
"Short options passed after settings are correctly handled"
|
||||
args = ['base_command','testlabel','--settings=alternate_settings','--option_a=x']
|
||||
args = ['base_command', 'testlabel', '--settings=alternate_settings', '--option_a=x']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', 'x'), ('option_b', '2'), ('option_c', '3'), ('pythonpath', None), ('settings', 'alternate_settings'), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_option_then_setting(self):
|
||||
"Options passed before settings are correctly handled"
|
||||
args = ['base_command','testlabel','--option_a=x','--settings=alternate_settings']
|
||||
args = ['base_command', 'testlabel', '--option_a=x', '--settings=alternate_settings']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', 'x'), ('option_b', '2'), ('option_c', '3'), ('pythonpath', None), ('settings', 'alternate_settings'), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_short_option_then_setting(self):
|
||||
"Short options passed before settings are correctly handled"
|
||||
args = ['base_command','testlabel','-a','x','--settings=alternate_settings']
|
||||
args = ['base_command', 'testlabel', '-a', 'x', '--settings=alternate_settings']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', 'x'), ('option_b', '2'), ('option_c', '3'), ('pythonpath', None), ('settings', 'alternate_settings'), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
def test_option_then_setting_then_option(self):
|
||||
"Options are correctly handled when they are passed before and after a setting"
|
||||
args = ['base_command','testlabel','--option_a=x','--settings=alternate_settings','--option_b=y']
|
||||
args = ['base_command', 'testlabel', '--option_a=x', '--settings=alternate_settings', '--option_b=y']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, "EXECUTE:BaseCommand labels=('testlabel',), options=[('option_a', 'x'), ('option_b', 'y'), ('option_c', '3'), ('pythonpath', None), ('settings', 'alternate_settings'), ('traceback', None), ('verbosity', '1')]")
|
||||
|
||||
|
||||
class StartProject(LiveServerTestCase, AdminScriptTestCase):
|
||||
|
||||
def test_wrong_args(self):
|
||||
"Make sure passing the wrong kinds of arguments raises a CommandError"
|
||||
out, err = self.run_django_admin(['startproject'])
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "you must provide a project name")
|
||||
|
||||
def test_simple_project(self):
|
||||
"Make sure the startproject management command creates a project"
|
||||
args = ['startproject', 'testproject']
|
||||
testproject_dir = os.path.join(test_dir, 'testproject')
|
||||
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertTrue(os.path.isdir(testproject_dir))
|
||||
self.addCleanup(shutil.rmtree, testproject_dir)
|
||||
|
||||
# running again..
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "File exists")
|
||||
|
||||
def test_simple_project_different_directory(self):
|
||||
"Make sure the startproject management command creates a project in a specific directory"
|
||||
args = ['startproject', 'testproject', 'othertestproject']
|
||||
testproject_dir = os.path.join(test_dir, 'othertestproject')
|
||||
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertTrue(os.path.isdir(os.path.join(testproject_dir, 'testproject')))
|
||||
self.assertTrue(os.path.exists(os.path.join(testproject_dir, 'testproject', 'manage.py')))
|
||||
self.addCleanup(shutil.rmtree, testproject_dir)
|
||||
|
||||
# running again..
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(out)
|
||||
self.assertOutput(err, "File exists")
|
||||
|
||||
def test_custom_project_template(self):
|
||||
"Make sure the startproject management command is able to use a different project template"
|
||||
template_path = os.path.join(test_dir, 'admin_scripts', 'custom_templates', 'project_template')
|
||||
args = ['startproject', '--template', template_path, 'customtestproject']
|
||||
testproject_dir = os.path.join(test_dir, 'customtestproject')
|
||||
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertTrue(os.path.isdir(testproject_dir))
|
||||
self.addCleanup(shutil.rmtree, testproject_dir)
|
||||
self.assertTrue(os.path.exists(os.path.join(testproject_dir, 'additional_dir')))
|
||||
|
||||
def test_custom_project_template_from_tarball_by_path(self):
|
||||
"Make sure the startproject management command is able to use a different project template from a tarball"
|
||||
template_path = os.path.join(test_dir, 'admin_scripts', 'custom_templates', 'project_template.tgz')
|
||||
args = ['startproject', '--template', template_path, 'tarballtestproject']
|
||||
testproject_dir = os.path.join(test_dir, 'tarballtestproject')
|
||||
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertTrue(os.path.isdir(testproject_dir))
|
||||
self.addCleanup(shutil.rmtree, testproject_dir)
|
||||
self.assertTrue(os.path.exists(os.path.join(testproject_dir, 'run.py')))
|
||||
|
||||
def test_custom_project_template_from_tarball_by_url(self):
|
||||
"Make sure the startproject management command is able to use a different project template from a tarball via a url"
|
||||
template_path = os.path.join(test_dir, 'admin_scripts', 'custom_templates', 'project_template.tgz')
|
||||
template_url = '%s/admin_scripts/custom_templates/project_template.tgz' % self.live_server_url
|
||||
|
||||
args = ['startproject', '--template', template_url, 'urltestproject']
|
||||
testproject_dir = os.path.join(test_dir, 'urltestproject')
|
||||
|
||||
out, err = self.run_django_admin(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertTrue(os.path.isdir(testproject_dir))
|
||||
self.addCleanup(shutil.rmtree, testproject_dir)
|
||||
self.assertTrue(os.path.exists(os.path.join(testproject_dir, 'run.py')))
|
||||
|
||||
Reference in New Issue
Block a user