Пример #1
0
def test_save_get_function(db: FileRunDB):
    func, name, proj = {'x': 1, 'y': 2}, 'f1', 'p2'
    db.store_function(func, name, proj)
    db_func = db.get_function(name, proj)
    updated = db_func['metadata']['updated'].replace(tzinfo=timezone.utc)
    db_func['metadata']['updated'] = updated
    assert db_func == func, 'wrong func'
Пример #2
0
def test_schedules(db: FileRunDB):
    count = 7
    for i in range(count):
        data = {'i': i}
        db.store_schedule(data)

    scheds = list(db.list_schedules())
    assert count == len(scheds), 'wrong number of schedules'
    assert set(range(count)) == set(s['i'] for s in scheds), 'bad scheds'
Пример #3
0
def test_save_get_function(db: FileRunDB):
    func, name, proj = {'x': 1, 'y': 2}, 'f1', 'p2'
    db.store_function(func, name, proj)
    db_func = db.get_function(name, proj)

    # db methods enriches metadata
    del db_func['metadata']
    del func['metadata']
    assert db_func == func, 'wrong func'
Пример #4
0
def test_schedules(db: FileRunDB):
    count = 7
    for i in range(count):
        data = {"i": i}
        db.store_schedule(data)

    scheds = list(db.list_schedules())
    assert count == len(scheds), "wrong number of schedules"
    assert set(range(count)) == set(s["i"] for s in scheds), "bad scheds"
Пример #5
0
def test_save_get_function(db: FileRunDB):
    func, name, proj = {"x": 1, "y": 2}, "f1", "p2"
    db.store_function(func, name, proj)
    db_func = db.get_function(name, proj)

    # db methods enriches metadata
    del db_func["metadata"]
    del func["metadata"]
    assert db_func == func, "wrong func"
Пример #6
0
def test_list_artifact_date(db: FileRunDB):
    print('dirpath: ', db.dirpath)
    t1 = datetime(2020, 2, 16, tzinfo=timezone.utc)
    t2 = t1 - timedelta(days=7)
    t3 = t2 - timedelta(days=7)
    prj = 'p7'

    db.store_artifact('k1', {'updated': t1.isoformat()}, 'u1', project=prj)
    db.store_artifact('k2', {'updated': t2.isoformat()}, 'u2', project=prj)
    db.store_artifact('k3', {'updated': t3.isoformat()}, 'u3', project=prj)

    # FIXME: We get double what we expect since latest is an alias
    arts = db.list_artifacts(project=prj, since=t3, tag='*')
    assert 6 == len(arts), 'since t3'

    arts = db.list_artifacts(project=prj, since=t2, tag='*')
    assert 4 == len(arts), 'since t2'

    arts = db.list_artifacts(project=prj,
                             since=t1 + timedelta(days=1),
                             tag='*')
    assert not arts, 'since t1+'

    arts = db.list_artifacts(project=prj, until=t2, tag='*')
    assert 4 == len(arts), 'until t2'

    arts = db.list_artifacts(project=prj, since=t2, until=t2, tag='*')
    assert 2 == len(arts), 'since/until t2'
Пример #7
0
def test_list_artifact_date(db: FileRunDB):
    print("dirpath: ", db.dirpath)
    t1 = datetime(2020, 2, 16, tzinfo=timezone.utc)
    t2 = t1 - timedelta(days=7)
    t3 = t2 - timedelta(days=7)
    prj = "p7"

    db.store_artifact("k1", {"updated": t1.isoformat()}, "u1", project=prj)
    db.store_artifact("k2", {"updated": t2.isoformat()}, "u2", project=prj)
    db.store_artifact("k3", {"updated": t3.isoformat()}, "u3", project=prj)

    # FIXME: We get double what we expect since latest is an alias
    arts = db.list_artifacts(project=prj, since=t3, tag="*")
    assert 6 == len(arts), "since t3"

    arts = db.list_artifacts(project=prj, since=t2, tag="*")
    assert 4 == len(arts), "since t2"

    arts = db.list_artifacts(project=prj,
                             since=t1 + timedelta(days=1),
                             tag="*")
    assert not arts, "since t1+"

    arts = db.list_artifacts(project=prj, until=t2, tag="*")
    assert 4 == len(arts), "until t2"

    arts = db.list_artifacts(project=prj, since=t2, until=t2, tag="*")
    assert 2 == len(arts), "since/until t2"
Пример #8
0
def test_list_fuctions(db: FileRunDB):
    proj = 'p4'
    count = 5
    for i in range(count):
        name = f'func{i}'
        func = {'fid': i}
        db.store_function(func, name, proj)
    db.store_function({}, 'f2', 'p7')

    out = db.list_functions('', proj)
    assert len(out) == count, 'bad list'
Пример #9
0
def test_list_fuctions(db: FileRunDB):
    proj = "p4"
    count = 5
    for i in range(count):
        name = f"func{i}"
        func = {"fid": i}
        db.store_function(func, name, proj)
    db.store_function({}, "f2", "p7")

    out = db.list_functions("", proj)
    assert len(out) == count, "bad list"
Пример #10
0
def db(request):
    path = mkdtemp()
    print(f'db fixture: path={path!r}')
    if request.param == 'sql':
        db_file = f'{path}/mlrun.db'
        db = SQLDB(f'sqlite:///{db_file}?check_same_thread=false')
    elif request.param == 'file':
        db = FileRunDB(path)
    else:
        assert False, f'unknown db type - {request.param}'

    db.connect()
    return db
Пример #11
0
def db(request):
    path = mkdtemp()
    print(f"db fixture: path={path!r}")
    if request.param == "sql":
        db_file = f"{path}/mlrun.db"
        dsn = f"sqlite:///{db_file}?check_same_thread=false"
        session_maker = init_sqldb(dsn)
        db = SQLDB(dsn, session=session_maker())
    elif request.param == "file":
        db = FileRunDB(path)
    else:
        assert False, f"unknown db type - {request.param}"

    db.connect()
    return db
Пример #12
0
def db(request):
    path = mkdtemp()
    print(f"db fixture: path={path!r}")
    if request.param == "sql":
        db_file = f"{path}/mlrun.db"
        dsn = f"sqlite:///{db_file}?check_same_thread=false"
        config.httpdb.dsn = dsn
        _init_engine(dsn)
        init_data()
        initialize_db()
        db_session = create_session()
        db = SQLDB(dsn, session=db_session)
    elif request.param == "file":
        db = FileRunDB(path)
    else:
        assert False, f"unknown db type - {request.param}"

    db.connect()
    if request.param == "sql":
        mlrun.api.utils.singletons.db.initialize_db(db.db)
        mlrun.api.utils.singletons.project_member.initialize_project_member()
    return db
Пример #13
0
def db():
    path = mkdtemp(prefix='mlrun-test')
    db = FileRunDB(dirpath=path)
    db.connect()
    return db
Пример #14
0
def test_save_get_function(db: FileRunDB):
    func, name, proj = {'x': 1, 'y': 2}, 'f1', 'p2'
    db.store_function(func, name, proj)
    db_func = db.get_function(name, proj)
    assert db_func == func, 'wrong func'