diff --git a/test/unit/extract/xbrl_test.py b/test/unit/extract/xbrl_test.py index 0aeb2a920d..61ff1bdb07 100644 --- a/test/unit/extract/xbrl_test.py +++ b/test/unit/extract/xbrl_test.py @@ -91,7 +91,7 @@ def test_ferc_xbrl_datastore_get_filings(mocker): ), ], ) -def test_xbrl2sqlite(settings, forms, mocker): +def test_xbrl2sqlite(settings, forms, mocker, tmp_path): convert_form_mock = mocker.MagicMock() mocker.patch("pudl.extract.xbrl.convert_form", new=convert_form_mock) @@ -99,6 +99,14 @@ def test_xbrl2sqlite(settings, forms, mocker): mock_datastore = mocker.MagicMock() mocker.patch("pudl.extract.xbrl.FercXbrlDatastore", return_value=mock_datastore) + # always use tmp path here so that we don't clobber the live DB when --live-dbs is passed + mock_pudl_paths = mocker.MagicMock( + spec=PudlPaths(), + sqlite_db_path=lambda form_name: tmp_path / f"{form_name}.sqlite", + output_dir=PudlPaths().output_dir, + ) + mocker.patch("pudl.extract.xbrl.PudlPaths", return_value=mock_pudl_paths) + # Construct xbrl2sqlite op context context = build_op_context( resources={ @@ -122,7 +130,7 @@ def test_xbrl2sqlite(settings, forms, mocker): form, mock_datastore, output_path=PudlPaths().output_dir, - sql_path=PudlPaths().output_dir / f"ferc{form.value}_xbrl.sqlite", + sql_path=tmp_path / f"ferc{form.value}_xbrl.sqlite", batch_size=20, workers=10, ) @@ -163,7 +171,7 @@ def test_xbrl2sqlite_db_exists_no_clobber(mocker): xbrl2sqlite(context) -def test_xbrl2sqlite_db_exists_yes_clobber(mocker): +def test_xbrl2sqlite_db_exists_yes_clobber(mocker, tmp_path): convert_form_mock = mocker.MagicMock() mocker.patch("pudl.extract.xbrl.convert_form", new=convert_form_mock) @@ -171,7 +179,8 @@ def test_xbrl2sqlite_db_exists_yes_clobber(mocker): mock_datastore = mocker.MagicMock() mocker.patch("pudl.extract.xbrl.FercXbrlDatastore", return_value=mock_datastore) - ferc1_sqlite_path = PudlPaths().output_dir / "ferc1_xbrl.sqlite" + # always use tmp path here so that we don't clobber the live DB when --live-dbs is passed + ferc1_sqlite_path = tmp_path / "ferc1_xbrl.sqlite" ferc1_sqlite_path.touch() # mock the db path so we can assert it gets clobbered