def test_fix_wrong_run_descriptions(): v3fixpath = os.path.join(fixturepath, 'db_files', 'version3') dbname_old = os.path.join(v3fixpath, 'some_runs_without_run_description.db') if not os.path.exists(dbname_old): pytest.skip( "No db-file fixtures found. You can generate test db-files" " using the scripts in the legacy_DB_generation folder") with temporarily_copied_DB(dbname_old, debug=False, version=3) as conn: assert get_user_version(conn) == 3 ds1 = DataSet(conn=conn, run_id=1) expected_description = ds1.description empty_description = RunDescriber(InterDependencies_()) fix_wrong_run_descriptions(conn, [1, 2, 3, 4]) ds2 = DataSet(conn=conn, run_id=2) assert expected_description == ds2.description ds3 = DataSet(conn=conn, run_id=3) assert expected_description == ds3.description ds4 = DataSet(conn=conn, run_id=4) assert empty_description == ds4.description
def test_fix_wrong_run_descriptions_raises(): v4fixpath = os.path.join(fixturepath, 'db_files', 'version4a') dbname_old = os.path.join(v4fixpath, 'some_runs.db') if not os.path.exists(dbname_old): pytest.skip("No db-file fixtures found. You can generate test db-files" " using the scripts in the legacy_DB_generation folder") with temporarily_copied_DB(dbname_old, debug=False, version=4) as conn: with pytest.raises(RuntimeError): fix_wrong_run_descriptions(conn, [1])
def test_fix_wrong_run_descriptions(): v3fixpath = os.path.join(fixturepath, 'db_files', 'version3') dbname_old = os.path.join(v3fixpath, 'some_runs_without_run_description.db') if not os.path.exists(dbname_old): pytest.skip("No db-file fixtures found. You can generate test db-files" " using the scripts in the legacy_DB_generation folder") def make_ps(n): ps = ParamSpec(f'p{n}', label=f'Parameter {n}', unit=f'unit {n}', paramtype='numeric') return ps paramspecs = [make_ps(n) for n in range(6)] paramspecs[2]._inferred_from = ['p0'] paramspecs[3]._inferred_from = ['p1', 'p0'] paramspecs[4]._depends_on = ['p2', 'p3'] paramspecs[5]._inferred_from = ['p0'] with temporarily_copied_DB(dbname_old, debug=False, version=3) as conn: assert get_user_version(conn) == 3 expected_description = v0.RunDescriber( v0.InterDependencies(*paramspecs)) empty_description = v0.RunDescriber(v0.InterDependencies()) fix_wrong_run_descriptions(conn, [1, 2, 3, 4]) for run_id in [1, 2, 3]: desc_str = get_run_description(conn, run_id) desc = serial.from_json_to_native(desc_str) assert desc == expected_description desc_str = get_run_description(conn, run_id=4) desc = serial.from_json_to_native(desc_str) assert desc == empty_description