3 from django
.conf
import settings
4 from django
.core
.management
.base
import BaseCommand
6 from couchdbkit
import Database
7 from couchdbkit
.loaders
import FileSystemDocsLoader
8 from couchdbkit
.ext
.django
.testrunner
import CouchDbKitTestSuiteRunner
10 from django
.conf
import settings
14 # http://djangosnippets.org/snippets/2211/
16 class MygpoTestSuiteRunner(CouchDbKitTestSuiteRunner
):
18 Test runner that is able to skip some tests according to settings.py
21 def __init__(self
, *args
, **kwargs
):
22 self
.EXCLUDED_APPS
= getattr(settings
, 'TEST_EXCLUDE', [])
23 settings
.TESTING
= True
24 super(MygpoTestSuiteRunner
, self
).__init
__(*args
, **kwargs
)
27 def setup_databases(self
, **kwargs
):
28 ret
= super(MygpoTestSuiteRunner
, self
).setup_databases(**kwargs
)
29 path
= os
.path
.join(settings
.BASE_DIR
, '..', 'couchdb', '_design')
30 loader
= FileSystemDocsLoader(path
)
32 db_urls
= set(db_url
for pkg
, db_url
in self
.dbs
)
33 for db_url
in db_urls
:
35 loader
.sync(db
, verbose
=True)
40 def build_suite(self
, *args
, **kwargs
):
41 suite
= super(MygpoTestSuiteRunner
, self
).build_suite(*args
, **kwargs
)
42 if not args
[0] and not getattr(settings
, 'RUN_ALL_TESTS', False):
45 pkg
= case
.__class
__.__module
__.split('.')[0]
46 if pkg
not in self
.EXCLUDED_APPS
:
52 def create_auth_string(username
, password
):
54 credentials
= base64
.encodestring("%s:%s" % (username
, password
)).rstrip()
55 auth_string
= 'Basic %s' % credentials