Example #1
0
def setup(request, solar_testresult):

    for model in ModelMeta._defined_models:
        model.bucket = get_bucket(None, model, ModelMeta)

    _connection, _ = utils.parse_database_conn(C.solar_db)
    if _connection.type == 'sql':

        def drop_tables_on_sql():
            # clean only when tests not crashed
            if solar_testresult.rep.failed:
                return
            for model in ModelMeta._defined_models:
                model.bucket._sql_idx.drop_table(fail_silently=False)
                model.bucket._sql_model.drop_table(fail_silently=False)

        request.addfinalizer(drop_tables_on_sql)
Example #2
0
try:
    from gevent import monkey
except ImportError:
    pass
else:
    from solar.dblayer.gevent_patches import patch_all
    patch_all()

from solar.dblayer.model import ModelMeta
from solar.config import C
from solar.utils import parse_database_conn

_connection, _connection_details = parse_database_conn(C.solar_db)

if _connection.mode == 'sqlite':
    from solar.dblayer.sql_client import SqlClient
    if _connection.database == ':memory:' or _connection.database is None:
        opts = {'threadlocals': True,
                'autocommit': False}
        _connection.database = ":memory:"
    else:
        opts = {'threadlocals': True,
                'autocommit': False,
                'pragmas': (('journal_mode', 'WAL'),
                            ('synchronous', 'NORMAL'))}
    opts.update(_connection_details.toDict())
    client = SqlClient(
        _connection.database,
        **opts)

elif _connection.mode == 'riak':
Example #3
0
    def new(cls, data):
        key = '%s~%s' % (data['execution'], data['name'])
        return Task.from_dict(key, data)


"""
system log

1. one bucket for all log items
2. separate logs for stage/history (using index)
3. last log item for resource in history
4. log item in staged log for resource|action
5. keep order of history
"""

_connection, _connection_details = parse_database_conn(C.solar_db)
if _connection.type == 'sql':
    class NegativeCounter(Model):

        count = Field(int, default=int)

        def next(self):
            self.count -= 1
            self.save()
            return self.count
else:
    class NegativeCounter(Model):

        bucket_type = C.counter_bucket_type

        def next(self):
Example #4
0
def pytest_unconfigure(config):
    if config.getoption("clean"):
        db, opts = utils.parse_database_conn(C.solar_db)
        if db.mode == 'sqlite' and os.path.isfile(db.database):
            os.unlink(db.database)