From 5a0ec719ab29f62851d339174335083a2540f0c8 Mon Sep 17 00:00:00 2001 From: Jakob Date: Wed, 6 May 2026 23:19:00 +0200 Subject: [PATCH] allow level 1 words --- default.env | 6 +-- zeeguu/api/test/test_verbal_flashcards.py | 42 +++++++++---------- .../verbal_flashcards/flashcard_selection.py | 2 +- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/default.env b/default.env index a8c28f01..f5cae7c2 100644 --- a/default.env +++ b/default.env @@ -34,9 +34,9 @@ ASR_SERVICE_TIMEOUT=30 ASR_LEADING_SILENCE_MS=250 ASR_TRAILING_SILENCE_MS=250 -# Verbal flashcards normally require level-3 words. Set to false for experiments -# where participants should receive lower-level words too. -VERBAL_FLASHCARDS_REQUIRE_LEVEL_3=true +# Verbal flashcards include lower-level words by default so newly translated +# article words can be practiced immediately. Set to true to require level 3+. +VERBAL_FLASHCARDS_REQUIRE_LEVEL_3=false # SMTP Configuration - Use app-specific password for Gmail SMTP_EMAIL= diff --git a/zeeguu/api/test/test_verbal_flashcards.py b/zeeguu/api/test/test_verbal_flashcards.py index 9f5c568f..17623c10 100644 --- a/zeeguu/api/test/test_verbal_flashcards.py +++ b/zeeguu/api/test/test_verbal_flashcards.py @@ -129,20 +129,16 @@ def _create_level_3_flashcard( return bookmark_row -def test_verbal_flashcards_only_returns_level_3_plus_words_by_default(client, monkeypatch): +def test_verbal_flashcards_returns_lower_level_words_by_default(client, monkeypatch): monkeypatch.delenv("VERBAL_FLASHCARDS_REQUIRE_LEVEL_3", raising=False) _prepare_bookmark_support() bookmark = _create_level_3_flashcard(client) bookmark_id = bookmark.id bookmark = _set_bookmark_level(bookmark_id, 2) - - flashcards = client.get("/verbal_flashcards") - assert flashcards["total"] == 0 - - bookmark = _set_bookmark_level(bookmark_id, 3) expected_prompt = bookmark.user_word.meaning.translation.content expected_answer = bookmark.user_word.meaning.origin.content + flashcards = client.get("/verbal_flashcards") assert flashcards["total"] == 1 @@ -152,19 +148,24 @@ def test_verbal_flashcards_only_returns_level_3_plus_words_by_default(client, mo assert flashcards["flashcards"][0]["answer"] == expected_answer -def test_verbal_flashcards_returns_lower_level_words_when_experiment_override_is_set(client, monkeypatch): - monkeypatch.setenv("VERBAL_FLASHCARDS_REQUIRE_LEVEL_3", "false") +def test_verbal_flashcards_can_require_level_3_with_env_override(client, monkeypatch): + monkeypatch.setenv("VERBAL_FLASHCARDS_REQUIRE_LEVEL_3", "true") _prepare_bookmark_support() bookmark = _create_level_3_flashcard(client) bookmark_id = bookmark.id bookmark = _set_bookmark_level(bookmark_id, 1) + + flashcards = client.get("/verbal_flashcards") + + assert flashcards["total"] == 0 + + bookmark = _set_bookmark_level(bookmark_id, 3) expected_answer = bookmark.user_word.meaning.origin.content flashcards = client.get("/verbal_flashcards") assert flashcards["total"] == 1 - assert flashcards["flashcards"][0]["id"] == str(bookmark_id) assert flashcards["flashcards"][0]["answer"] == expected_answer @@ -865,15 +866,15 @@ def test_submit_coerces_invalid_response_time_to_zero(client): assert exercise.solving_speed == 0 -def test_submit_rejects_lower_level_flashcard_by_default(client, monkeypatch): +def test_submit_accepts_lower_level_flashcard_by_default(client, monkeypatch): monkeypatch.delenv("VERBAL_FLASHCARDS_REQUIRE_LEVEL_3", raising=False) _prepare_bookmark_support() bookmark_id = add_one_bookmark(client) bookmark = _set_bookmark_level(bookmark_id, 1) - response = client.client.post( - client.append_session("/verbal_flashcards/submit"), + response = client.post( + "/verbal_flashcards/submit", json={ "flashcard_id": str(bookmark_id), "user_answer": bookmark.user_word.meaning.origin.content, @@ -881,20 +882,19 @@ def test_submit_rejects_lower_level_flashcard_by_default(client, monkeypatch): }, ) - assert response.status_code == 404 - assert b"Flashcard not found" in response.data + assert response["success"] is True + assert response["flashcard_id"] == str(bookmark_id) -def test_submit_accepts_lower_level_flashcard_during_experiment(client, monkeypatch): - monkeypatch.setenv("VERBAL_FLASHCARDS_REQUIRE_LEVEL_3", "false") +def test_submit_rejects_lower_level_flashcard_when_level_3_override_is_set(client, monkeypatch): + monkeypatch.setenv("VERBAL_FLASHCARDS_REQUIRE_LEVEL_3", "true") _prepare_bookmark_support() - _set_client_learned_language(client, "da") bookmark_id = add_one_bookmark(client) bookmark = _set_bookmark_level(bookmark_id, 1) - response = client.post( - "/verbal_flashcards/submit", + response = client.client.post( + client.append_session("/verbal_flashcards/submit"), json={ "flashcard_id": str(bookmark_id), "user_answer": bookmark.user_word.meaning.origin.content, @@ -902,5 +902,5 @@ def test_submit_accepts_lower_level_flashcard_during_experiment(client, monkeypa }, ) - assert response["success"] is True - assert response["flashcard_id"] == str(bookmark_id) + assert response.status_code == 404 + assert b"Flashcard not found" in response.data diff --git a/zeeguu/core/verbal_flashcards/flashcard_selection.py b/zeeguu/core/verbal_flashcards/flashcard_selection.py index 53a06737..01e881d5 100644 --- a/zeeguu/core/verbal_flashcards/flashcard_selection.py +++ b/zeeguu/core/verbal_flashcards/flashcard_selection.py @@ -22,7 +22,7 @@ def requires_level_3_flashcards(): - raw_value = os.environ.get(VERBAL_FLASHCARDS_REQUIRE_LEVEL_3_ENV, "true") + raw_value = os.environ.get(VERBAL_FLASHCARDS_REQUIRE_LEVEL_3_ENV, "false") return raw_value.strip().lower() not in {"0", "false", "no", "off"}