========================================================
SQL-based Storage for Records (Tracks) and Other Objects
========================================================
Test Prerequisite: PostgreSQL database ccotest (user ccotest with password cco).
>>> from cco.storage.common import getEngine, sessionFactory
>>> from cco.storage.tracking import record
>>> record.engine = getEngine('postgresql+psycopg', 'ccotest', 'ccotest', 'cco')
>>> record.Session = sessionFactory(record.engine)
Tracking Storage
================
>>> storage = record.Storage(doCommit=True)
>>> tr01 = record.Track('t01', 'john')
>>> tr01.head
{'taskId': 't01', 'userName': 'john'}
>>> storage.getTable()
Table(...)
>>> trackId = storage.save(tr01)
>>> trackId > 0
True
>>> tr01a = storage.get(trackId)
>>> tr01a.head
Fin
===
>>> storage.conn.close()