def test_makemessages(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemessages'] = True core(args, self.application) self.assertTrue(os.path.exists(self.pofile))
def test_testrun_persistent_path(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') path = mkdtemp() with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(SystemExit) as exit: try: from django.test.utils import _TestState del _TestState.saved_data except (ImportError, AttributeError): pass args = copy(DEFAULT_ARGS) args['test'] = True args['--persistent'] = True args['--persistent-path'] = path args['--runner'] = 'runners.CapturedOutputRunner' core(args, self.application) self.assertTrue('Ran 14 tests in' in err.getvalue()) self.assertEqual(exit.exception.code, 0) self.assertTrue(args['STATIC_ROOT'].startswith(path)) self.assertTrue(args['MEDIA_ROOT'].startswith(path)) self.assertTrue(os.path.exists(args['STATIC_ROOT'])) self.assertTrue(os.path.exists(args['MEDIA_ROOT']))
def test_compilemessages(self): with work_in(self.basedir): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['compilemessages'] = True core(args, self.application) self.assertTrue(os.path.exists(self.mofile))
def test_extra_settings(self): from django.conf import settings with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) with temp_dir() as STATIC_ROOT: with temp_dir() as MEDIA_ROOT: local_settings = _make_settings(args, self.application, settings, STATIC_ROOT, MEDIA_ROOT) # Testing that cms_helper.py in custom project is loaded self.assertEqual(local_settings.TIME_ZONE, 'Europe/Rome') args['--boilerplate'] = True args['--extra-settings'] = 'cms_helper_extra.py' local_settings = _make_settings(args, self.application, settings, STATIC_ROOT, MEDIA_ROOT) # Testing that cms_helper.py in the command option is loaded self.assertEqual(local_settings.TIME_ZONE, 'Europe/Paris') # Existing application is kept self.assertTrue('djangocms_helper.test_data' in local_settings.INSTALLED_APPS) # New one is added self.assertTrue('djangocms_admin_style' in local_settings.INSTALLED_APPS) boilerplate_settings = get_boilerplates_settings() if DJANGO_1_7: # Check the loaders self.assertTrue('django.template.loaders.app_directories.Loader' in local_settings.TEMPLATE_LOADERS) # Existing application is kept self.assertTrue('django.core.context_processors.request' in local_settings.TEMPLATE_CONTEXT_PROCESSORS) # New one is added self.assertTrue('django.core.context_processors.debug' in local_settings.TEMPLATE_CONTEXT_PROCESSORS) # Check for aldryn boilerplates for name, value in boilerplate_settings.items(): if type(value) in (list, tuple): self.assertTrue(set(getattr(local_settings, name)).intersection(set(value))) else: self.assertTrue(value in getattr(local_settings, name)) else: # Check the loaders self.assertTrue('django.template.loaders.app_directories.Loader' in local_settings.TEMPLATES[0]['OPTIONS']['loaders']) # Existing application is kept self.assertTrue('django.template.context_processors.request' in local_settings.TEMPLATES[0]['OPTIONS']['context_processors']) # New one is added self.assertTrue('django.template.context_processors.debug' in local_settings.TEMPLATES[0]['OPTIONS']['context_processors']) # Check for aldryn boilerplates for name, value in boilerplate_settings.items(): if not name.startswith('TEMPLATE'): if type(value) in (list, tuple): self.assertTrue(set(getattr(local_settings, name)).intersection(set(value))) else: self.assertTrue(value in getattr(local_settings, name)) elif name == 'TEMPLATE_CONTEXT_PROCESSORS': self.assertTrue(set(local_settings.TEMPLATES[0]['OPTIONS']['context_processors']).intersection(set(value))) elif name == 'TEMPLATE_LOADERS': self.assertTrue(set(local_settings.TEMPLATES[0]['OPTIONS']['loaders']).intersection(set(value)))
def test_compilemessages(self): with work_in(self.basedir): with captured_output() as (out, err): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['compilemessages'] = True core(args, self.application) self.assertTrue(os.path.exists(self.mofile))
def test_setup_nocms(self): with work_in(self.basedir): with captured_output() as (out, err): from djangocms_helper.test_utils import cms_helper settings = runner.setup('example1', cms_helper, extra_args=[]) self.assertTrue('example2' in settings.INSTALLED_APPS) self.assertFalse('aldryn_boilerplates' in settings.INSTALLED_APPS) self.assertFalse('cms' in settings.INSTALLED_APPS)
def test_makemigrations_merge(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True args['--merge'] = True core(args, self.application) self.assertTrue('No conflicts detected to merge' in out.getvalue())
def test_any_command_check(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['<command>'] = 'check' args['options'] = ['helper', 'check', '--extra-settings=cms_helper_extra.py'] core(args, self.application) self.assertTrue('no issues' in out.getvalue())
def test_any_command_compilemessages(self): with work_in(os.path.join(self.basedir, self.application)): with captured_output() as (out, err): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['<command>'] = 'compilemessages' args['options'] = 'helper compilemessages --cms -len --verbosity=2'.split(' ') core(args, self.application) self.assertTrue(os.path.exists(self.mofile))
def test_authors(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['authors'] = True core(args, self.application) self.assertTrue('Generating AUTHORS' in out.getvalue()) self.assertTrue('* Iacopo Spalletti' in out.getvalue()) self.assertTrue('Authors (' in out.getvalue())
def test_testrun(self): with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(SystemExit) as exit: args = copy(DEFAULT_ARGS) args['test'] = True args['--runner'] = 'runners.CapturedOutputRunner' core(args, self.application) self.assertTrue('Ran 6 tests in' in err.getvalue()) self.assertEqual(exit.exception.code, 0)
def test_server(self, mocked_command): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['server'] = True core(args, self.application) self.assertTrue( 'A admin user (username: admin, password: admin) has been created.' in out.getvalue() )
def skip_test_makemigrations_update(self): os.makedirs(self.migration_dir) open(os.path.join(self.migration_dir, '__init__.py'), 'w') shutil.copy(self.migration_partial, self.migration_file) with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True core(args, self.application) self.assertTrue('Migrations for \'example1\':' in out.getvalue())
def test_pyflakes(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['pyflakes'] = True core(args, self.application)
def test_any_command_migrations(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['<command>'] = 'makemigrations' args['options'] = 'helper makemigrations example2 --verbosity=2'.split(' ') core(args, self.application) self.assertFalse('Create model ExampleModel1' in out.getvalue()) self.assertFalse(os.path.exists(self.migration_file)) self.assertTrue('Create model ExampleModel2' in out.getvalue()) self.assertTrue(os.path.exists(self.migration_file_2))
def test_urls_nocms(self): from django.core.urlresolvers import reverse, NoReverseMatch with work_in(self.basedir): with captured_output() as (out, err): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['makemessages'] = True args['--cms'] = False core(args, self.application) with self.assertRaises(NoReverseMatch): reverse('pages-root')
def test_makemigrations(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True args['<extra-applications>'] = ['example2'] core(args, self.application) self.assertTrue(os.path.exists(self.migration_file)) self.assertTrue(os.path.exists(self.migration_file_2)) self.assertTrue('Create model ExampleModel1' in out.getvalue()) self.assertTrue('Create model ExampleModel2' in out.getvalue())
def test_runner_nocms(self): with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(SystemExit) as exit: args = list() args.append('djangocms_helper') args.append('example1') args.append('test') args.append('--runner=runners.CapturedOutputRunner') runner.run('example1', args) self.assertTrue('Ran 6 tests in' in err.getvalue()) self.assertEqual(exit.exception.code, 0)
def test_any_command_check(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['<command>'] = 'check' args['options'] = ['helper', 'check', '--extra-settings=cms_helper_extra.py'] core(args, self.application) if DJANGO_1_7: # Django 1.7 complains about the test runner ... go figure ... self.assertTrue('1 issue' in err.getvalue()) else: self.assertTrue('no issues' in out.getvalue())
def test_urls(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') from django.core.urlresolvers import reverse with work_in(self.basedir): with captured_output() as (out, err): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['makemessages'] = True core(args, self.application) self.assertTrue(reverse('pages-root'))
def test_runner_argv(self): def fake_runner(argv): return argv from djangocms_helper.test_utils.runners import CapturedOutputRunner with patch('django.test.runner.DiscoverRunner', CapturedOutputRunner): with work_in(self.basedir): with captured_output() as (out, err): args = list() args.append('djangocms_helper') with patch('djangocms_helper.runner.runner', fake_runner): data = runner.run('example1', args) self.assertEqual(data, [u'djangocms_helper', u'example1', u'test'])
def test_any_command_check(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['<command>'] = 'check' args['options'] = [ 'helper', 'check', '--extra-settings=cms_helper_extra.py' ] core(args, self.application) if DJANGO_1_7: # Django 1.7 complains about the test runner ... go figure ... self.assertTrue('1 issue' in err.getvalue()) else: self.assertTrue('no issues' in out.getvalue())
def test_pyflakes_nocms(self): try: import cms raise unittest.SkipTest('django CMS available, skipping test') except ImportError: pass with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['pyflakes'] = True core(args, self.application) self.assertTrue('Static analysis available only if django CMS is installed' in out.getvalue()) self.assertFalse(os.path.exists(args['STATIC_ROOT'])) self.assertFalse(os.path.exists(args['MEDIA_ROOT']))
def test_testrun_native(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['<command>'] = 'test' args['--cms'] = False args['--native'] = True args['--extra-settings'] = 'cms_helper_extra_runner.py' core(args, self.application) self.assertTrue('Ran 12 tests in' in err.getvalue())
def skip_test_makemigrations_update(self): os.makedirs(self.migration_dir) open(os.path.join(self.migration_dir, '__init__.py'), 'w') shutil.copy(self.migration_partial, self.migration_file) with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True core(args, self.application) if DJANGO_1_6: #self.assertTrue('+ Added field test_field on example1.ExampleModel1' in err.getvalue()) self.assertTrue('You can now apply this migration' in err.getvalue()) else: self.assertTrue('Migrations for \'example1\':' in out.getvalue())
def test_cms_check_nocms_19(self): try: import cms raise unittest.SkipTest('django CMS available, skipping test') except ImportError: pass with work_in(self.basedir): with self.assertRaises(ImportError): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['cms_check'] = True args['--extra-settings'] = 'cms_helper.py' args['--migrate'] = False core(args, self.application)
def test_runner_cms_exception(self): try: import cms raise unittest.SkipTest('django CMS available, skipping test') except ImportError: pass from djangocms_helper.test_utils.runners import CapturedOutputRunner with patch('django.test.runner.DiscoverRunner', CapturedOutputRunner): with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(ImportError) as exit: args = list() args.append('djangocms_helper') runner.cms('example1', args)
def test_makemigrations_empty(self): with work_in(self.basedir): with captured_output() as (out, err): os.makedirs(self.migration_dir) open(os.path.join(self.migration_dir, '__init__.py'), 'w') shutil.copy(self.migration_example, self.migration_file) args = copy(DEFAULT_ARGS) args['makemigrations'] = True args['--empty'] = True core(args, self.application) if DJANGO_1_6: self.assertTrue('You must now edit this migration' in err.getvalue()) else: self.assertTrue('Migrations for \'example1\':' in out.getvalue())
def test_pyflakes_nocms(self): try: import cms raise unittest.SkipTest('django CMS available, skipping test') except ImportError: pass with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['pyflakes'] = True core(args, self.application) self.assertTrue('Static analisys available only if django CMS is installed' in out.getvalue()) self.assertFalse(os.path.exists(args['STATIC_ROOT'])) self.assertFalse(os.path.exists(args['MEDIA_ROOT']))
def test_makemigrations_merge(self): from django.core.exceptions import DjangoRuntimeWarning with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True args['--merge'] = True if DJANGO_1_6: with self.assertRaises(DjangoRuntimeWarning) as exit: core(args, self.application) self.assertEqual(force_text(exit.exception), 'Option not implemented for Django 1.6 and below') else: core(args, self.application) self.assertTrue('No conflicts detected to merge' in out.getvalue())
def test_setup_cms(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') with work_in(self.basedir): with captured_output() as (out, err): from djangocms_helper.test_utils import cms_helper settings = runner.setup( 'example1', cms_helper, use_cms=True, extra_args=['--boilerplate'] ) self.assertTrue('example2' in settings.INSTALLED_APPS) self.assertTrue('aldryn_boilerplates' in settings.INSTALLED_APPS) self.assertTrue('cms' in settings.INSTALLED_APPS)
def test_cms_check(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') with work_in(self.basedir): with captured_output() as (out, err): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['cms_check'] = True args['--migrate'] = False core(args, self.application) self.assertTrue('Installation okay' in out.getvalue()) self.assertFalse('[WARNING]' in out.getvalue()) self.assertFalse('[ERROR]' in out.getvalue())
def skip_test_makemigrations_update(self): os.makedirs(self.migration_dir) open(os.path.join(self.migration_dir, '__init__.py'), 'w') shutil.copy(self.migration_partial, self.migration_file) with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True core(args, self.application) if DJANGO_1_6: #self.assertTrue('+ Added field test_field on example1.ExampleModel1' in err.getvalue()) self.assertTrue( 'You can now apply this migration' in err.getvalue()) else: self.assertTrue('Migrations for \'example1\':' in out.getvalue())
def test_makemigrations_empty(self): with work_in(self.basedir): with captured_output() as (out, err): os.makedirs(self.migration_dir) open(os.path.join(self.migration_dir, '__init__.py'), 'w') shutil.copy(self.migration_example, self.migration_file) args = copy(DEFAULT_ARGS) args['makemigrations'] = True args['--empty'] = True core(args, self.application) if DJANGO_1_6: self.assertTrue( 'You must now edit this migration' in err.getvalue()) else: self.assertTrue('Migrations for \'example1\':' in out.getvalue())
def test_testrun_nocms(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(SystemExit) as exit: args = copy(DEFAULT_ARGS) args['test'] = True args['--cms'] = False args['--runner'] = 'runners.CapturedOutputRunner' core(args, self.application) self.assertTrue('Ran 6 tests in' in err.getvalue()) self.assertEqual(exit.exception.code, 0)
def test_cms_check_nocms(self): try: import cms raise unittest.SkipTest('django CMS available, skipping test') except ImportError: pass with work_in(self.basedir): with captured_output() as (out, err): shutil.copy(self.poexample, self.pofile) args = copy(DEFAULT_ARGS) args['cms_check'] = True args['--extra-settings'] = 'cms_helper.py' args['--migrate'] = False core(args, self.application) self.assertTrue('cms_check available only if django CMS is installed' in out.getvalue())
def test_testrun_nocms(self): with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(SystemExit) as exit: try: from django.test.utils import _TestState del _TestState.saved_data except (ImportError, AttributeError): pass args = copy(DEFAULT_ARGS) args['test'] = True args['--cms'] = False args['--runner'] = 'runners.CapturedOutputRunner' core(args, self.application) self.assertTrue('Ran 14 tests in' in err.getvalue()) self.assertEqual(exit.exception.code, 0)
def test_makemigrations(self): with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True args['<extra-applications>'] = ['example2'] core(args, self.application) self.assertTrue(os.path.exists(self.migration_file)) self.assertTrue(os.path.exists(self.migration_file_2)) if DJANGO_1_6: self.assertTrue('Created 0001_initial.py' in err.getvalue()) self.assertTrue('migrate example1' in err.getvalue()) self.assertTrue('migrate example2' in err.getvalue()) else: self.assertTrue('Create model ExampleModel1' in out.getvalue()) self.assertTrue('Create model ExampleModel2' in out.getvalue())
def test_makemigrations_existing_folder(self): os.makedirs(self.migration_dir) os.makedirs(self.migration_dir_2) open(os.path.join(self.migration_dir, '__init__.py'), 'w') open(os.path.join(self.migration_dir_2, '__init__.py'), 'w') with work_in(self.basedir): with captured_output() as (out, err): args = copy(DEFAULT_ARGS) args['makemigrations'] = True args['<extra-applications>'] = ['example2'] core(args, self.application) self.assertTrue(os.path.exists(self.migration_file)) self.assertTrue(os.path.exists(self.migration_file_2)) self.assertTrue('Created 0001_initial.py' in err.getvalue()) self.assertTrue('migrate example1' in err.getvalue()) self.assertTrue('migrate example2' in err.getvalue())
def test_runner(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(SystemExit) as exit: args = list() args.append('djangocms_helper') args.append('example1') args.append('test') args.append('--runner=runners.CapturedOutputRunner') runner.cms('example1', args) self.assertTrue('Ran 6 tests in' in err.getvalue()) self.assertEqual(exit.exception.code, 0)
def test_testrun(self): try: import cms except ImportError: raise unittest.SkipTest('django CMS not available, skipping test') with work_in(self.basedir): with captured_output() as (out, err): with self.assertRaises(SystemExit) as exit: args = copy(DEFAULT_ARGS) args['test'] = True args['--persistent'] = mkdtemp() args['--runner'] = 'runners.CapturedOutputRunner' core(args, self.application) self.assertTrue('Ran 12 tests in' in err.getvalue()) self.assertEqual(exit.exception.code, 0) self.assertTrue(os.path.exists(args['STATIC_ROOT'])) self.assertTrue(os.path.exists(args['MEDIA_ROOT']))