From 0c42443b9c2beaf867cb055dee93ca5755de08c9 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Thu, 9 Jan 2014 15:42:59 +0200 Subject: [PATCH] Refactor NumberRange coercion --- sqlalchemy_utils/types/number_range.py | 10 ++-------- tests/types/test_number_range.py | 12 ++++++++++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/sqlalchemy_utils/types/number_range.py b/sqlalchemy_utils/types/number_range.py index 696f5b2..dfba3b5 100644 --- a/sqlalchemy_utils/types/number_range.py +++ b/sqlalchemy_utils/types/number_range.py @@ -68,12 +68,6 @@ class NumberRangeType(types.TypeDecorator, ScalarCoercible): return value def _coerce(self, value): - if value is not None and not isinstance(value, NumberRange): - if ( - isinstance(value, six.string_types) or - isinstance(value, six.integer_types) - ): - value = NumberRange(value) - else: - raise TypeError('Could not coerce value to NumberRange.') + if value is not None: + value = NumberRange(value) return value diff --git a/tests/types/test_number_range.py b/tests/types/test_number_range.py index 18e142c..b82c76a 100644 --- a/tests/types/test_number_range.py +++ b/tests/types/test_number_range.py @@ -1,3 +1,4 @@ +from pytest import mark import sqlalchemy as sa from tests import TestCase from sqlalchemy_utils import ( @@ -19,9 +20,16 @@ class TestNumberRangeType(TestCase): self.Building = Building - def test_save_number_range(self): + @mark.parametrize( + 'number_range', + ( + (1, 3), + '1-3' + ) + ) + def test_save_number_range(self, number_range): building = self.Building( - persons_at_night=NumberRange(1, 3) + persons_at_night=number_range ) self.session.add(building)