Skip to content

Commit

Permalink
Merge pull request #3043 from catalyst-cooperative/fix-xbrl-clobber-l…
Browse files Browse the repository at this point in the history
…ive-dbs-test

Merging this in since Ben approved it... in the hopes that we'll get a fully functional deployment tonight.
  • Loading branch information
zaneselvans authored Nov 14, 2023
2 parents c072bf8 + 3c6c93f commit 6cb0793
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions test/unit/extract/xbrl_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,22 @@ 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)

# Mock datastore object to allow comparison
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={
Expand All @@ -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,
)
Expand Down Expand Up @@ -163,15 +171,16 @@ 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)

# Mock datastore object to allow comparison
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
Expand Down

0 comments on commit 6cb0793

Please sign in to comment.