-# TODO - turn this into a unit test !
-
from sqlalchemy import *
-
-engine = create_engine('sqlite', {'filename':':memory:'}, echo=True)
-
-
-jack = Table('jack', engine,
- Column('id', Integer, primary_key=True),
- #Column('room_id', Integer, ForeignKey("room.id")),
- Column('number', String(50)),
- Column('status', String(20)),
- Column('subroom', String(5)),
-)
-
-
-port = Table('port', engine,
- Column('id', Integer, primary_key=True),
- #Column('device_id', Integer, ForeignKey("device.id")),
- Column('name', String(30)),
- Column('description', String(100)),
- Column('jack_id', Integer, ForeignKey("jack.id")),
-)
-
+import testbase
class Jack(object):
def __repr__(self):
self.id=None
self.name=name
self.description = description
-try :
- jack.create()
- port.create()
-except :
- pass
-
-assign_mapper(Port, port)
-assign_mapper(Jack, jack, order_by=[jack.c.number],properties = {
- 'port': relation(Port.mapper, backref='jack', uselist=False, lazy=True),
-})
-
-j=Jack(number='101')
-p=Port(name='fa0/1')
-j.port=p
-objectstore.commit()
-jid = j.id
-pid = p.id
-
-j=Jack.get(jid)
-p=Port.get(pid)
-print p.jack
-print j.port
-p.jack=None
-assert j.port is None #works
-
-objectstore.clear()
-
-j=Jack.get(jid)
-p=Port.get(pid)
-j.port=None
-assert p.jack is None #fails
-objectstore.commit() #remove the above assertion and this fails too
+class O2OTest(testbase.AssertMixin):
+ def setUpAll(self):
+ global jack, port
+ jack = Table('jack', testbase.db,
+ Column('id', Integer, primary_key=True),
+ #Column('room_id', Integer, ForeignKey("room.id")),
+ Column('number', String(50)),
+ Column('status', String(20)),
+ Column('subroom', String(5)),
+ )
+
+
+ port = Table('port', testbase.db,
+ Column('id', Integer, primary_key=True),
+ #Column('device_id', Integer, ForeignKey("device.id")),
+ Column('name', String(30)),
+ Column('description', String(100)),
+ Column('jack_id', Integer, ForeignKey("jack.id")),
+ )
+ jack.create()
+ port.create()
+ def setUp(self):
+ objectstore.clear()
+ def tearDown(self):
+ clear_mappers()
+ def tearDownAll(self):
+ port.drop()
+ jack.drop()
+
+ def test1(self):
+ assign_mapper(Port, port)
+ assign_mapper(Jack, jack, order_by=[jack.c.number],properties = {
+ 'port': relation(Port.mapper, backref='jack', uselist=False, lazy=True),
+ })
+
+ j=Jack(number='101')
+ p=Port(name='fa0/1')
+ j.port=p
+ objectstore.commit()
+ jid = j.id
+ pid = p.id
+
+ j=Jack.get(jid)
+ p=Port.get(pid)
+ print p.jack
+ print j.port
+ p.jack=None
+ assert j.port is None #works
+
+ objectstore.clear()
+
+ j=Jack.get(jid)
+ p=Port.get(pid)
+
+ j.port=None
+ self.assert_(p.jack is None)
+ objectstore.commit()
+
+if __name__ == "__main__":
+ testbase.main()