|
6 | 6 | import pytest |
7 | 7 | from pytest_mock import MockerFixture |
8 | 8 |
|
9 | | -from murfey.client.contexts.fib import FIBContext, _number_from_name |
| 9 | +from murfey.client.contexts.fib import FIBContext, _get_source, _number_from_name |
10 | 10 |
|
11 | 11 | # ------------------------------------------------------------------------------------- |
12 | 12 | # FIBContext test utilty functions and fixtures |
@@ -164,25 +164,32 @@ def create_fib_maps_xml_metadata( |
164 | 164 |
|
165 | 165 |
|
166 | 166 | @pytest.fixture |
167 | | -def fib_maps_metadata_file(tmp_path: Path): |
| 167 | +def visit_dir(tmp_path: Path): |
| 168 | + return tmp_path / "visit" |
| 169 | + |
| 170 | + |
| 171 | +@pytest.fixture |
| 172 | +def fib_maps_metadata_file(visit_dir: Path): |
168 | 173 | metadata = create_fib_maps_xml_metadata( |
169 | 174 | "test-project", |
170 | 175 | fib_maps_test_datasets, |
171 | 176 | ) |
172 | 177 | tree = ET.ElementTree(metadata) |
173 | 178 | ET.indent(tree, space=" ") |
174 | | - save_path = tmp_path / "EMproject.emxml" |
| 179 | + save_path = visit_dir / "maps/visit/EMproject.emxml" |
| 180 | + if not save_path.parent.exists(): |
| 181 | + save_path.parent.mkdir(parents=True, exist_ok=True) |
175 | 182 | tree.write(save_path, encoding="utf-8") |
176 | 183 | return save_path |
177 | 184 |
|
178 | 185 |
|
179 | 186 | @pytest.fixture |
180 | | -def fib_maps_images(tmp_path: Path): |
| 187 | +def fib_maps_images(fib_maps_metadata_file: Path): |
181 | 188 | image_list = [] |
182 | 189 | for dataset in fib_maps_test_datasets: |
183 | 190 | name = str(dataset["name"]) |
184 | 191 | relative_path = str(dataset["relative_path"]) |
185 | | - file = tmp_path / relative_path / f"{name}.tiff" |
| 192 | + file = fib_maps_metadata_file.parent / relative_path / f"{name}.tiff" |
186 | 193 | if not file.exists(): |
187 | 194 | file.parent.mkdir(parents=True, exist_ok=True) |
188 | 195 | file.touch() |
@@ -213,8 +220,21 @@ def test_number_from_name(test_params: tuple[str, int]): |
213 | 220 | assert _number_from_name(name) == number |
214 | 221 |
|
215 | 222 |
|
216 | | -def test_get_source(): |
217 | | - pass |
| 223 | +def test_get_source( |
| 224 | + tmp_path: Path, |
| 225 | + visit_dir: Path, |
| 226 | + fib_maps_images: list[Path], |
| 227 | + fib_maps_metadata_file: Path, |
| 228 | +): |
| 229 | + # Mock the MurfeyInstanceEnvironment |
| 230 | + mock_environment = MagicMock() |
| 231 | + mock_environment.sources = [ |
| 232 | + visit_dir, |
| 233 | + tmp_path / "another_dir", |
| 234 | + ] |
| 235 | + # Check that the correct source directory is found |
| 236 | + for file in [fib_maps_metadata_file, *fib_maps_images]: |
| 237 | + assert _get_source(file, mock_environment) == visit_dir |
218 | 238 |
|
219 | 239 |
|
220 | 240 | def test_file_transferred_to(): |
|
0 commit comments