|
@@ -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')))
|