diff --git a/.travis.yml b/.travis.yml index a6fe6ea5e802dd84da6c14d383809c539c505f5c..d4998dbac23e329cf9f41e3043a817c403f0dd6e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ env: - DJANGO_VERSION=1.7 - DJANGO_VERSION=1.8 - DJANGO_VERSION=1.9 + - DJANGO_VERSION=1.10 matrix: exclude: - python: "3.3" @@ -22,6 +23,8 @@ matrix: env: DJANGO_VERSION=1.7 - python: "3.3" env: DJANGO_VERSION=1.9 + - python: "3.3" + env: DJANGO_VERSION=1.10 before_install: - sudo apt-get update -qq - sudo apt-get install -qq sloccount @@ -35,7 +38,7 @@ install: script: - mkdir /home/travis/test_root/ -p - export TEST_PROJECT_ROOT=/home/travis/test_root/ - - coverage run runtests.py test djangobower 2>test_out + - coverage run runtests.py test djangobower > >(tee stdout.log) 2> >(tee test_out >&2) after_success: - coverage report - pip install --quiet python-coveralls diff --git a/djangobower/management/base.py b/djangobower/management/base.py index 7d38feb96ef689743149485e28688e55a8da70bd..bac82337651efeef0b7617bbd205e71eec1c4637 100644 --- a/djangobower/management/base.py +++ b/djangobower/management/base.py @@ -10,6 +10,10 @@ class BaseBowerCommand(BaseCommand): requires_system_checks = False + # add fake .options_list for Django>=1.10 + if not hasattr(BaseCommand, 'option_list'): + option_list = () + def handle(self, *args, **options): self._check_bower_exists() bower_adapter.create_components_root() diff --git a/djangobower/management/commands/bower.py b/djangobower/management/commands/bower.py index 734e2cbed8a6526bb6b60c285093f83562f4e43f..b8779e99664049a27b5cdbbbd69f0addb4f8c581 100644 --- a/djangobower/management/commands/bower.py +++ b/djangobower/management/commands/bower.py @@ -7,8 +7,13 @@ class Command(BaseBowerCommand): help = 'Call bower in components root ({0}).'.format( bower_adapter._components_root) + # for Django>=1.10 + def add_arguments(self, parser): + parser.add_argument('command', nargs='*') + def handle(self, *args, **options): super(Command, self).handle(*args, **options) + args = args or tuple(options.pop('command')) if self._is_single_command('install', args): self._install([]) elif self._is_single_command('freeze', args): diff --git a/djangobower/management/commands/bower_install.py b/djangobower/management/commands/bower_install.py index 06d3d0c453641ef3d04bd48a3bc5a0ed10ca6b23..816329824aec2f8eeb5803a87f37053605e9fab6 100644 --- a/djangobower/management/commands/bower_install.py +++ b/djangobower/management/commands/bower_install.py @@ -5,6 +5,7 @@ from ..base import BaseBowerCommand class Command(BaseBowerCommand): help = 'Install bower apps' + # for Django<1.10 option_list = BaseBowerCommand.option_list + ( make_option('-F', action='store_true', @@ -17,6 +18,20 @@ class Command(BaseBowerCommand): default=False, help='Allow installing bower packages even when user executing this script is root'), ) + # for Django>=1.10 + def add_arguments(self, parser): + parser.add_argument('--force', + '-F', + action='store_true', + dest='force', + default=False, + help='Force installation of latest package version on conflict') + parser.add_argument('--allow-root', + '-R', + action='store_true', + dest='allow-root', + default=False, + help='Allow installing bower packages even when user executing this script is root') def handle(self, *args, **options): super(Command, self).handle(*args, **options)