-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathtest_string_id.py
More file actions
79 lines (62 loc) · 1.58 KB
/
test_string_id.py
File metadata and controls
79 lines (62 loc) · 1.58 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from sqlobject import SQLObject, StringCol, sqlmeta
from sqlobject.tests.dbtest import setupClass
########################################
# String ID test
########################################
class SOStringID(SQLObject):
class sqlmeta(sqlmeta):
table = 'so_string_id'
idType = str
val = StringCol(alternateID=True)
mysqlCreate = """
CREATE TABLE IF NOT EXISTS so_string_id (
id VARCHAR(50) PRIMARY KEY,
val TEXT
)
"""
postgresCreate = """
CREATE TABLE so_string_id (
id VARCHAR(50) PRIMARY KEY,
val TEXT
)
"""
sybaseCreate = """
CREATE TABLE so_string_id (
id VARCHAR(50) UNIQUE,
val VARCHAR(50) NULL
)
"""
firebirdCreate = """
CREATE TABLE so_string_id (
id VARCHAR(50) NOT NULL PRIMARY KEY,
val BLOB SUB_TYPE TEXT
)
"""
mssqlCreate = """
CREATE TABLE so_string_id (
id VARCHAR(50) PRIMARY KEY,
val varchar(4000)
)
"""
sqliteCreate = postgresCreate
mysqlDrop = """
DROP TABLE IF EXISTS so_string_id
"""
postgresDrop = """
DROP TABLE so_string_id
"""
sqliteDrop = postgresDrop
firebirdDrop = postgresDrop
mssqlDrop = postgresDrop
def test_stringID():
setupClass(SOStringID)
t1 = SOStringID(id='hey', val='whatever')
t2 = SOStringID.byVal('whatever')
assert t1 == t2
assert t1.val == t2.val
assert t1.val == 'whatever'
t1 = SOStringID(id='you', val='nowhere')
t2 = SOStringID.get('you')
assert t1 == t2
assert t1.val == t2.val
assert t1.val == 'nowhere'