Skip to content

Commit fa8ca02

Browse files
Merge branch 'main' into 127_add_converters
2 parents 4c511de + 88923a9 commit fa8ca02

File tree

3 files changed

+37
-35
lines changed

3 files changed

+37
-35
lines changed

tests/unit_tests/conftest.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from pathlib import Path
12
from unittest.mock import patch
23

34
import pytest
@@ -7,13 +8,22 @@
78
from daq_config_server.whitelist import get_whitelist
89
from tests.constants import TEST_WHITELIST_RESPONSE
910

11+
WHITELIST_PATH = Path(__file__).resolve().parents[2] / "whitelist.yaml"
12+
1013

1114
@pytest.fixture(autouse=True)
1215
def test_friendly_whitelist(request: FixtureRequest):
1316
# Don't launch threads unless we really need to since it slows down testing
1417

1518
with patch("daq_config_server.whitelist.requests.get") as mock_request:
16-
mock_request.return_value = make_test_response(content=TEST_WHITELIST_RESPONSE)
19+
if "test_whitelist.py" in str(request.path):
20+
with open(WHITELIST_PATH) as f:
21+
whitelist_contents = f.read()
22+
mock_request.return_value = make_test_response(content=whitelist_contents)
23+
else:
24+
mock_request.return_value = make_test_response(
25+
content=TEST_WHITELIST_RESPONSE
26+
)
1727

1828
if request.node.get_closest_marker("use_threading"): # type: ignore
1929
with patch("daq_config_server.whitelist.WHITELIST_REFRESH_RATE_S", new=0):

tests/unit_tests/test_whitelist.py

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,33 @@
55

66
import pytest
77

8-
from daq_config_server.testing import make_test_response
98
from daq_config_server.whitelist import WhitelistFetcher, get_whitelist
109

11-
FAKE_WHITELIST_RESPONSE = """\
12-
whitelist_files:
13-
- /test/file1.txt
14-
- /test/file2.txt
15-
whitelist_dirs:
16-
- /test/dir1
17-
- /test/dir2
18-
"""
10+
"""The tests in this file will read directly from the whitelist.yaml in the current
11+
branch"""
1912

2013

21-
def test_fetch_and_update_contructs_whitelist_given_yaml_response():
22-
with patch("daq_config_server.whitelist.requests.get") as mock_request:
23-
mock_request.return_value = make_test_response(content=FAKE_WHITELIST_RESPONSE)
24-
whitelist = get_whitelist()
25-
expected_files = {Path("/test/file1.txt"), Path("/test/file2.txt")}
26-
expected_dirs = {Path("/test/dir1"), Path("/test/dir2")}
27-
assert whitelist.whitelist_files == expected_files
28-
assert whitelist.whitelist_dirs == expected_dirs
14+
def test_fetch_and_update_contructs_whitelist_given_yaml():
15+
whitelist = get_whitelist()
16+
expected_files = {
17+
Path("/tests/test_data/beamline_parameters.txt"),
18+
}
19+
expected_dirs = {
20+
Path("/tests/test_data/"),
21+
Path("/dls_sw/i03/software/daq_configuration/"),
22+
}
23+
assert expected_files.issubset(whitelist.whitelist_files)
24+
assert expected_dirs.issubset(whitelist.whitelist_dirs)
2925

3026

3127
@patch("daq_config_server.whitelist.LOGGER.info")
32-
@patch("daq_config_server.whitelist.requests.get")
33-
def test_initial_load_on_sucessful_fetch(
34-
mock_request: MagicMock, mock_log_info: MagicMock
35-
):
36-
mock_request.return_value = make_test_response(content=FAKE_WHITELIST_RESPONSE)
28+
def test_initial_load_on_sucessful_fetch(mock_log_info: MagicMock):
3729
get_whitelist()
3830
mock_log_info.assert_called_once_with("Successfully read whitelist from GitHub.")
3931

4032

4133
@patch("daq_config_server.whitelist.LOGGER.error")
42-
@patch("daq_config_server.whitelist.requests.get")
43-
def test_initial_load_on_failed_fetch(
44-
mock_request: MagicMock, mock_log_error: MagicMock
45-
):
34+
def test_initial_load_on_failed_fetch(mock_log_error: MagicMock):
4635
WhitelistFetcher._fetch_and_update = MagicMock(side_effect=Exception("blah"))
4736
with pytest.raises(RuntimeError):
4837
get_whitelist()
@@ -52,10 +41,7 @@ def test_initial_load_on_failed_fetch(
5241
@pytest.mark.use_threading
5342
@patch("daq_config_server.whitelist.LOGGER.error")
5443
@patch("daq_config_server.whitelist.WHITELIST_REFRESH_RATE_S", new=0)
55-
@patch("daq_config_server.whitelist.requests.get")
56-
def test_periodically_update_whitelist_on_failed_update(
57-
mock_request: MagicMock, mock_log_error: MagicMock
58-
):
44+
def test_periodically_update_whitelist_on_failed_update(mock_log_error: MagicMock):
5945
WhitelistFetcher._initial_load = MagicMock()
6046
WhitelistFetcher._fetch_and_update = MagicMock(side_effect=Exception("blah"))
6147
get_whitelist()
@@ -66,10 +52,7 @@ def test_periodically_update_whitelist_on_failed_update(
6652
@pytest.mark.use_threading
6753
@patch("daq_config_server.whitelist.LOGGER")
6854
@patch("daq_config_server.whitelist.WHITELIST_REFRESH_RATE_S", new=0)
69-
@patch("daq_config_server.whitelist.requests.get")
70-
def test_periodically_update_whitelist_on_successful_update(
71-
mock_request: MagicMock, mock_log: MagicMock
72-
):
55+
def test_periodically_update_whitelist_on_successful_update(mock_log: MagicMock):
7356
logging_event = threading.Event()
7457
WhitelistFetcher._initial_load = MagicMock()
7558
WhitelistFetcher._fetch_and_update = MagicMock()

whitelist.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@
66
#For long-term configuration files
77
whitelist_files:
88
- /tests/test_data/beamline_parameters.txt
9+
# The following filepaths should be un-whitelisted once they've been moved to **/daq_configuration/
10+
# See https://jira.diamond.ac.uk/browse/MXGDA-4204
11+
- /dls_sw/i03/software/gda/configurations/i03-config/xml/jCameraManZoomLevels.xml
12+
- /dls_sw/i04/software/bluesky/scratch/jCameraManZoomLevels.xml
13+
- /dls_sw/i19-1/software/gda_versions/gda/config/xml/jCameraManZoomLevels.xml
14+
- /dls_sw/i24/software/gda_versions/gda/config/xml/jCameraManZoomLevels.xml
15+
- /dls_sw/i03/software/gda_versions/var/display.configurations
16+
- /dls_sw/i04/software/bluesky/scratch/display.configuration
17+
- /dls_sw/i24/software/gda_versions/var/display.configuration
918

1019
#For long-term directories with frequently changing files
1120
whitelist_dirs:

0 commit comments

Comments
 (0)