Skip to content

Commit ae3996c

Browse files
committed
Merge branch 'tickets/DM-47772'
2 parents b56644a + 93ea976 commit ae3996c

File tree

2 files changed

+32
-16
lines changed

2 files changed

+32
-16
lines changed

python/activator/middleware_interface.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -696,23 +696,27 @@ def _export_skymap_and_templates(self, region, filter):
696696
if filter:
697697
data_id["physical_filter"] = filter
698698

699-
try:
700-
_log.debug("Searching for templates.")
701-
templates = set(_filter_datasets(
702-
self.central_butler, self.butler,
703-
self._get_template_types(),
704-
collections=self._collection_template,
705-
data_id=data_id,
706-
where="patch.region OVERLAPS search_region",
707-
bind={"search_region": region},
708-
find_first=True,
709-
all_callback=self._mark_dataset_usage,
710-
))
711-
except _MissingDatasetError as err:
712-
_log.error(err)
713-
templates = set()
699+
types = self._get_template_types()
700+
if types:
701+
try:
702+
_log.debug("Searching for templates.")
703+
templates = set(_filter_datasets(
704+
self.central_butler, self.butler,
705+
types,
706+
collections=self._collection_template,
707+
data_id=data_id,
708+
where="patch.region OVERLAPS search_region",
709+
bind={"search_region": region},
710+
find_first=True,
711+
all_callback=self._mark_dataset_usage,
712+
))
713+
except _MissingDatasetError as err:
714+
_log.error(err)
715+
templates = set()
716+
else:
717+
_log.debug("Found %d new template datasets.", len(templates))
714718
else:
715-
_log.debug("Found %d new template datasets.", len(templates))
719+
templates = set()
716720
return skymaps | templates
717721

718722
def _export_calibs(self, detector_id, filter):

tests/test_middleware_interface.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,18 @@ def test_prep_butler_nofilter(self):
354354
# Hard to test actual pipeline output, so just check we're calling it
355355
mock_pre.assert_called_once()
356356

357+
def test_prep_butler_notemplates(self):
358+
"""Test that prep_butler can handle pipeline configs without templates.
359+
"""
360+
self.interface.main_pipelines = pre_pipelines_empty
361+
with unittest.mock.patch("activator.middleware_interface.MiddlewareInterface._run_preprocessing") \
362+
as mock_pre, \
363+
self.assertNoLogs(level="ERROR"):
364+
self.interface.prep_butler()
365+
366+
# Hard to test actual pipeline output, so just check we're calling it
367+
mock_pre.assert_called_once()
368+
357369
# TODO: prep_butler doesn't know what kinds of calibs to expect, so can't
358370
# tell that there are specifically, e.g., no flats. This test should pass
359371
# as-is after DM-40245.

0 commit comments

Comments
 (0)