diff --git a/dandi/tests/test_bids_validator_xs.py b/dandi/tests/test_bids_validator_xs.py index 1d6c7d631..211ca00f5 100644 --- a/dandi/tests/test_bids_validator_xs.py +++ b/dandi/tests/test_bids_validator_xs.py @@ -1,5 +1,20 @@ import os +BIDS_EXAMPLES_WHITELIST = [ + "asl003", + "eeg_cbm", + "hcp_example_bids", + "micr_SEM", + "micr_SEM-dandi", + "micr_SPIM", + "pet001", + "pet003", + "qmri_megre", + "qmri_tb1tfl", + "qmri_vfa", +] +TEST_SCHEMA_PATH = "{module_path}/support/bids/schemadata/1.7.0+012+dandi001" + def test__add_entity(): from dandi.bids_validator_xs import _add_entity @@ -289,48 +304,39 @@ def test_write_report(tmp_path): assert report_text == expected_report_text -def test_bids_datasets(bids_examples, tmp_path): +def test_bids_datasets(bids_examples): from dandi.bids_validator_xs import validate_bids - whitelist = [ - "asl003", - "eeg_cbm", - "hcp_example_bids", - "micr_SEM", - "micr_SEM-dandi", - "micr_SPIM", - "pet001", - "pet003", - "qmri_tb1tfl", - "qmri_vfa", - ] - schema_path = "{module_path}/support/bids/schemadata/1.7.0+012+dandi001" - # Validate per dataset, with automatic schema selection: for i in os.listdir(bids_examples): - if i in whitelist: + if i in BIDS_EXAMPLES_WHITELIST: result = validate_bids( os.path.join(bids_examples, i), ) # Have all files been validated? assert len(result["path_tracking"]) == 0 + +def test_bids_datasets_selected_paths(bids_examples, tmp_path): + from dandi.bids_validator_xs import validate_bids + # Create input for file list based validation - selected_dir = os.path.join(bids_examples, whitelist[0]) + selected_dir = os.path.join(bids_examples, BIDS_EXAMPLES_WHITELIST[0]) selected_paths = [] for root, dirs, files in os.walk(selected_dir, topdown=False): for f in files: selected_path = os.path.join(root, f) selected_paths.append(selected_path) - # Does terminal debug output work and explicit schema specification work? - result = validate_bids(selected_paths, schema_version=schema_path, debug=True) - # Does default log path specification work? - result = validate_bids(selected_paths, schema_version=schema_path, report_path=True) + # Does explicit schema specification work? + result = validate_bids(selected_paths, schema_version=TEST_SCHEMA_PATH) + + # Does terminal debug output work? + result = validate_bids(selected_paths, schema_version=TEST_SCHEMA_PATH, debug=True) # Does custom log path specification work? result = validate_bids( selected_paths, - schema_version=schema_path, + schema_version=TEST_SCHEMA_PATH, debug=True, report_path=os.path.join(tmp_path, "test_bids.log"), ) diff --git a/dandi/tests/test_validate.py b/dandi/tests/test_validate.py deleted file mode 100644 index d501a140e..000000000 --- a/dandi/tests/test_validate.py +++ /dev/null @@ -1,34 +0,0 @@ -import os - - -def test_validate_bids(bids_examples): - from dandi.validate import validate_bids - - whitelist = [ - "qmri_megre", - "asl003", - "pet002", - "asl005", - "asl002", - "pet004", - "eeg_cbm", - "pet005", - "hcp_example_bids", - "asl004", - "qmri_tb1tfl", - "micr_SPIM", - "pet001", - "pet003", - "micr_SEM", - "micr_SEM-dandi", - ] - schema_path = "{module_path}/support/bids/schemadata/1.7.0+012+dandi001" - - # Validate per dataset, with debugging: - for i in os.listdir(bids_examples): - if i in whitelist: - result = validate_bids( - os.path.join(bids_examples, i), schema_version=schema_path - ) - # Have all files been validated? - assert len(result["path_tracking"]) == 0