Merge pull request #107 from kvesteri/feature/dependency-test-matrix

Feature/dependency test matrix
This commit is contained in:
Konsta Vesterinen
2014-12-16 22:37:57 +02:00
6 changed files with 30 additions and 8 deletions

View File

@@ -13,7 +13,12 @@ python:
- 3.3 - 3.3
- 3.4 - 3.4
env:
- EXTRAS=test
- EXTRAS=test_all
install: install:
- pip install -e ".[test]" - pip install -e .[$EXTRAS]
script: script:
- py.test - py.test

View File

@@ -36,7 +36,6 @@ extras_require = {
'pytz>=2014.2', 'pytz>=2014.2',
'python-dateutil>=2.2', 'python-dateutil>=2.2',
'pymysql', 'pymysql',
'colour>=0.0.4'
], ],
'anyjson': ['anyjson>=0.3.3'], 'anyjson': ['anyjson>=0.3.3'],
'babel': ['Babel>=1.3'], 'babel': ['Babel>=1.3'],
@@ -53,9 +52,10 @@ extras_require = {
# Add all optional dependencies to testing requirements. # Add all optional dependencies to testing requirements.
test_all = []
for name, requirements in extras_require.items(): for name, requirements in extras_require.items():
if name != 'test': test_all += requirements
extras_require['test'] += requirements extras_require['test_all'] = test_all
setup( setup(

View File

@@ -1,5 +1,11 @@
babel = None
try:
import babel
except ImportError:
pass
import six import six
from sqlalchemy import types from sqlalchemy import types
from sqlalchemy_utils.exceptions import ImproperlyConfigured
from sqlalchemy_utils.primitives import WeekDay, WeekDays from sqlalchemy_utils.primitives import WeekDay, WeekDays
from .scalar_coercible import ScalarCoercible from .scalar_coercible import ScalarCoercible
from .bit import BitType from .bit import BitType
@@ -48,6 +54,14 @@ class WeekDaysType(types.TypeDecorator, ScalarCoercible):
impl = BitType(WeekDay.NUM_WEEK_DAYS) impl = BitType(WeekDay.NUM_WEEK_DAYS)
def __init__(self, *args, **kwargs):
if babel is None:
raise ImproperlyConfigured(
"'babel' package is required to use 'WeekDaysType'"
)
super(WeekDaysType, self).__init__(*args, **kwargs)
@property @property
def comparator_factory(self): def comparator_factory(self):
return self.impl.comparator_factory return self.impl.comparator_factory

View File

@@ -1,12 +1,13 @@
from pytest import mark from pytest import mark
import sqlalchemy as sa import sqlalchemy as sa
intervals = None intervals = None
inf = -1
try: try:
import intervals import intervals
from infinity import inf
except ImportError: except ImportError:
pass pass
from tests import TestCase from tests import TestCase
from infinity import inf
from sqlalchemy_utils import IntRangeType from sqlalchemy_utils import IntRangeType

View File

@@ -6,10 +6,10 @@ import sqlalchemy as sa
intervals = None intervals = None
try: try:
import intervals import intervals
from infinity import inf
except ImportError: except ImportError:
pass pass
from tests import TestCase from tests import TestCase
from infinity import inf
from sqlalchemy_utils import NumericRangeType from sqlalchemy_utils import NumericRangeType

View File

@@ -1,16 +1,18 @@
from babel import Locale import pytest
import sqlalchemy as sa import sqlalchemy as sa
from sqlalchemy_utils.types import WeekDaysType from sqlalchemy_utils.types import WeekDaysType
from sqlalchemy_utils.types.weekdays import babel
from sqlalchemy_utils.primitives import WeekDays from sqlalchemy_utils.primitives import WeekDays
from sqlalchemy_utils import i18n from sqlalchemy_utils import i18n
from tests import TestCase from tests import TestCase
@pytest.mark.skipif('babel is None')
class WeekDaysTypeTestCase(TestCase): class WeekDaysTypeTestCase(TestCase):
def setup_method(self, method): def setup_method(self, method):
TestCase.setup_method(self, method) TestCase.setup_method(self, method)
i18n.get_locale = lambda: Locale('en') i18n.get_locale = lambda: babel.Locale('en')
def create_models(self): def create_models(self):
class Schedule(self.Base): class Schedule(self.Base):