Refactor NumberRange coercion
This commit is contained in:
@@ -68,12 +68,6 @@ class NumberRangeType(types.TypeDecorator, ScalarCoercible):
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
def _coerce(self, value):
|
def _coerce(self, value):
|
||||||
if value is not None and not isinstance(value, NumberRange):
|
if value is not None:
|
||||||
if (
|
value = NumberRange(value)
|
||||||
isinstance(value, six.string_types) or
|
|
||||||
isinstance(value, six.integer_types)
|
|
||||||
):
|
|
||||||
value = NumberRange(value)
|
|
||||||
else:
|
|
||||||
raise TypeError('Could not coerce value to NumberRange.')
|
|
||||||
return value
|
return value
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
from pytest import mark
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from tests import TestCase
|
from tests import TestCase
|
||||||
from sqlalchemy_utils import (
|
from sqlalchemy_utils import (
|
||||||
@@ -19,9 +20,16 @@ class TestNumberRangeType(TestCase):
|
|||||||
|
|
||||||
self.Building = Building
|
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(
|
building = self.Building(
|
||||||
persons_at_night=NumberRange(1, 3)
|
persons_at_night=number_range
|
||||||
)
|
)
|
||||||
|
|
||||||
self.session.add(building)
|
self.session.add(building)
|
||||||
|
Reference in New Issue
Block a user