def test_keys(session):
from sqlalchemy.orm.exc import FlushError
from snovault.storage import (
Resource,
Key,
)
name = 'testdata'
props1 = {'foo': 'bar'}
resource = Resource('test_item', {name: props1})
session.add(resource)
session.flush()
resource = session.query(Resource).one()
testname = 'foo'
key = Key(rid=resource.rid, name=testname, value=props1[testname])
session.add(key)
session.flush()
assert session.query(Key).count() == 1
othertest = 'foofoo'
othervalue = 'barbar'
key2 = Key(rid=resource.rid, name=othertest, value=othervalue)
session.add(key2)
session.flush()
assert session.query(Key).count() == 2
props2 = {'foofoo': 'barbar'}
resource2 = Resource('test_item', {name: props2})
session.add(resource2)
session.flush()
key3 = Key(rid=resource2.rid, name=testname, value=props1[testname])
session.add(key3)
with pytest.raises(FlushError):
session.flush()
评论列表
文章目录