def test_taxus_schema_basic_commit(self): dbref = ORMMixin.assert_dbref(self.prefix+'taxus-schema-test.sqlite') models = load_schema(self.schema) Base = models[0] sa = get_session(dbref, True, metadata=Base.metadata) Basic = models[1] basic = Basic( name="Fist Basic record", label="basic 1", date_added=datetime.now() ) sa.add(basic) sa.commit() SqlBase = declarative_base() sa2 = get_session(dbref, metadata=SqlBase.metadata) SqlBase.metadata.reflect() basics = SqlBase.metadata.tables['basics'] rs = sa2.query(basics).all() assert len(rs) == 1 r = rs[0] for attr in self.fields[self.models[0]]: assert hasattr(r, attr), r assert getattr(r, attr) == getattr(basic, attr) os.unlink(os.path.expanduser(self.prefix+'taxus-schema-test.sqlite'))
def cmd_init(settings): """ """ sa = ORMMixin.get_session('default', settings.dbref) metadata.create_all() # enter cllct, should be using it as default session store = Space.start_master_session() store.init() # modeltype, dbref canonical = {} for session in store.sessions: schema = __import__(name) dbref = Klass.assert_dbref(schema.__db__) class_str = ", ".join(map(lambda x:x.className(), schema.models)) space = Space(global_id=dbref, classes=class_str) space.init_defaults() for x in schema.models: assert x.className() not in models, x assert x not in canonical, (sessions, x) canonical[x] = dbref sa.add(space) sa.commit()
def test_taxus_schema_ext_commit(self): dbref = ORMMixin.assert_dbref(self.prefix+'taxus-schema-test.sqlite') models = load_schema(self.schema) Base, MyRecord, Extended = models sa = get_session(dbref, True, metadata=Base.metadata) basic = MyRecord( name="Fist Basic record", label="basic 1", date_added=datetime.now() ) sa.add(basic) sa.commit() os.unlink(os.path.expanduser(self.prefix+'taxus-schema-test.sqlite'))
from confparse import yaml_load from taxus.init import get_session, extract_orm from taxus.util import ORMMixin def load_schema(path): path = path.replace(".", os.sep) + ".yml" meta = yaml_load(open(path)) if "$schema" in meta: schema = yaml_load(open(meta["$schema"])) jsonschema.validate(meta, schema) else: print >> sys.stderr, "No validation for", path # schema = extract_schema(meta) return list(extract_orm(meta)) # models = load_schema('taxus.core') # models2 = load_schema('bookmarks') models = load_schema("schema_test") Base, MyRecord, Extended = models dbref = ORMMixin.assert_dbref("~/.schema-test.sqlite") sa = get_session(dbref, True, metadata=Base.metadata) print models # sa2 = get_session(dbref, metadata=Base.metadata) # sa = ORMMixin.get_session('schema_test', dbref)