Esempio n. 1
0
def test_list_runs_name_filter(db: DBInterface, db_session: Session):
    run_name_1 = "run_name_1"
    run_name_2 = "run_name_2"
    run_1 = {"metadata": {"name": run_name_1}, "status": {"bla": "blabla"}}
    run_2 = {"metadata": {"name": run_name_2}, "status": {"bla": "blabla"}}
    run_uid_1 = "run_uid_1"
    run_uid_2 = "run_uid_2"

    db.store_run(
        db_session,
        run_1,
        run_uid_1,
    )
    db.store_run(
        db_session,
        run_2,
        run_uid_2,
    )
    runs = db.list_runs(db_session)
    assert len(runs) == 2

    runs = db.list_runs(db_session, name=run_name_1)
    assert len(runs) == 1
    assert runs[0]["metadata"]["name"] == run_name_1

    runs = db.list_runs(db_session, name=run_name_2)
    assert len(runs) == 1
    assert runs[0]["metadata"]["name"] == run_name_2

    runs = db.list_runs(db_session, name="run_name")
    assert len(runs) == 2
Esempio n. 2
0
def test_list_runs_name_filter(db: DBInterface, db_session: Session):
    project = "project"
    run_name_1 = "run_name_1"
    run_name_2 = "run_name_2"
    run_1 = {"metadata": {"name": run_name_1}, "status": {"bla": "blabla"}}
    run_2 = {"metadata": {"name": run_name_2}, "status": {"bla": "blabla"}}
    # run with no name
    run_3 = {"metadata": {}, "status": {"bla": "blabla"}}
    run_uid_1 = "run_uid_1"
    run_uid_2 = "run_uid_2"
    run_uid_3 = "run_uid_3"

    db.store_run(db_session, run_1, run_uid_1, project)
    db.store_run(db_session, run_2, run_uid_2, project)
    db.store_run(db_session, run_3, run_uid_3, project)
    runs = db.list_runs(db_session, project=project)
    assert len(runs) == 3

    runs = db.list_runs(db_session, name=run_name_1, project=project)
    assert len(runs) == 1
    assert runs[0]["metadata"]["name"] == run_name_1

    runs = db.list_runs(db_session, name=run_name_2, project=project)
    assert len(runs) == 1
    assert runs[0]["metadata"]["name"] == run_name_2

    runs = db.list_runs(db_session, name="~RUN_naMe", project=project)
    assert len(runs) == 2
Esempio n. 3
0
def test_list_runs_state_filter(db: DBInterface, db_session: Session):
    run_without_state_uid = "run_without_state_uid"
    run_without_state = {
        "metadata": {
            "uid": run_without_state_uid
        },
        "bla": "blabla"
    }
    db.store_run(
        db_session,
        run_without_state,
        run_without_state_uid,
    )

    run_with_json_state_state = "some_json_state"
    run_with_json_state_uid = "run_with_json_state_uid"
    run_with_json_state = {
        "metadata": {
            "uid": run_with_json_state_uid
        },
        "status": {
            "state": run_with_json_state_state
        },
    }
    run = Run(
        uid=run_with_json_state_uid,
        project=config.default_project,
        iteration=0,
        start_time=datetime.now(timezone.utc),
    )
    run.struct = run_with_json_state
    db._upsert(db_session, run, ignore=True)

    run_with_record_state_state = "some_record_state"
    run_with_record_state_uid = "run_with_record_state_uid"
    run_with_record_state = {
        "metadata": {
            "uid": run_with_record_state_uid
        },
        "bla": "blabla",
    }
    run = Run(
        uid=run_with_record_state_uid,
        project=config.default_project,
        iteration=0,
        state=run_with_record_state_state,
        start_time=datetime.now(timezone.utc),
    )
    run.struct = run_with_record_state
    db._upsert(db_session, run, ignore=True)

    run_with_equal_json_and_record_state_state = "some_equal_json_and_record_state"
    run_with_equal_json_and_record_state_uid = (
        "run_with_equal_json_and_record_state_uid")
    run_with_equal_json_and_record_state = {
        "metadata": {
            "uid": run_with_equal_json_and_record_state_uid
        },
        "status": {
            "state": run_with_equal_json_and_record_state_state
        },
    }
    db.store_run(
        db_session,
        run_with_equal_json_and_record_state,
        run_with_equal_json_and_record_state_uid,
    )

    run_with_unequal_json_and_record_state_json_state = "some_unequal_json_state"
    run_with_unequal_json_and_record_state_record_state = "some_unequal_record_state"
    run_with_unequal_json_and_record_state_uid = (
        "run_with_unequal_json_and_record_state_uid")
    run_with_unequal_json_and_record_state = {
        "metadata": {
            "uid": run_with_unequal_json_and_record_state_uid
        },
        "status": {
            "state": run_with_unequal_json_and_record_state_json_state
        },
    }
    run = Run(
        uid=run_with_unequal_json_and_record_state_uid,
        project=config.default_project,
        iteration=0,
        state=run_with_unequal_json_and_record_state_record_state,
        start_time=datetime.now(timezone.utc),
    )
    run.struct = run_with_unequal_json_and_record_state
    db._upsert(db_session, run, ignore=True)

    runs = db.list_runs(db_session)
    assert len(runs) == 5

    runs = db.list_runs(db_session, state="some_")
    assert len(runs) == 4
    assert run_without_state_uid not in [
        run["metadata"]["uid"] for run in runs
    ]

    runs = db.list_runs(db_session, state=run_with_json_state_state)
    assert len(runs) == 1
    assert runs[0]["metadata"]["uid"] == run_with_json_state_uid

    runs = db.list_runs(db_session, state=run_with_record_state_state)
    assert len(runs) == 1
    assert runs[0]["metadata"]["uid"] == run_with_record_state_uid

    runs = db.list_runs(db_session,
                        state=run_with_equal_json_and_record_state_state)
    assert len(runs) == 1
    assert runs[0]["metadata"][
        "uid"] == run_with_equal_json_and_record_state_uid

    runs = db.list_runs(
        db_session, state=run_with_unequal_json_and_record_state_json_state)
    assert len(runs) == 1
    assert runs[0]["metadata"][
        "uid"] == run_with_unequal_json_and_record_state_uid

    runs = db.list_runs(
        db_session, state=run_with_unequal_json_and_record_state_record_state)
    assert len(runs) == 0