def test_duplicate_model_class_name():
    """Test that duplicate model class names are supported by SQLClient model
    registry.
    """
    # Since we're going to shadow the same model name, we need an alias to it
    # for testing.
    global DupAModel
    _DupAModel = DupAModel

    class DupAModel(DupModel):
        __tablename__ = 'test_dup_dup_a'
        id = sa.Column(sa.types.Integer(), primary_key=True)

    db = SQLClient(model_class=DupModel)
    db.create_all()

    assert 'tests.fixtures.DupAModel' in db.models
    assert db.models['tests.fixtures.DupAModel'] is _DupAModel

    assert 'tests.test_client.DupAModel' in db.models
    assert db.models['tests.test_client.DupAModel'] is DupAModel

    model1 = DupAModel()
    assert db.save(model1) is model1

    model2 = _DupAModel()
    assert db.save(model2) is model2

    del DupAModel
Exemple #2
0
def test_duplicate_model_class_name():
    """Test that duplicate model class names are supported by SQLClient model
    registry.
    """
    # Since we're going to shadow the same model name, we need an alias to it
    # for testing.
    global DupAModel
    _DupAModel = DupAModel

    class DupAModel(DupModel):
        __tablename__ = 'test_dup_dup_a'
        id = sa.Column(sa.types.Integer(), primary_key=True)

    db = SQLClient(model_class=DupModel)
    db.create_all()

    assert 'tests.fixtures.DupAModel' in db.models
    assert db.models['tests.fixtures.DupAModel'] is _DupAModel

    assert 'tests.test_client.DupAModel' in db.models
    assert db.models['tests.test_client.DupAModel'] is DupAModel

    model1 = DupAModel()
    assert db.save(model1) is model1

    model2 = _DupAModel()
    assert db.save(model2) is model2

    del DupAModel
Exemple #3
0
def db():
    config = {'SQL_DATABASE_URI': 'sqlite://', 'SQL_ECHO': False}
    _db = SQLClient(config, model_class=Model)
    _db.create_all()

    yield _db

    _db.shutdown()
    _db.drop_all()
def db():
    config = {"SQL_DATABASE_URI": "sqlite://", "SQL_ECHO": False}
    _db = SQLClient(config, model_class=Model)
    _db.create_all()

    yield _db

    _db.disconnect()
    _db.drop_all()
Exemple #5
0
def filedb(tmpdir):
    dbpath = str(tmpdir.mkdir(random_alpha()).join('file.db'))
    config = {'SQL_DATABASE_URI': 'sqlite:///{0}'.format(dbpath)}

    _filedb = SQLClient(config, model_class=Model)
    _filedb.create_all()

    yield _filedb

    _filedb.shutdown()
    os.remove(dbpath)
def filedb(tmpdir):
    dbpath = str(tmpdir.mkdir(random_alpha()).join("file.db"))
    config = {"SQL_DATABASE_URI": f"sqlite:///{dbpath}"}

    _filedb = SQLClient(config, model_class=Model)
    _filedb.create_all()

    yield _filedb

    _filedb.disconnect()
    os.remove(dbpath)
Exemple #7
0
def db():
    config = {
        'SQL_DATABASE_URI': 'sqlite://',
        'SQL_ECHO': False
    }
    _db = SQLClient(config, model_class=Model)
    _db.create_all()

    yield _db

    _db.disconnect()
    _db.drop_all()
Exemple #8
0
def filedb(tmpdir):
    dbpath = str(tmpdir.mkdir(random_alpha()).join('file.db'))
    config = {
        'SQL_DATABASE_URI': 'sqlite:///{0}'.format(dbpath)
    }

    _filedb = SQLClient(config, model_class=Model)
    _filedb.create_all()

    yield _filedb

    _filedb.disconnect()
    os.remove(dbpath)
Exemple #9
0
    'SQL_ISOLATION_LEVEL': 'SERIALIZABLE',
    'SQL_ECHO': True,
    'SQL_ECHO_POOL': False,
    'SQL_CONVERT_UNICODE': True,
    'SQL_POOL_SIZE': 5,
    'SQL_POOL_TIMEOUT': 30,
    'SQL_POOL_RECYCLE': 3600,
    'SQL_MAX_OVERFLOW': 10,
    'SQL_AUTOCOMMIT': False,
    'SQL_AUTOFLUSH': True,
    'SQL_EXPIRE_ON_COMMIT': True
}

db = SQLClient(config, model_class=Model)

db.create_all()

data = {'name': 'Jenny', 'email': '*****@*****.**', 'phone': '555-867-5309'}
user = db.User.save(data)

assert user.to_dict() == {
    'id': 1,
    'name': 'Jenny',
    'email': '*****@*****.**',
    'phone': '5558675309'
}

assert user is db.User.get(data.id)
assert user is db.User.find_one(id=user.id)
assert user is db.User.find(User.id == user.id)[0]