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'
|