-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathtest_jsonbcol.py
More file actions
53 lines (38 loc) · 1.43 KB
/
Copy pathtest_jsonbcol.py
File metadata and controls
53 lines (38 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import pytest
from sqlobject import SQLObject, JsonbCol
from sqlobject.tests.dbtest import getConnection, setupClass
########################################
# Jsonb columns
########################################
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')]
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