Class VerifyPublicationEvidenceCliTest
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid🛑 Refused while it is still an argument.voidA curator outranks GEO, andapply()declines such a write in silence — so a run that reports what it changed must not attempt one and assume it landed.void🛑 A verify-only run leaves no_primary rows telling the reader to run with --fill, and the --fill rerun on the same change log skipped every one of them.void🛑 A dataset GEO could not be read for was not checked, and the run says so in its exit status.voidA paper GEO does not link to the series at all IS the disagreement, and nothing is written for it: it splits into "a curator corrected GEO" and "GEO is wrong", which no rule separates.void🛑 GEO listing several papers is not GEO disagreeing.void🛑 A row whose GEO read failed is retried on resume.voidA settled row is still skipped on resume.void🛑 There is no default mode, deliberately.
-
Constructor Details
-
VerifyPublicationEvidenceCliTest
public VerifyPublicationEvidenceCliTest()
-
-
Method Details
-
testItRefusesToRunWithoutBeingToldWhichHalf
@Test @WithMockUser public void testItRefusesToRunWithoutBeingToldWhichHalf()🛑 There is no default mode, deliberately. One half reads GEO and restates a basis; the other creates publication links that a live Gemma 1.32.x displays the moment they are written. A default would make the second one reachable by someone who meant the first. -
testACuratorsAssertionIsNotWrittenOver
A curator outranks GEO, andapply()declines such a write in silence — so a run that reports what it changed must not attempt one and assume it landed. The held assertion is read first and a curator-held row is left alone.- Throws:
Exception
-
testABadChangeLogPathIsRefusedBeforeAnythingIsLoaded
@Test @WithMockUser public void testABadChangeLogPathIsRefusedBeforeAnythingIsLoaded()🛑 Refused while it is still an argument. The change log is opened after the experiment list is built, and building it loads the corpus — so a bad path used to cost a full scan (25,687 datasets on prod) before failing, and failed as a NoSuchFileException naming the FILE when the missing thing was its DIRECTORY. Reported from a real run 2026-08-18.What this pins is the failure and its message. That it happens before the corpus loads is a consequence of the check living in
processExperimentOptions, which runs during argument parsing — asserting it here through mock interactions is not possible, because the beans in this context are shared across tests and carry the other tests' calls. -
testAPaperGeoListsSecondIsReportedNotCertified
🛑 GEO listing several papers is not GEO disagreeing.GSE934 lists
15802019and15867358— two 2005 papers from the same lab — and Gemma holds the second. That is not a disagreement: GEO does link the paper to the series. Nor is it agreement on the primary. It gets its own outcome and no write.- Throws:
Exception
-
testAPaperGeoDoesNotListAtAllIsNotWritten
-
testAResumeRetriesADatasetGeoCouldNotBeRead
@Test @WithMockUser @DirtiesContext(methodMode=AFTER_METHOD) public void testAResumeRetriesADatasetGeoCouldNotBeRead(@TempDir Path dir) throws Exception 🛑 A row whose GEO read failed is retried on resume. Every accession in the change log counted as done, so a dataset GEO could not be read for was never looked at again.These resume tests run two experiments because a single-experiment run never opens the change log. They dirty the context: the CLI bean keeps the change log path and the settled ids in fields, and the other tests must not inherit them.
- Throws:
Exception
-
testAResumeSkipsASettledDataset
-
testAFillResumeRetriesNoPrimaryRows
@Test @WithMockUser @DirtiesContext(methodMode=AFTER_METHOD) public void testAFillResumeRetriesNoPrimaryRows(@TempDir Path dir) throws Exception 🛑 A verify-only run leaves no_primary rows telling the reader to run with --fill, and the --fill rerun on the same change log skipped every one of them.- Throws:
Exception
-
testAnUnreadableGeoFailsTheRun
@Test @WithMockUser @DirtiesContext(methodMode=AFTER_METHOD) public void testAnUnreadableGeoFailsTheRun() throws Exception🛑 A dataset GEO could not be read for was not checked, and the run says so in its exit status. Recorded as a warning, a run in which every GEO read failed exited 0.- Throws:
Exception
-