Beispiel #1
0
    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'))
Beispiel #2
0
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()
Beispiel #3
0
    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'))
Beispiel #4
0
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)