← Về thư mục
scripts/test_openalex_client.py
- test_title_search_match_at_threshold · function · L12-L32 — def test_title_search_match_at_threshold(monkeypatch)
- test_title_search_no_match_below_threshold · function · L35-L53 — def test_title_search_no_match_below_threshold(monkeypatch)
- test_doi_lookup_with_title_cross_check · function · L56-L76 — def test_doi_lookup_with_title_cross_check(monkeypatch)
- test_doi_lookup_with_matching_title · function · L79-L100 — def test_doi_lookup_with_matching_title(monkeypatch)
- test_429_transient_backs_off_exponentially · function · L103-L129 — def test_429_transient_backs_off_exponentially(monkeypatch)
- mock_urlopen · function · L110-L118 — def mock_urlopen(args, *kwargs)
- test_429_daily_budget_exhausted_fails_fast · function · L132-L159 — def test_429_daily_budget_exhausted_fails_fast(monkeypatch)
- mock_urlopen · function · L140-L148 — def mock_urlopen(args, *kwargs)
- test_429_with_remaining_budget_stays_on_retry_path · function · L162-L186 — def test_429_with_remaining_budget_stays_on_retry_path(monkeypatch)
- mock_urlopen · function · L169-L177 — def mock_urlopen(args, *kwargs)
- test_5xx_skips_immediately · function · L189-L210 — def test_5xx_skips_immediately(monkeypatch)
- mock_urlopen · function · L195-L203 — def mock_urlopen(args, *kwargs)
- test_polite_pool_email_param · function · L213-L233 — def test_polite_pool_email_param(monkeypatch)
- mock_urlopen · function · L219-L225 — def mock_urlopen(req, args, *kwargs)
- test_api_key_env_adds_api_key_param · function · L239-L259 — def test_api_key_env_adds_api_key_param(monkeypatch)
- mock_urlopen · function · L245-L251 — def mock_urlopen(req, args, *kwargs)
- test_api_key_selects_authenticated_interval · function · L262-L272 — def test_api_key_selects_authenticated_interval(monkeypatch)
- test_refusal_message_never_carries_api_key · function · L275-L287 — def test_refusal_message_never_carries_api_key(monkeypatch)
- test_doi_404_treated_as_miss_not_unavailable · function · L290-L310 — def test_doi_404_treated_as_miss_not_unavailable(monkeypatch)
- mock_urlopen · function · L294-L301 — def mock_urlopen(args, *kwargs)
- test_title_search_prefers_matching_year · function · L313-L332 — def test_title_search_prefers_matching_year(monkeypatch)
- test_oserror_during_read_raises_unavailable · function · L338-L353 — def test_oserror_during_read_raises_unavailable(monkeypatch)
- test_invalid_utf8_body_raises_unavailable · function · L356-L370 — def test_invalid_utf8_body_raises_unavailable(monkeypatch)
- test_invalid_json_body_raises_unavailable · function · L373-L387 — def test_invalid_json_body_raises_unavailable(monkeypatch)
- test_truncated_read_raises_unavailable · function · L390-L410 — def test_truncated_read_raises_unavailable(monkeypatch)
- test_throttle_uses_monotonic_clock · function · L413-L441 — def test_throttle_uses_monotonic_clock(monkeypatch)
- fake_monotonic · function · L422-L424 — def fake_monotonic()
- fake_time · function · L426-L428 — def fake_time()
- test_doi_lookup_quotes_doi_path_segment · function · L444-L476 — def test_doi_lookup_quotes_doi_path_segment(monkeypatch)
- mock_urlopen · function · L455-L464 — def mock_urlopen(req, args, *kwargs)
- test_rejects_non_openalex_api_url_before_urlopen · function · L479-L490 — def test_rejects_non_openalex_api_url_before_urlopen(monkeypatch)