Skip to content

Commit 011819f

Browse files
committed
[red] Guard candidate terminology before installer activation
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent 98bf7e5 commit 011819f

1 file changed

Lines changed: 94 additions & 0 deletions

File tree

tests/publication/test_public_claims.py

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,30 @@ def setUpClass(cls) -> None:
3535
cls.website_readme = (
3636
REPO_ROOT / "tools" / "web" / "README.md"
3737
).read_text(encoding="utf-8")
38+
cls.website_specification = (
39+
REPO_ROOT / "docs" / "specifications" / "website.md"
40+
).read_text(encoding="utf-8")
41+
cls.firmware_requirements = (
42+
REPO_ROOT / "docs" / "specifications" / "firmware" / "specs.md"
43+
).read_text(encoding="utf-8")
44+
cls.browser_flashing = (
45+
REPO_ROOT
46+
/ "docs"
47+
/ "specifications"
48+
/ "firmware"
49+
/ "browser-flashing.md"
50+
).read_text(encoding="utf-8")
51+
cls.flash_page = (
52+
REPO_ROOT / "tools" / "web" / "src" / "app" / "flash" / "page.tsx"
53+
).read_text(encoding="utf-8")
54+
cls.flash_status = (
55+
REPO_ROOT
56+
/ "tools"
57+
/ "web"
58+
/ "src"
59+
/ "components"
60+
/ "flash-status.tsx"
61+
).read_text(encoding="utf-8")
3862

3963
def test_readme_is_truthful_before_v042_hil_completes(self) -> None:
4064
firmware = markdown_section(self.readme, "What works")
@@ -156,6 +180,76 @@ def test_public_summaries_distinguish_build_targets_from_release_support(
156180
)
157181
self.assertNotIn("initial validated firmware targets", board_scope)
158182

183+
def test_preactivation_profiles_are_candidates_not_current_releases(
184+
self,
185+
) -> None:
186+
self.assertIn(
187+
"v0.4.2 candidate qualification scope is profile-scoped",
188+
self.firmware_overview,
189+
)
190+
self.assertIn(
191+
"current v0.4.2 candidate set is the exact `esp32-4mb`",
192+
self.website_specification,
193+
)
194+
self.assertIn(
195+
"v0.4.2 release candidate targets exactly these two",
196+
self.browser_flashing,
197+
)
198+
self.assertIn(
199+
"current pre-v1 candidate set is exactly `esp32-4mb`",
200+
self.product_requirements,
201+
)
202+
self.assertIn(
203+
"current pre-v1 candidate qualification set is exactly",
204+
self.firmware_requirements,
205+
)
206+
207+
prohibited_claims = (
208+
"current pre-v1 qualification is profile-scoped",
209+
"current pre-v1 release list is",
210+
"current pre-v1 public set is",
211+
"current pre-v1 release set is",
212+
"current pre-v1 public bundle contains exactly these two qualified",
213+
"current pre-v1 qualification set is exactly",
214+
)
215+
for claim in prohibited_claims:
216+
for document in (
217+
self.firmware_overview,
218+
self.website_specification,
219+
self.browser_flashing,
220+
self.product_requirements,
221+
self.firmware_requirements,
222+
):
223+
self.assertNotIn(claim, document)
224+
225+
def test_preactivation_installer_ui_does_not_call_candidates_qualified(
226+
self,
227+
) -> None:
228+
self.assertIn(
229+
"candidate ESP32 and ESP32-S3 profiles",
230+
self.flash_page,
231+
)
232+
self.assertIn(
233+
"both exact current candidate profiles",
234+
self.flash_page,
235+
)
236+
self.assertIn(
237+
"both exact current candidate profiles",
238+
self.flash_status,
239+
)
240+
self.assertNotIn(
241+
"qualified ESP32 and ESP32-S3 profiles",
242+
self.flash_page,
243+
)
244+
self.assertNotIn(
245+
"both exact current release profiles",
246+
self.flash_page,
247+
)
248+
self.assertNotIn(
249+
"both exact current release profiles",
250+
self.flash_status,
251+
)
252+
159253

160254
if __name__ == "__main__":
161255
unittest.main()

0 commit comments

Comments
 (0)