From 241210c900bf89e1fe39cd7b98c702140dc7e5b3 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Tue, 16 Dec 2014 18:22:13 +0200 Subject: [PATCH] Skip weekday type tests if babel not installed --- sqlalchemy_utils/types/weekdays.py | 14 ++++++++++++++ tests/types/test_weekdays.py | 6 ++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/sqlalchemy_utils/types/weekdays.py b/sqlalchemy_utils/types/weekdays.py index 9c19ee3..6b1d269 100644 --- a/sqlalchemy_utils/types/weekdays.py +++ b/sqlalchemy_utils/types/weekdays.py @@ -1,5 +1,11 @@ +babel = None +try: + import babel +except ImportError: + pass import six from sqlalchemy import types +from sqlalchemy_utils.exceptions import ImproperlyConfigured from sqlalchemy_utils.primitives import WeekDay, WeekDays from .scalar_coercible import ScalarCoercible from .bit import BitType @@ -48,6 +54,14 @@ class WeekDaysType(types.TypeDecorator, ScalarCoercible): 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 def comparator_factory(self): return self.impl.comparator_factory diff --git a/tests/types/test_weekdays.py b/tests/types/test_weekdays.py index 1dac33c..afdedbb 100644 --- a/tests/types/test_weekdays.py +++ b/tests/types/test_weekdays.py @@ -1,16 +1,18 @@ -from babel import Locale +import pytest import sqlalchemy as sa from sqlalchemy_utils.types import WeekDaysType +from sqlalchemy_utils.types.weekdays import babel from sqlalchemy_utils.primitives import WeekDays from sqlalchemy_utils import i18n from tests import TestCase +@pytest.mark.skipif('babel is None') class WeekDaysTypeTestCase(TestCase): def 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): class Schedule(self.Base):