From 911414a7b84d1bf75bfe946835c40e8cf2ab1648 Mon Sep 17 00:00:00 2001 From: Michael Hucka Date: Wed, 14 Oct 2026 01:40:31 +0000 Subject: [PATCH 1/3] Do not write to DATA_DIRECTORY in tests Pass save=False to run_pyscf() in generate_molecular_hamiltonian() so transient MolecularData objects do not write .hdf5 files to openfermion's DATA_DIRECTORY. Update test_run_pyscf() to use pytest's tmp_path fixture and remove the unused module-level MolecularData object. Fixes #65. --- openfermionpyscf/_run_pyscf.py | 3 ++- openfermionpyscf/tests/_run_pyscf_test.py | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/openfermionpyscf/_run_pyscf.py b/openfermionpyscf/_run_pyscf.py index 997e545..18cac37 100644 --- a/openfermionpyscf/_run_pyscf.py +++ b/openfermionpyscf/_run_pyscf.py @@ -237,7 +237,8 @@ def generate_molecular_hamiltonian( # Run electronic structure calculations molecule = run_pyscf( - MolecularData(geometry, basis, multiplicity, charge) + MolecularData(geometry, basis, multiplicity, charge), + save=False ) # Freeze core orbitals and truncate to active space diff --git a/openfermionpyscf/tests/_run_pyscf_test.py b/openfermionpyscf/tests/_run_pyscf_test.py index a7083a7..0e5cb11 100644 --- a/openfermionpyscf/tests/_run_pyscf_test.py +++ b/openfermionpyscf/tests/_run_pyscf_test.py @@ -24,13 +24,14 @@ basis = '6-31g' multiplicity = 1 charge = 0 -molecule = MolecularData(geometry, - basis, - multiplicity, - charge) -def test_run_pyscf(): +def test_run_pyscf(tmp_path): + molecule = MolecularData(geometry, + basis, + multiplicity, + charge, + data_directory=str(tmp_path)) new_mole = run_pyscf(molecule, run_scf=True, run_mp2=True, @@ -39,6 +40,7 @@ def test_run_pyscf(): run_fci=True, verbose=1) assert isinstance(new_mole, PyscfMolecularData) + assert os.path.exists(f'{new_mole.filename}.hdf5') def test_run_pyscf_without_save(tmp_path): From 6680ea6dd39f3f8d35b6f95ee865600a87405b2d Mon Sep 17 00:00:00 2001 From: mhucka Date: Thu, 22 Oct 2026 02:44:31 +0000 Subject: [PATCH 2/3] Add another test case --- openfermionpyscf/tests/_run_pyscf_test.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/openfermionpyscf/tests/_run_pyscf_test.py b/openfermionpyscf/tests/_run_pyscf_test.py index 5ba334a..14b3dcf 100644 --- a/openfermionpyscf/tests/_run_pyscf_test.py +++ b/openfermionpyscf/tests/_run_pyscf_test.py @@ -93,3 +93,11 @@ def test_generate_diatomic(tmp_path, monkeypatch): assert not list(readonly_dir.iterdir()) finally: readonly_dir.chmod(0o755) + + +def test_generate_molecular_hamiltonian_does_not_save(tmp_path, monkeypatch): + monkeypatch.setattr( + 'openfermion.chem.molecular_data.DATA_DIRECTORY', str(tmp_path)) + geometry = [('H', (0., 0., 0.)), ('H', (0., 0., 0.7414))] + openfermionpyscf.generate_molecular_hamiltonian(geometry, 'sto-3g', 1, 0) + assert not any(tmp_path.iterdir()) From 40f4994997220e6c6347e52e15276be6a1405190 Mon Sep 17 00:00:00 2001 From: mhucka Date: Thu, 22 Oct 2026 03:17:13 +0000 Subject: [PATCH 3/3] Fix CI failure --- openfermionpyscf/tests/_run_pyscf_test.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openfermionpyscf/tests/_run_pyscf_test.py b/openfermionpyscf/tests/_run_pyscf_test.py index 14b3dcf..ca0af7f 100644 --- a/openfermionpyscf/tests/_run_pyscf_test.py +++ b/openfermionpyscf/tests/_run_pyscf_test.py @@ -19,6 +19,7 @@ import openfermion.chem.molecular_data from openfermion.chem import MolecularData import openfermion.config +from openfermionpyscf import generate_molecular_hamiltonian from openfermionpyscf import run_pyscf from openfermionpyscf import PyscfMolecularData @@ -99,5 +100,5 @@ def test_generate_molecular_hamiltonian_does_not_save(tmp_path, monkeypatch): monkeypatch.setattr( 'openfermion.chem.molecular_data.DATA_DIRECTORY', str(tmp_path)) geometry = [('H', (0., 0., 0.)), ('H', (0., 0., 0.7414))] - openfermionpyscf.generate_molecular_hamiltonian(geometry, 'sto-3g', 1, 0) + generate_molecular_hamiltonian(geometry, 'sto-3g', 1, 0) assert not any(tmp_path.iterdir())