some cleanup and tests
This commit is contained in:
@ -5,6 +5,7 @@ from pydantic import ValidationError
|
||||
|
||||
import ormar
|
||||
from ormar.exceptions import NoMatch, MultipleMatches, RelationshipInstanceError
|
||||
from ormar.fields.foreign_key import ForeignKeyField
|
||||
from tests.settings import DATABASE_URL
|
||||
|
||||
database = databases.Database(DATABASE_URL, force_rollback=True)
|
||||
@ -120,6 +121,7 @@ async def test_model_crud():
|
||||
|
||||
track = await Track.objects.get(title="The Bird")
|
||||
assert track.album.pk == album.pk
|
||||
assert isinstance(track.album, ormar.Model)
|
||||
assert track.album.name is None
|
||||
await track.album.load()
|
||||
assert track.album.name == "Malibu"
|
||||
|
||||
@ -75,9 +75,18 @@ def test_model_attribute_access(example):
|
||||
example.test = 12
|
||||
assert example.test == 12
|
||||
|
||||
example._orm_saved = True
|
||||
assert example._orm_saved
|
||||
|
||||
|
||||
def test_model_attribute_json_access(example):
|
||||
example.test_json = dict(aa=12)
|
||||
assert example.test_json == dict(aa=12)
|
||||
|
||||
|
||||
def test_non_existing_attr(example):
|
||||
with pytest.raises(ValueError):
|
||||
example.new_attr=12
|
||||
with pytest.raises(ValueError):
|
||||
example.new_attr = 12
|
||||
|
||||
|
||||
def test_primary_key_access_and_setting(example):
|
||||
|
||||
@ -11,6 +11,16 @@ database = databases.Database(DATABASE_URL, force_rollback=True)
|
||||
metadata = sqlalchemy.MetaData()
|
||||
|
||||
|
||||
class JsonSample(ormar.Model):
|
||||
class Meta:
|
||||
tablename = "jsons"
|
||||
metadata = metadata
|
||||
database = database
|
||||
|
||||
id: ormar.Integer(primary_key=True)
|
||||
test_json: ormar.JSON(nullable=True)
|
||||
|
||||
|
||||
class User(ormar.Model):
|
||||
class Meta:
|
||||
tablename = "users"
|
||||
@ -56,6 +66,18 @@ def test_model_pk():
|
||||
assert user.id == 1
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_json_column():
|
||||
async with database:
|
||||
await JsonSample.objects.create(test_json=dict(aa=12))
|
||||
await JsonSample.objects.create(test_json='{"aa": 12}')
|
||||
|
||||
items = await JsonSample.objects.all()
|
||||
assert len(items) == 2
|
||||
assert items[0].test_json == dict(aa=12)
|
||||
assert items[1].test_json == dict(aa=12)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_model_crud():
|
||||
async with database:
|
||||
|
||||
Reference in New Issue
Block a user