def test_query(filled_database): foo = Tag('foo') foo.id = 1 bar = Tag('bar') bar.id = 2 entries = filled_database.search( attrs.Tag('foo') | attrs.Tag('bar'), sortby='id') assert len(entries) == 4 assert entries == [ DatabaseEntry(id=4, tags=[foo]), DatabaseEntry(id=5, tags=[bar]), DatabaseEntry(id=8, tags=[foo]), DatabaseEntry(id=10, tags=[bar])]
def test_tag(): expected = '{"Tag": ["foo", false]}' assert json.dumps(db_attrs.Tag('foo'), cls=QueryEncoder) == expected
def test_tag_inverted(): expected = '{"Tag": ["foo", true]}' assert json.dumps(~db_attrs.Tag('foo'), cls=QueryEncoder) == expected
def test_decode_tag(): dump = '{"Tag": ["foo", false]}' assert json.loads(dump, object_hook=query_decode) == db_attrs.Tag('foo')