File size: 2,139 Bytes
aa64aba | 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | from __future__ import annotations
from pino import scraper
def test_parse_tgsc_page_falls_back_when_camofox_has_no_data(monkeypatch) -> None:
camofox_result = {
"boiling_point_k": None,
"vapor_pressure_pa": None,
"odor_description": "",
"error": "blocked",
}
requests_result = {
"boiling_point_k": 449.65,
"vapor_pressure_pa": 205.45,
"odor_description": "terpene pine",
}
monkeypatch.setattr(scraper, "parse_tgsc_page_camofox", lambda url: camofox_result)
monkeypatch.setattr(
scraper,
"parse_tgsc_page_requests",
lambda url, timeout=30.0: requests_result.copy(),
)
result = scraper.parse_tgsc_page("https://example.test/material.html")
assert result == {
**requests_result,
"camofox_error": "blocked",
}
def test_parse_tgsc_page_returns_camofox_data_without_fallback(monkeypatch) -> None:
camofox_result = {
"boiling_point_k": 449.65,
"vapor_pressure_pa": 205.45,
"odor_description": "terpene pine",
}
monkeypatch.setattr(scraper, "parse_tgsc_page_camofox", lambda url: camofox_result)
def fail_requests(url, timeout=30.0):
raise AssertionError("requests fallback should not be called")
monkeypatch.setattr(scraper, "parse_tgsc_page_requests", fail_requests)
assert scraper.parse_tgsc_page("https://example.test/material.html") == camofox_result
def test_parse_tgsc_page_can_disable_fallback(monkeypatch) -> None:
camofox_result = {
"boiling_point_k": None,
"vapor_pressure_pa": None,
"odor_description": "",
"error": "blocked",
}
monkeypatch.setattr(scraper, "parse_tgsc_page_camofox", lambda url: camofox_result)
def fail_requests(url, timeout=30.0):
raise AssertionError("requests fallback should not be called")
monkeypatch.setattr(scraper, "parse_tgsc_page_requests", fail_requests)
assert (
scraper.parse_tgsc_page(
"https://example.test/material.html",
fallback_to_requests=False,
)
== camofox_result
)
|