Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

environment.py 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. def before_all(context):
  2. from tests.config import configure
  3. configure()
  4. from django.test import utils
  5. utils.setup_test_environment()
  6. def before_scenario(context, scenario):
  7. from django.db import connection
  8. connection.creation.create_test_db(verbosity=0, autoclobber=True)
  9. # Set-up webtest app
  10. # Ensure settings are patched just like in django_webtest
  11. from django.conf import settings
  12. # Copied from django_webtest
  13. context._cached_middleware = settings.MIDDLEWARE_CLASSES
  14. context._cached_auth_backends = settings.AUTHENTICATION_BACKENDS
  15. webtest_auth_middleware = 'django_webtest.middleware.WebtestUserMiddleware'
  16. django_auth_middleware = 'django.contrib.auth.middleware.AuthenticationMiddleware'
  17. settings.MIDDLEWARE_CLASSES = list(settings.MIDDLEWARE_CLASSES)
  18. if django_auth_middleware not in settings.MIDDLEWARE_CLASSES:
  19. # There can be a custom AuthenticationMiddleware subclass or
  20. # replacement, we can't compute its index so just put our auth
  21. # middleware to the end. If appending causes problems
  22. # _setup_auth_middleware method can be overriden by a subclass.
  23. settings.MIDDLEWARE_CLASSES.append(webtest_auth_middleware)
  24. else:
  25. index = settings.MIDDLEWARE_CLASSES.index(django_auth_middleware)
  26. settings.MIDDLEWARE_CLASSES.insert(index + 1, webtest_auth_middleware)
  27. settings.AUTHENTICATION_BACKENDS = list(settings.AUTHENTICATION_BACKENDS)
  28. backend_name = 'django_webtest.backends.WebtestUserBackend'
  29. settings.AUTHENTICATION_BACKENDS.insert(0, backend_name)
  30. from django_webtest import DjangoTestApp
  31. context.browser = DjangoTestApp()
  32. def after_scenario(context, scenario):
  33. from django.db import connection
  34. connection.creation.destroy_test_db('', verbosity=0)
  35. from django.conf import settings
  36. settings.MIDDLEWARE_CLASSES = context._cached_middleware
  37. settings.AUTHENTICATION_BACKENDS = context._cached_auth_backends
  38. def after_all(context):
  39. from django.test import utils
  40. utils.teardown_test_environment()