Source code for sqlobject.tests.test_jsonbcol
import pytest
from sqlobject import SQLObject, JsonbCol
from sqlobject.tests.dbtest import getConnection, setupClass
########################################
# Jsonb columns
########################################
[docs]class JsonbContainer(SQLObject):
jsondata = JsonbCol(default=None)
jsondata_none = JsonbCol(default=None)
jsondata_list = JsonbCol(default=None)
dictdata = dict(
ship=u'USS Voyager',
number='NCC-74656',
crew=['Cpt. Janeway', 'Doctor', 'Lt. Torries', 'Seven of Nine'],
races=('Borg', 'Kason',),
distance2earth=70000,
coming_home=True)
nonedata = None
listofdictsdata = [dict(Erath=7390000000),
dict(Vulcan=6000000000),
dict(Kronos='unknown')]
[docs]def test_jsonbCol():
connection = getConnection()
if connection.dbName != "postgres":
pytest.skip("These tests require PostgreSQL")
setupClass([JsonbContainer], force=True)
my_jsonb = JsonbContainer(
jsondata=dictdata,
jsondata_none=nonedata,
jsondata_list=listofdictsdata)
iid = my_jsonb.id
JsonbContainer._connection.cache.clear()
my_jsonb_2 = JsonbContainer.get(iid)
assert my_jsonb_2.jsondata['coming_home'] == dictdata['coming_home']
assert my_jsonb_2.jsondata['crew'] == dictdata['crew']
assert my_jsonb_2.jsondata['races'] == ['Borg', 'Kason']
assert my_jsonb_2.jsondata_none is None
assert my_jsonb_2.jsondata_list == listofdictsdata