diff --git a/conftest.py b/conftest.py index 616f85ab..4d02018f 100644 --- a/conftest.py +++ b/conftest.py @@ -16,15 +16,22 @@ @pytest.fixture -def jp_scheduler_staging(jp_data_dir): +def jp_scheduler_root_dir(tmp_path): + root_dir = tmp_path / "workspace_root" + root_dir.mkdir() + return root_dir + + +@pytest.fixture +def jp_scheduler_staging_dir(jp_data_dir): staging_area = jp_data_dir / "scheduler_staging_area" staging_area.mkdir() return staging_area @pytest.fixture -def jp_scheduler_db_url(jp_scheduler_staging): - db_file_path = jp_scheduler_staging / "scheduler.sqlite" +def jp_scheduler_db_url(jp_scheduler_staging_dir): + db_file_path = jp_scheduler_staging_dir / "scheduler.sqlite" return f"sqlite:///{db_file_path}" diff --git a/jupyter_scheduler/tests/test_execution_manager.py b/jupyter_scheduler/tests/test_execution_manager.py index 03122c30..a9b49196 100644 --- a/jupyter_scheduler/tests/test_execution_manager.py +++ b/jupyter_scheduler/tests/test_execution_manager.py @@ -16,21 +16,29 @@ @pytest.fixture -def create_job(jp_scheduler_db): +def staging_dir_with_side_effects(jp_scheduler_staging_dir): + return ("side_effects.ipynb", "output_side_effect.txt") + + +@pytest.fixture +def side_effects_job_record(jp_scheduler_db, staging_dir_with_side_effects): + notebook_name = staging_dir_with_side_effects[0] job = Job( runtime_environment_name="abc", - input_filename=NOTEBOOK_NAME, + input_filename=notebook_name, ) jp_scheduler_db.add(job) jp_scheduler_db.commit() return job.job_id -def test_add_side_effects_files(jp_scheduler_db, create_job, jp_scheduler_db_url): - job_id = create_job +def test_add_side_effects_files( + jp_scheduler_db, side_effects_job_record, jp_scheduler_db_url, jp_scheduler_root_dir +): + job_id = side_effects_job_record manager = DefaultExecutionManager( job_id=job_id, - root_dir=str(NOTEBOOK_DIR), + root_dir=jp_scheduler_root_dir, db_url=jp_scheduler_db_url, staging_paths={"input": str(NOTEBOOK_PATH)}, )