Browse files

travis integration #2

  • Loading branch information...
1 parent 300cf2e commit 2e91c0604c5887317e472ba960d43e26a1387090 @ramusus committed Feb 20, 2013
Showing with 147 additions and 0 deletions.
  1. +17 −0 .travis.yml
  2. +117 −0 quicktest.py
  3. +2 −0 requirements.txt
  4. +11 −0 settings_test.py
View
17 .travis.yml
@@ -0,0 +1,17 @@
+language: python
+python:
+ - "2.7"
+env:
+ - DJANGO=1.4
+install:
+ - pip install -r requirements.txt --use-mirrors
+ - pip install -q Django==$DJANGO --use-mirrors
+ - pip install -q . --use-mirrors
+script:
+ - python quicktest.py vkontakte_wall
+notifications:
+ email:
+ recipients:
+ - ramusus@gmail.com
+ on_success: change
+ on_failure: change
View
117 quicktest.py
@@ -0,0 +1,117 @@
+import os
+import sys
+import argparse
+from django.conf import settings
+
+class QuickDjangoTest(object):
+ """
+ A quick way to run the Django test suite without a fully-configured project.
+
+ Example usage:
+
+ >>> QuickDjangoTest('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
+ """
+ INSTALLED_APPS, settings_test = self.custom_settings()
+
+ settings.configure(DEBUG = True,
+ DATABASE_ENGINE = 'sqlite3',
+ DATABASE_NAME = os.path.join(self.DIRNAME, 'database.db'),
+ INSTALLED_APPS = self.INSTALLED_APPS + INSTALLED_APPS + self.apps,
+ **settings_test
+ )
+ 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
+ """
+ INSTALLED_APPS, settings_test = self.custom_settings()
+
+ 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 + 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)
+
+ def custom_settings(self):
+ try:
+ from settings_test import *
+ settings_test = dict(locals())
+ del settings_test['self']
+ if 'INSTALLED_APPS' in settings_test:
+ del settings_test['INSTALLED_APPS']
+ except ImportError:
+ settings_test = {}
+ INSTALLED_APPS = []
+
+ return INSTALLED_APPS, settings_test
+
+if __name__ == '__main__':
+ """
+ What do when the user hits this file from the shell.
+
+ Example usage:
+
+ $ python quicktest.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()
+ QuickDjangoTest(*args.apps)
View
2 requirements.txt
@@ -0,0 +1,2 @@
+factory_boy
+django-vkontakte-api>=0.3.4
View
11 settings_test.py
@@ -0,0 +1,11 @@
+INSTALLED_APPS = (
+ 'vkontakte_places',
+ 'oauth_tokens',
+)
+
+OAUTH_TOKENS_VKONTAKTE_CLIENT_ID = 3430034
+OAUTH_TOKENS_VKONTAKTE_CLIENT_SECRET = 'b0FwzyKtO8QiQmgWQMTz'
+OAUTH_TOKENS_VKONTAKTE_SCOPE = ['ads,wall,photos,friends,stats']
+OAUTH_TOKENS_VKONTAKTE_USERNAME = '+919665223715'
+OAUTH_TOKENS_VKONTAKTE_PASSWORD = 'githubovich'
+OAUTH_TOKENS_VKONTAKTE_PHONE_END = '3715'

0 comments on commit 2e91c06

Please sign in to comment.