Refactor NumberRange coercion
This commit is contained in:
@@ -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
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user