Permalink
Browse files

Tried to move to a qiktest method

  • Loading branch information...
1 parent 690c8ee commit 61a45a7784ce730d17f203a6900534189e08a4a3 @palewire palewire committed Jun 14, 2012
Showing with 107 additions and 43 deletions.
  1. +9 −3 .travis.yml
  2. +98 −0 qiktest.py
  3. +0 −1 requirements.txt
  4. +0 −39 run_tests.py
View
@@ -3,8 +3,14 @@ python:
- "2.5"
- "2.6"
- "2.7"
+env:
+ - DJANGO_VERSION=1.0.4
+ - DJANGO_VERSION=1.1.4
+ - DJANGO_VERSION=1.2.7
+ - DJANGO_VERSION=1.3.1
+ - DJANGO_VERSION=1.4
# command to install requirements
-install:
- - pip install -r requirements.txt --use-mirrors
+install:
+ - pip install -q Django==$DJANGO_VERSION --use-mirrors
# command to run tests
-script: python run_tests.py
+script: python qiktest.py greeking
View
@@ -0,0 +1,98 @@
+import os
+import sys
+import argparse
+from django.conf import settings
+
+
+class QikDjangoTest(object):
+ """
+ A quick way to run the Django test suite without a fully-configured project.
+
+ Example usage:
+
+ >>> QikDjangoTest('app1', 'app2')
+
+ Based on a script published by Lukasz Dziedzia at:
+ http://stackoverflow.com/questions/3841725/how-to-launch-tests-for-django-reusable-app
+ """
+ DIRNAME = os.path.dirname(__file__)
+ INSTALLED_APPS = (
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.admin',
+ )
+
+ def __init__(self, *args, **kwargs):
+ self.apps = args
+ # Get the version of the test suite
+ self.version = self.get_test_version()
+ # Call the appropriate one
+ if self.version == 'new':
+ self._new_tests()
+ else:
+ self._old_tests()
+
+ def get_test_version(self):
+ """
+ Figure out which version of Django's test suite we have to play with.
+ """
+ from django import VERSION
+ if VERSION[0] == 1 and VERSION[1] >= 2:
+ return 'new'
+ else:
+ return 'old'
+
+ def _old_tests(self):
+ """
+ Fire up the Django test suite from before version 1.2
+ """
+ settings.configure(DEBUG = True,
+ DATABASE_ENGINE = 'sqlite3',
+ DATABASE_NAME = os.path.join(self.DIRNAME, 'database.db'),
+ INSTALLED_APPS = self.INSTALLED_APPS + self.apps
+ )
+ from django.test.simple import run_tests
+ failures = run_tests(self.apps, verbosity=1)
+ if failures:
+ sys.exit(failures)
+
+ 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
+ )
+ from django.test.simple import DjangoTestSuiteRunner
+ failures = DjangoTestSuiteRunner().run_tests(self.apps, verbosity=1)
+ if failures:
+ sys.exit(failures)
+
+if __name__ == '__main__':
+ """
+ What do when the user hits this file from the shell.
+
+ Example usage:
+
+ $ python qiktest.py app1 app2
+
+ """
+ parser = argparse.ArgumentParser(
+ usage="[args]",
+ description="Run Django tests on the provided applications."
+ )
+ parser.add_argument('apps', nargs='+', type=str)
+ args = parser.parse_args()
+ QikDjangoTest(*args.apps)
View
@@ -1 +0,0 @@
-Django==1.4
View
@@ -1,39 +0,0 @@
-"""
-A bootstrap script that allows for easily testing this app outside of a full
-Django project.
-
-Base on a script published by Lukasz Dziedzia at:
-http://stackoverflow.com/questions/3841725/how-to-launch-tests-for-django-reusable-app
-"""
-
-import os, sys
-from django.conf import settings
-
-DIRNAME = os.path.dirname(__file__)
-settings.configure(
- DEBUG = True,
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.sqlite3',
- 'NAME': os.path.join(DIRNAME, 'database.db'),
- 'USER': '',
- 'PASSWORD': '',
- 'HOST': '',
- 'PORT': '',
- }
- },
- INSTALLED_APPS = (
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.admin',
- 'greeking',
- )
-)
-
-
-from django.test.simple import DjangoTestSuiteRunner
-
-failures = DjangoTestSuiteRunner().run_tests(['greeking',], verbosity=1)
-if failures:
- sys.exit(failures)

0 comments on commit 61a45a7

Please sign in to comment.