fix for #354 - allow None for nullable field with choices
This commit is contained in:
@ -134,6 +134,26 @@ class Country(ormar.Model):
|
||||
)
|
||||
|
||||
|
||||
class NullableCountry(ormar.Model):
|
||||
class Meta:
|
||||
tablename = "country2"
|
||||
metadata = metadata
|
||||
database = database
|
||||
|
||||
id: int = ormar.Integer(primary_key=True)
|
||||
name: str = ormar.String(max_length=9, choices=country_name_choices, nullable=True)
|
||||
|
||||
|
||||
class NotNullableCountry(ormar.Model):
|
||||
class Meta:
|
||||
tablename = "country3"
|
||||
metadata = metadata
|
||||
database = database
|
||||
|
||||
id: int = ormar.Integer(primary_key=True)
|
||||
name: str = ormar.String(max_length=9, choices=country_name_choices, nullable=False)
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, scope="module")
|
||||
def create_test_database():
|
||||
engine = sqlalchemy.create_engine(DATABASE_URL)
|
||||
@ -538,6 +558,17 @@ async def test_model_choices():
|
||||
await Country.objects.filter(name="Belize").update(name="Vietnam")
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_nullable_field_model_choices():
|
||||
"""Test that choices work properly for according to nullable setting"""
|
||||
async with database:
|
||||
c1 = await NullableCountry(name=None).save()
|
||||
assert c1.name is None
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
await NotNullableCountry(name=None).save()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_start_and_end_filters():
|
||||
async with database:
|
||||
|
||||
Reference in New Issue
Block a user