Skip to content

Commit 27c44b3

Browse files
Maxime Vdbgabrielfalcao
Maxime Vdb
authored andcommitted
Django 1.9 compatibility (#522)
* django.db.models.loading.get_models => django.apps.apps.get_models * requires_model_validation -> requires_system_checks in Django==1.9 * accept list and tupls for LETTUCE_APPS and LETTUCE_AVOID_APPS
1 parent 9b5468c commit 27c44b3

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

lettuce/django/apps.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def _filter_bultins(module):
3232
def _filter_configured_apps(module):
3333
"returns only those apps that are in django.conf.settings.LETTUCE_APPS"
3434
app_found = True
35-
if hasattr(settings, 'LETTUCE_APPS') and isinstance(settings.LETTUCE_APPS, tuple):
35+
if hasattr(settings, 'LETTUCE_APPS') and isinstance(settings.LETTUCE_APPS, (list, tuple)):
3636
app_found = False
3737
for appname in settings.LETTUCE_APPS:
3838
if module.__name__.startswith(appname):
@@ -44,7 +44,7 @@ def _filter_configured_apps(module):
4444
def _filter_configured_avoids(module):
4545
"returns apps that are not within django.conf.settings.LETTUCE_AVOID_APPS"
4646
run_app = False
47-
if hasattr(settings, 'LETTUCE_AVOID_APPS') and isinstance(settings.LETTUCE_AVOID_APPS, tuple):
47+
if hasattr(settings, 'LETTUCE_AVOID_APPS') and isinstance(settings.LETTUCE_AVOID_APPS, (list, tuple)):
4848
for appname in settings.LETTUCE_AVOID_APPS:
4949
if module.__name__.startswith(appname):
5050
run_app = True
@@ -73,7 +73,7 @@ def harvest_lettuces(only_the_apps=None, avoid_apps=None, path="features"):
7373

7474
apps = get_apps()
7575

76-
if isinstance(only_the_apps, tuple) and any(only_the_apps):
76+
if isinstance(only_the_apps, (list, tuple)) and any(only_the_apps):
7777

7878
def _filter_only_specified(module):
7979
return module.__name__ in only_the_apps
@@ -83,7 +83,7 @@ def _filter_only_specified(module):
8383
apps = filter(_filter_configured_apps, apps)
8484
apps = filter(_filter_configured_avoids, apps)
8585

86-
if isinstance(avoid_apps, tuple) and any(avoid_apps):
86+
if isinstance(avoid_apps, (list, tuple)) and any(avoid_apps):
8787

8888
def _filter_avoid(module):
8989
return module.__name__ not in avoid_apps

lettuce/django/management/commands/harvest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
class Command(BaseCommand):
3939
help = u'Run lettuce tests all along installed apps'
4040
args = '[PATH to feature file or folder]'
41-
requires_model_validation = False
41+
requires_model_validation = requires_system_checks = False
4242

4343
option_list = BaseCommand.option_list + (
4444
make_option('-a', '--apps', action='store', dest='apps', default='',

lettuce/django/steps/models.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
from django.core.management import call_command
99
from django.core.management.color import no_style
1010
from django.db import connection
11-
from django.db.models.loading import get_models
11+
try:
12+
from django.db.models.loading import get_models
13+
except ImportError:
14+
from django.apps import apps
15+
get_models = apps.get_models
1216
from django.utils.functional import curry
1317
from functools import wraps
1418

0 commit comments

Comments
 (0)