| B1 | All 10 base AdmeConnectorTests tests present | grep "def test_" tests/unit/test_suite.py | wc -l ≥ 10 | 3 |
| B2 | All ADME-specific tests present | grep "def test_" tests/unit/adme_osdu/test_adme_osdu_lakeflow_connect.py | wc -l ≥ 8 | 3 |
| B3 | Simulate tests all pass | PYTHONPATH=. pytest tests/unit/adme_osdu/ -v — 0 failures | BLOCKER |
| B4 | conftest.py autouse mock fixture present | grep "autouse=True" tests/unit/adme_osdu/conftest.py | 2 |
| B5 | Mock handles cursor pagination (returns empty on cursor) | grep "body.get.*cursor" tests/unit/adme_osdu/conftest.py | 2 |
| B6 | Mock handles incremental filter (returns empty on query) | grep "body.get.*query" tests/unit/adme_osdu/conftest.py | 2 |
| B7 | Corpus has ≥ 3 records per domain table | python3 -c "import json; d=json.load(open('connector/simulator/corpus/wellbore.json')); print(len(d))" ≥ 3 | 2 |
| B8 | Legal tags corpus has correct wrapper format | python3 -c "import json; d=json.load(open('connector/simulator/corpus/legal_tags.json')); assert 'legalTags' in d" | 2 |
| B9 | Entitlements corpus has correct wrapper format | assert 'groups' in json.load(open('connector/simulator/corpus/entitlements.json')) | 2 |
| B10 | dev_config.json.template present (documents live config format) | ls tests/unit/adme_osdu/dev_config.json.template | 2 |
| B11 | dev_config.json absent (not committed) | ls tests/unit/adme_osdu/dev_config.json must NOT exist | MAJOR |
| B12 | Stubs directory present and functional | python3 -c "import sys; sys.path.insert(0,'tests/stubs'); import respx, tenacity" | 3 |
| B13 | Root conftest.py injects stubs | grep "tests/stubs" conftest.py | 1 |
| B14 | Test mode env var documented | grep CONNECTOR_TEST_MODE tests/unit/adme_osdu/conftest.py | 1 |