File size: 1,304 Bytes
3c8c1fc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import db


def test_db_roundtrip(tmp_path):
    database_path = tmp_path / "test.db"
    database_url = f"sqlite+pysqlite:///{database_path}"
    db.configure_database(database_url)
    db.init_db()

    with db.session_scope() as session:
        user = db.ensure_user(session, "TestUser")
        db.create_score(
            session,
            user=user,
            image_id="image_1",
            score_value=777,
            similarity=0.42,
            text="Ein Testeintrag",
        )
        user_id = user.id

    with db.session_scope() as session:
        same_user = db.ensure_user(session, "testuser")
        assert same_user.id == user_id
        global_scores = db.get_global_top(session)
        assert len(global_scores) == 1
        assert global_scores[0].score == 777
        image_scores = db.get_image_top(session, "image_1")
        assert len(image_scores) == 1
        user_scores = db.get_user_recent(session, db.normalize_username("TESTUSER"))
        assert len(user_scores) == 1
        rows = db.scores_to_rows(global_scores)
        assert rows[0][0] == 1  # Rang
        assert rows[0][1] == "TestUser"
        assert rows[0][2] == "image_1"
        assert rows[0][3] == 777
        assert rows[0][4] == round(0.42, 4)
        assert "Ein Testeintrag" in rows[0][5]