def testFailEmpty(tmpdir): datasetRoot = Path(tmpdir, "bids-archive") emptyArchive = BidsArchive(datasetRoot) with pytest.raises(StateError): emptyArchive.dirExistsInArchive("will fail anyway") with pytest.raises(StateError): emptyArchive.getReadme() with pytest.raises(StateError): emptyArchive.getImages("will fail anyway") with pytest.raises(StateError): emptyArchive.getSidecarMetadata("will fall anyway") with pytest.raises(StateError): emptyArchive._getIncremental(subject="will fall anyway", session="will fall anyway", task="will fall anyway", suffix="will fall anyway", datatype="will fall anyway")
def openNeuroStreamTest(bidsInterface): dsAccessionNumber = 'ds002338' dsSubject = 'xp201' datasetDir = tmpDownloadOpenNeuro(dsAccessionNumber, dsSubject, 1) localEntities = {'subject': dsSubject, 'run': 1, 'suffix': 'bold', 'datatype': 'func'} remoteEntities = {'subject': dsSubject, 'run': 1} localBidsArchive = BidsArchive(datasetDir) streamId = bidsInterface.initOpenNeuroStream(dsAccessionNumber, **remoteEntities) for idx in range(3): streamIncremental = bidsInterface.getIncremental(streamId) localIncremental = localBidsArchive._getIncremental(idx, **localEntities) print(f"OpenNeuro stream check: image {idx}") assert streamIncremental == localIncremental for idx in [5, 2, 7]: streamIncremental = bidsInterface.getIncremental(streamId, volIdx=idx) localIncremental = localBidsArchive._getIncremental(idx, **localEntities) print(f"OpenNeuro stream check: image {idx}") assert streamIncremental == localIncremental # Resume without specifying volumes for idx in [*range(8, 10)]: streamIncremental = bidsInterface.getIncremental(streamId) localIncremental = localBidsArchive._getIncremental(idx, **localEntities) print(f"OpenNeuro stream check: image {idx}") assert streamIncremental == localIncremental numVols = bidsInterface.getNumVolumes(streamId) assert numVols > 0 and numVols < 1000 # Check with local bidsRun localBidsRun = localBidsArchive.getBidsRun(**localEntities) assert numVols == localBidsRun.numIncrementals() assert numVols > 10 for idx in [*range(6, 10)]: streamIncremental = bidsInterface.getIncremental(streamId, volIdx=idx) localIncremental = localBidsRun.getIncremental(idx) print(f"OpenNeuro bidsRun check: image {idx}") assert streamIncremental == localIncremental