Ejemplo n.º 1
0
 def _tests_1_2(self):
     """
     Fire up the Django test suite developed for version 1.2 and up
     """
     test_settings = self.custom_settings
     installed_apps = test_settings.pop('INSTALLED_APPS', ())
     settings.configure(DEBUG=True,
                        DATABASES=self.get_database(1.2),
                        INSTALLED_APPS=tuple(self.INSTALLED_APPS +
                                             installed_apps + self.apps),
                        **test_settings)
     from django.test.simple import DjangoTestSuiteRunner
     failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
     if failures:
         sys.exit(failures)
Ejemplo n.º 2
0
def setup():
    global test_runner
    global old_config
    try:
        # Django 1.7
        from django.test.runner import DiscoverRunner
        import django
        django.setup()
        test_runner = DiscoverRunner()
    except ImportError:
        from django.test.simple import DjangoTestSuiteRunner
        test_runner = DjangoTestSuiteRunner()

    test_runner.setup_test_environment()
    old_config = test_runner.setup_databases()
Ejemplo n.º 3
0
def runtests(*test_args, **kwargs):
    if 'south' in settings.INSTALLED_APPS:
        from south.management.commands import patch_for_test_db_setup
        patch_for_test_db_setup()

    if not test_args:
        test_args = ['tests']
    parent = dirname(abspath(__file__))
    sys.path.insert(0, parent)
    test_runner = DjangoTestSuiteRunner(verbosity=kwargs.get('verbosity', 1),
                                        interactive=kwargs.get(
                                            'interactive', False),
                                        failfast=kwargs.get('failfast'))
    failures = test_runner.run_tests(test_args)
    sys.exit(failures)
def runtests():
    if hasattr(django, 'setup'):
        django.setup()
    return DjangoTestSuiteRunner(failfast=False).run_tests([
        'crispy_forms.TestBasicFunctionalityTags',
        'crispy_forms.TestFormHelper',
        'crispy_forms.TestUniformFormHelper',
        'crispy_forms.TestFormLayout',
        'crispy_forms.TestUniformFormLayout',
        'crispy_forms.TestLayoutObjects',
        'crispy_forms.TestDynamicLayouts',
        'crispy_forms.TestUniformDynamicLayouts',
    ],
                                                           verbosity=1,
                                                           interactive=True)
Ejemplo n.º 5
0
def setup():
    global test_runner
    global old_config

    # If you want to support Django 1.5 and older, you need
    # this try-except block.
    try:
        from django.test.runner import DiscoverRunner
        test_runner = DiscoverRunner()
    except ImportError:
        from django.test.simple import DjangoTestSuiteRunner
        test_runner = DjangoTestSuiteRunner()

    test_runner.setup_test_environment()
    old_config = test_runner.setup_databases()
Ejemplo n.º 6
0
 def test_setup_databases(self):
     """
     Test that setup_databases() doesn't fail with dummy database backend.
     """
     runner = DjangoTestSuiteRunner(verbosity=0)
     old_db_connections = db.connections
     try:
         db.connections = db.ConnectionHandler({})
         old_config = runner.setup_databases()
         runner.teardown_databases(old_config)
     except Exception as e:
         self.fail("setup_databases/teardown_databases unexpectedly raised "
                   "an error: %s" % e)
     finally:
         db.connections = old_db_connections
Ejemplo n.º 7
0
    def handle(self, *args, **options):
        setup_test_environment()

        settings.DEBUG = options.get('debug', False)

        verbosity = int(options.get('verbosity', 4))
        apps_to_run = tuple(options.get('apps', '').split(","))
        apps_to_avoid = tuple(options.get('avoid_apps', '').split(","))
        run_server = not options.get('no_server', False)
        test_database = options.get('test_database', False)
        tags = options.get('tags', None)
        failfast = options.get('failfast', False)
        auto_pdb = options.get('auto_pdb', False)

        if test_database:
            migrate_south = getattr(settings, "SOUTH_TESTS_MIGRATE", True)
            try:
                from south.management.commands import patch_for_test_db_setup
                patch_for_test_db_setup()
            except:
                migrate_south = False
                pass

            from django.test.simple import DjangoTestSuiteRunner
            self._testrunner = DjangoTestSuiteRunner()
            self._testrunner.setup_test_environment()
            self._old_db_config = self._testrunner.setup_databases()

            call_command(
                'syncdb',
                verbosity=0,
                interactive=False,
            )
            if migrate_south:
                call_command(
                    'migrate',
                    verbosity=0,
                    interactive=False,
                )

        server = Server(port=options['port'])

        paths = self.get_paths(args, apps_to_run, apps_to_avoid)
        if run_server:
            try:
                server.start()
            except LettuceServerException, e:
                raise SystemExit(e)
Ejemplo n.º 8
0
def runtests():
    settings.configure(**DEFAULT_SETTINGS)

    try:
        # Django <= 1.8
        from django.test.simple import DjangoTestSuiteRunner
        test_runner = DjangoTestSuiteRunner(verbosity=1)
    except ImportError:
        # Django >= 1.8
        django.setup()
        from django.test.runner import DiscoverRunner
        test_runner = DiscoverRunner(verbosity=1)

    failures = test_runner.run_tests(['cotidia'])
    if failures:
        sys.exit(failures)
Ejemplo n.º 9
0
def main():
    # Configure python path
    parent = os.path.dirname(os.path.abspath(__file__))
    if not parent in sys.path:
        sys.path.insert(0, parent)

    # Discover tests
    os.environ['DJANGO_SETTINGS_MODULE'] = 'djedi.tests.settings'
    unittest2.defaultTestLoader.discover('djedi')

    # Run tests
    from django.test.simple import DjangoTestSuiteRunner
    runner = DjangoTestSuiteRunner(verbosity=1, interactive=True, failfast=False)
    exit_code = runner.run_tests(['djedi'])

    sys.exit(exit_code)
Ejemplo n.º 10
0
    def _tests_1_2(self):
        """
        Fire up the Django test suite developed for version 1.2 and up
        """
        INSTALLED_APPS, settings_test = self.get_custom_settings()

        settings.configure(DEBUG=True,
                           DATABASES=self.get_database(),
                           INSTALLED_APPS=self.INSTALLED_APPS +
                           INSTALLED_APPS + self.apps,
                           **settings_test)

        from django.test.simple import DjangoTestSuiteRunner
        failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
        if failures:
            sys.exit(failures)
Ejemplo n.º 11
0
    def __init__(self, *args, **kwargs):
        self.configure()
        self.cov = coverage()
        self.cov.start()
        self.packages = self.resolve_packages()

        super(SetupTestSuite, self).__init__(tests=self.build_tests(), \
                *args, **kwargs)

        # Setup testrunner.
        from django.test.simple import DjangoTestSuiteRunner
        self.test_runner = DjangoTestSuiteRunner(verbosity=1,
                                                 interactive=True,
                                                 failfast=False)
        self.test_runner.setup_test_environment()
        self.old_config = self.test_runner.setup_databases()
Ejemplo n.º 12
0
def runtests():
    args = sys.argv[1:]
    if args:
        test_labels = ["model_mommy.%s" % arg for arg in args]
    else:
        test_labels = ['model_mommy']

    try:
        from django.test.simple import run_tests
        result = run_tests(test_labels, 1, True)
        sys.exit(result)
    except ImportError:
        from django.test.simple import DjangoTestSuiteRunner
        test_suite = DjangoTestSuiteRunner(1, True)
        result = test_suite.run_tests(test_labels)
        sys.exit(result)
Ejemplo n.º 13
0
    def _new_tests(self):
        """
        Fire up the Django test suite developed for version 1.2
        """

        settings.configure(DEBUG=True,
                           DATABASES={
                               'default': {
                                   'ENGINE':
                                   'django.db.backends.sqlite3',
                                   'NAME':
                                   os.path.join(self.DIRNAME, 'database.db'),
                                   'USER':
                                   '',
                                   'PASSWORD':
                                   '',
                                   'HOST':
                                   '',
                                   'PORT':
                                   '',
                               }
                           },
                           INSTALLED_APPS=self.INSTALLED_APPS + self.apps,
                           MIDDLEWARE_CLASSES=self.MIDDLEWARE_CLASSES,
                           ROOT_URLCONF='helpdesk.tests.urls',
                           STATIC_URL='/static/',
                           TEMPLATES=self.TEMPLATES)

        # compatibility with django 1.8 downwards
        # see: http://stackoverflow.com/questions/3841725/how-to-launch-tests-for-django-reusable-app

        try:
            # Django >= 1.6
            from django.test.runner import DiscoverRunner
            test_runner = DiscoverRunner(verbosity=1)
        except ImportError:
            # Django <= 1.5
            from django.test.simple import DjangoTestSuiteRunner
            test_runner = DjangoTestSuiteRunner(verbosity=1)

        if django.VERSION >= (1, 7):
            django.setup()

        failures = test_runner.run_tests(self.apps)
        if failures:
            sys.exit(failures)
    def _new_tests(self):
        """
        Fire up the Django test suite developed for version 1.2
        """
        INSTALLED_APPS, settings_test = self.custom_settings()

        test_db = os.environ.get('DB', 'sqlite')
        if test_db == 'mysql':
            database = {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'django',
                'USER': '******',
            }
        elif test_db == 'postgres':
            database = {
                'ENGINE': 'django.db.backends.postgresql_psycopg2',
                'USER': '******',
                'NAME': 'django',
                'OPTIONS': {
                    'autocommit': True,
                }
            }
        else:
            database = {
                'ENGINE': 'django.db.backends.sqlite3',
                'NAME': os.path.join(self.DIRNAME, 'database.db'),
                'USER': '',
                'PASSWORD': '',
                'HOST': '',
                'PORT': '',
            }

        settings.configure(
            DEBUG = True,
            DATABASES = {
                'default': database,
            },
            INSTALLED_APPS = self.INSTALLED_APPS + INSTALLED_APPS + self.apps,
            **settings_test
        )

        from django.test.simple import DjangoTestSuiteRunner
        failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
        if failures:
            sys.exit(failures)
Ejemplo n.º 15
0
def runtests():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.settings'

    # Django >= 1.7
    if hasattr(django, 'setup'):
        django.setup()

    try:
        # Django <= 1.8
        from django.test.simple import DjangoTestSuiteRunner
        test_runner = DjangoTestSuiteRunner(verbosity=1)
    except ImportError:
        # Django >= 1.8
        from django.test.runner import DiscoverRunner
        test_runner = DiscoverRunner(verbosity=1)

    failures = test_runner.run_tests(['portfolio'])
    sys.exit(failures)
Ejemplo n.º 16
0
def setup_database(actual_server):
	'''
	This will setup your database, sync it, and run migrations if you are using South.
	It does this before the Test Django server is set up.
	'''
	logger.info("Setting up a test database...")

	# Uncomment if you are using South
	patch_for_test_db_setup()

	world.test_runner = DjangoTestSuiteRunner(interactive=False)
	DjangoTestSuiteRunner.setup_test_environment(world.test_runner)
	world.created_db = DjangoTestSuiteRunner.setup_databases(world.test_runner)

	call_command('syncdb', interactive=False, verbosity=0)

	# Uncomment if you are using South
	call_command('migrate', interactive=False, verbosity=0)
Ejemplo n.º 17
0
def runtests(*test_args):
    if not settings.configured:
        settings.configure(**DEFAULT_SETTINGS)

    # Compatibility with Django 1.7's stricter initialization
    if hasattr(django, "setup"):
        django.setup()

    if not test_args:
        test_args = ["tests"]

    parent = os.path.dirname(os.path.abspath(__file__))
    sys.path.insert(0, parent)

    from django.test.simple import DjangoTestSuiteRunner
    failures = DjangoTestSuiteRunner(
        verbosity=1, interactive=True, failfast=False).run_tests(test_args)
    sys.exit(failures)
Ejemplo n.º 18
0
def runtests(*test_args):
    if not test_args:
        test_args = ['location']
    parent = dirname(abspath(__file__))
    sys.path.insert(0, parent)

    if not TRAVIS:
        from django.db import connection
        cursor = connection.cursor()
        cursor.execute("SELECT InitSpatialMetaData();")

    runner = DjangoTestSuiteRunner(
        verbosity=1,
        interactive=False,
        failfast=False
    )
    failures = runner.run_tests(test_args)
    sys.exit(failures)
Ejemplo n.º 19
0
def runtests(*test_args):
    if not test_args:
        test_args = ['django_mailbox']
    parent = dirname(abspath(__file__))
    sys.path.insert(0, parent)
    try:
        # ensure that AppRegistry has loaded
        setup()
    except NameError:
        # This version of Django is too old for an app registry.
        pass
    runner = DjangoTestSuiteRunner(
        verbosity=1,
        interactive=False,
        failfast=False
    )
    failures = runner.run_tests(test_args)
    sys.exit(failures)
Ejemplo n.º 20
0
 def test_ticket_16885(self):
     """Features are also confirmed on mirrored databases."""
     old_db_connections = db.connections
     try:
         db.connections = db.ConnectionHandler({
             'default': {
                 'ENGINE': 'django.db.backends.sqlite3',
             },
             'slave': {
                 'ENGINE': 'django.db.backends.sqlite3',
                 'TEST_MIRROR': 'default',
             },
         })
         slave = db.connections['slave']
         self.assertEqual(slave.features.supports_transactions, None)
         DjangoTestSuiteRunner(verbosity=0).setup_databases()
         self.assertNotEqual(slave.features.supports_transactions, None)
     finally:
         db.connections = old_db_connections
Ejemplo n.º 21
0
def runtests():
    settings.configure(**DEFAULT_SETTINGS)

    # parent = os.path.dirname(os.path.abspath(__file__))
    # sys.path.insert(0, parent)

    try:
        # Django <= 1.8
        from django.test.simple import DjangoTestSuiteRunner
        test_runner = DjangoTestSuiteRunner(verbosity=1)
    except ImportError:
        # Django >= 1.8
        django.setup()
        from django.test.runner import DiscoverRunner
        test_runner = DiscoverRunner(verbosity=1)

    failures = test_runner.run_tests(['cotidia'])
    if failures:
        sys.exit(failures)
Ejemplo n.º 22
0
 def _new_tests(self):
     settings.configure(
         DEBUG = True,
         DATABASES = {
             'default' : {
                 'ENGINE' : 'django.db.backends.sqlite3',
                 'NAME' : os.path.join(self.DIRNAME, 'database.db'),
                 'USER' : '',
                 'PASSWORD' : '',
                 'HOST' : '',
                 'PORT' : '',
             }
         },
         INSTALLED_APPS = self.INSTALLED_APPS + self.apps
     )
     from django.test.simple import DjangoTestSuiteRunner
     failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
     if failures:
         sys.exit(failures)
Ejemplo n.º 23
0
 def run_tests(self):
     """
     Fire up the Django test suite developed for version 1.2
     """
     settings.configure(
         DEBUG=True,
         DATABASES={
             'default': {
                 'ENGINE': 'django.db.backends.sqlite3',
                 'NAME': os.path.join(self.DIRNAME, 'database.db'),
                 'USER': '',
                 'PASSWORD': '',
                 'HOST': '',
                 'PORT': '',
             }
         },
         LOGGING={
             'version': 1,
             'formatters': {
                 'simple': {
                     'format':
                     '%(levelname)s %(asctime)s %(name)s %(message)s'
                 }
             },
             'handlers': {
                 'console': {
                     'class': 'logging.StreamHandler',
                     'formatter': 'simple'
                 }
             },
             'loggers': {
                 'screamshot': {
                     'handlers': ['console'],
                     'level': 'DEBUG'
                 }
             }
         },
         INSTALLED_APPS=self.INSTALLED_APPS + self.apps)
     from django.test.simple import DjangoTestSuiteRunner
     failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
     if failures:  # pragma: no cover
         sys.exit(failures)
Ejemplo n.º 24
0
    def __init__(self, *args, **kwargs):
        self.cov = coverage()
        self.cov.start()
        self.configure()
        self.packages = self.resolve_packages()

        parser = argparse.ArgumentParser()
        parser.add_argument('-a', '--autoreload', dest='autoreload',
                action='store_const', const=True, default=False,)
        parser.add_argument('-f', '--failfast', dest='failfast',
                action='store_const', const=True, default=False,)
        parser.add_argument('-l', '--label', dest='label')
        self.options = vars(parser.parse_args(sys.argv[2:]))
        sys.argv = sys.argv[:2]

        runner_options = {
            'verbosity': 1,
            'interactive': True,
            'failfast': False,
        }

        if django.VERSION >= (1, 8):
            from django.test.runner import DiscoverRunner
            self.test_runner = DiscoverRunner(**runner_options)
            tests = self.test_runner.build_suite()
        else:
            from django.test.simple import DjangoTestSuiteRunner
            self.test_runner = DjangoTestSuiteRunner(**runner_options)
            tests = self.build_tests()

        super(SetupTestSuite, self).__init__(tests=tests, *args, **kwargs)

        # South patches the test management command to handle the
        # SOUTH_TESTS_MIGRATE setting. Apply that patch if South is installed.
        if django.VERSION < (1,7):
            try:
                from south.management.commands import patch_for_test_db_setup
                patch_for_test_db_setup()
            except ImportError:
                pass
        self.test_runner.setup_test_environment()
        self.old_config = self.test_runner.setup_databases()
Ejemplo n.º 25
0
def test_runner_with_coverage(test_labels,
                              verbosity=1,
                              interactive=True,
                              failfast=None,
                              extra_tests=[]):
    """
    Custom test runner.  Follows the django.test.simple.run_tests() interface.
    """
    # Start code coverage before anything else if necessary
    if hasattr(settings, 'COVERAGE_MODULES'):
        cov = coverage.coverage()
        #coverage.use_cache(0) # Do not cache any of the coverage.py stuff
        cov.use_cache(0)  # Do not cache any of the coverage.py stuff
        cov.start()

    test_runner = DjangoTestSuiteRunner(verbosity=verbosity,
                                        interactive=interactive,
                                        failfast=failfast)
    test_results = test_runner.run_tests(test_labels, extra_tests=extra_tests)

    # Stop code coverage after tests have completed
    if hasattr(settings, 'COVERAGE_MODULES'):
        cov.stop()

    # Print code metrics header
    print ''
    print '----------------------------------------------------------------------'
    print ' Unit Test Code Coverage Results'
    print '----------------------------------------------------------------------'

    # Report code coverage metrics
    if hasattr(settings, 'COVERAGE_MODULES'):
        coverage_modules = []
        for module in settings.COVERAGE_MODULES:
            coverage_modules.append(
                __import__(module, globals(), locals(), ['']))
        cov.report(coverage_modules, show_missing=1)
        cov.html_report(coverage_modules, directory='coverage_report')
        # Print code metrics footer
        print '----------------------------------------------------------------------'

    return test_results
Ejemplo n.º 26
0
def runtests(*test_args):
    if not test_args:
        test_args = ['django_pandas']

    parent = os.path.dirname(os.path.abspath(__file__))
    sys.path.insert(0, parent)

    if django.VERSION < (1, 8):
        from django.test.simple import DjangoTestSuiteRunner
        failures = DjangoTestSuiteRunner(verbosity=1,
                                         interactive=True,
                                         failfast=False).run_tests(['tests'])
        sys.exit(failures)

    else:
        from django.test.runner import DiscoverRunner
        failures = DiscoverRunner(verbosity=1,
                                  interactive=True,
                                  failfast=False).run_tests(test_args)
        sys.exit(failures)
Ejemplo n.º 27
0
    def _tests_1_7(self):
        """
        Fire up the Django test suite developed for version 1.7 and up
        """
        INSTALLED_APPS, settings_test = self.get_custom_settings()

        settings.configure(
            DEBUG=True,
            DATABASES=self.get_database(),
            MIDDLEWARE_CLASSES=('django.middleware.common.CommonMiddleware',
                                'django.middleware.csrf.CsrfViewMiddleware'),
            INSTALLED_APPS=self.INSTALLED_APPS + INSTALLED_APPS + self.apps,
            **settings_test)

        from django.test.simple import DjangoTestSuiteRunner
        import django
        django.setup()
        failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
        if failures:
            sys.exit(failures)
Ejemplo n.º 28
0
 def _new_tests(self):
     """
     Fire up the Django test suite developed for version 1.2
     """
     settings.configure(DEBUG=True,
                        DATABASES={
                            'default': {
                                'ENGINE': 'django.db.backends.sqlite3',
                                'NAME': 'foobar',
                                'USER': '',
                                'PASSWORD': '',
                                'HOST': '',
                                'PORT': '',
                            }
                        },
                        INSTALLED_APPS=self.INSTALLED_APPS + self.apps)
     from django.test.simple import DjangoTestSuiteRunner
     failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
     if failures:
         sys.exit(failures)
Ejemplo n.º 29
0
def _django_runner(request):
    """Create the django runner, internal to pytest-django

    This does important things like setting up the local memory email
    backend etc.

    XXX It is a little dodgy that this is an autouse fixture.  Perhaps
        an email fixture should be requested in order to be able to
        use the Django email machinery just like you need to request a
        db fixture for access to the Django database, etc.  But
        without duplicating a lot more of Django's test support code
        we need to follow this model.
    """
    if django_settings_is_configured():
        from django.test.simple import DjangoTestSuiteRunner

        runner = DjangoTestSuiteRunner(interactive=False)
        runner.setup_test_environment()
        request.addfinalizer(runner.teardown_test_environment)
        return runner
Ejemplo n.º 30
0
 def _tests_1_7(self):
     """
     Fire up the Django test suite developed for version 1.7 and up
     """
     test_settings = self.custom_settings
     installed_apps = test_settings.pop('INSTALLED_APPS', ())
     settings.configure(
         DEBUG=True,
         DATABASES=self.get_database(1.7),
         MIDDLEWARE_CLASSES=('django.middleware.common.CommonMiddleware',
                             'django.middleware.csrf.CsrfViewMiddleware'),
         INSTALLED_APPS=tuple(self.INSTALLED_APPS + installed_apps +
                              self.apps),
         **test_settings)
     from django.test.simple import DjangoTestSuiteRunner
     import django
     django.setup()
     failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
     if failures:
         sys.exit(failures)