Coverage for tests/io/conftest.py: 94%

35 statements  

« prev     ^ index     » next       coverage.py v7.15.1, created at 2026-07-15 09:33 +0000

1import os 

2 

3import pytest 

4 

5# ``test_events`` and ``real_event_files`` live in the repo-root conftest.py so 

6# they are shared with the benchmarks; only io-test-specific fixtures live here. 

7 

8 

9from typing import Any, Callable 

10 

11@pytest.fixture 

12def dummy_file_factory(tmp_path: Any) -> Callable[[str], str]: 

13 # Create a temporary dummy (non-event) file. 

14 def _filefactory(name: str) -> str: 

15 test_file_path = os.path.join(tmp_path, name) 

16 with open(test_file_path, 'w') as f: 

17 f.write('This is a dummy test file.') 

18 return test_file_path 

19 

20 return _filefactory 

21 

22 

23@pytest.fixture(scope='session') 

24def event_files(tmp_path_factory: Any, test_events: Any) -> dict[str, Any]: 

25 event_file_paths: dict[str, Any] = {} 

26 

27 temp_dir = tmp_path_factory.mktemp("data") 

28 event_file_paths['csv'] = temp_dir / "events.csv" 

29 event_file_paths['csv_noheader'] = temp_dir / "events_noheader.csv" 

30 event_file_paths['csv_shuffled_columns'] = temp_dir / "events_noheader_xypt.csv" 

31 event_file_paths['evt2'] = temp_dir / "events_evt2.raw" 

32 event_file_paths['evt21'] = temp_dir / "events_evt21.raw" 

33 event_file_paths['evt3'] = temp_dir / "events_evt3.raw" 

34 event_file_paths['hdf5'] = temp_dir / "events.h5" 

35 event_file_paths['dat'] = temp_dir / "events.dat" 

36 event_file_paths['npz'] = temp_dir / "events.npz" 

37 event_file_paths['bin'] = temp_dir / "events.bin" 

38 event_file_paths['txt'] = temp_dir / "events.txt" 

39 

40 try: 

41 from evutils.io import EventWriter 

42 with EventWriter(event_file_paths['csv']) as writer: 

43 writer.write(test_events) 

44 except ImportError: 

45 pass 

46 

47 with EventWriter(event_file_paths['evt3'], format="EVT3") as writer: 

48 writer.write(test_events) 

49 

50 return event_file_paths