68 lines
2.2 KiB
Python
68 lines
2.2 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import sys
|
||
|
import shutil
|
||
|
import tempfile
|
||
|
from django.conf import settings
|
||
|
|
||
|
|
||
|
def main():
|
||
|
# Dynamically configure the Django settings with the minimum necessary to
|
||
|
# get Django running tests.
|
||
|
KEY_LOCS = {}
|
||
|
try:
|
||
|
try:
|
||
|
# If KeyCzar is available, set up the environment.
|
||
|
from keyczar import keyczart, keyinfo
|
||
|
|
||
|
# Create an RSA private key.
|
||
|
keys_dir = tempfile.mkdtemp("django_extensions_tests_keyzcar_rsa_dir")
|
||
|
keyczart.Create(keys_dir, "test", keyinfo.DECRYPT_AND_ENCRYPT, asymmetric=True)
|
||
|
keyczart.AddKey(keys_dir, "PRIMARY", size=4096)
|
||
|
KEY_LOCS['DECRYPT_AND_ENCRYPT'] = keys_dir
|
||
|
|
||
|
# Create an RSA public key.
|
||
|
pub_dir = tempfile.mkdtemp("django_extensions_tests_keyzcar_pub_dir")
|
||
|
keyczart.PubKey(keys_dir, pub_dir)
|
||
|
KEY_LOCS['ENCRYPT'] = pub_dir
|
||
|
except ImportError:
|
||
|
pass
|
||
|
|
||
|
settings.configure(
|
||
|
INSTALLED_APPS=[
|
||
|
'django.contrib.auth',
|
||
|
'django.contrib.contenttypes',
|
||
|
'django.contrib.admin',
|
||
|
'django.contrib.sessions',
|
||
|
'django_extensions',
|
||
|
'django_extensions.tests',
|
||
|
],
|
||
|
# Django replaces this, but it still wants it. *shrugs*
|
||
|
DATABASE_ENGINE='django.db.backends.sqlite3',
|
||
|
DATABASES={
|
||
|
'default': {
|
||
|
'ENGINE': 'django.db.backends.sqlite3',
|
||
|
}
|
||
|
},
|
||
|
MEDIA_ROOT='/tmp/django_extensions_test_media/',
|
||
|
MEDIA_PATH='/media/',
|
||
|
ROOT_URLCONF='django_extensions.tests.urls',
|
||
|
DEBUG=True,
|
||
|
TEMPLATE_DEBUG=True,
|
||
|
ENCRYPTED_FIELD_KEYS_DIR=KEY_LOCS,
|
||
|
)
|
||
|
|
||
|
from django.test.utils import get_runner
|
||
|
test_runner = get_runner(settings)(verbosity=2, interactive=True)
|
||
|
failures = test_runner.run_tests(['django_extensions'])
|
||
|
sys.exit(failures)
|
||
|
|
||
|
finally:
|
||
|
for name, path in KEY_LOCS.items():
|
||
|
# cleanup crypto key temp dirs
|
||
|
shutil.rmtree(path)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|