diff --git a/python/lsst/ip/diffim/detectAndMeasure.py b/python/lsst/ip/diffim/detectAndMeasure.py index 0aafb9b65..c7d59150f 100644 --- a/python/lsst/ip/diffim/detectAndMeasure.py +++ b/python/lsst/ip/diffim/detectAndMeasure.py @@ -529,8 +529,11 @@ def processResults(self, science, matchedTemplate, difference, sources, idFactor measurementResults = pipeBase.Struct( subtractedMeasuredExposure=difference, - diaSources=diaSources, ) + + if len(diaSources) > 0: + measurementResults.diaSources = diaSources + if self.config.doMaskStreaks and self.config.writeStreakInfo: measurementResults.mergeItems(streakInfo, 'maskedStreaks') diff --git a/tests/test_detectAndMeasure.py b/tests/test_detectAndMeasure.py index 97ca57bda..81c82e470 100644 --- a/tests/test_detectAndMeasure.py +++ b/tests/test_detectAndMeasure.py @@ -483,14 +483,15 @@ def _detection_wrapper(setFlags=True): goodSrcFlags = _checkMask(difference.mask, transientSources, excludeMaskPlanes) if setFlags: self.assertEqual(np.sum(~goodSrcFlags), nBad) + self.assertFalse(hasattr(output, "diaSources")) else: self.assertEqual(np.sum(~goodSrcFlags), 0) - for diaSource, goodSrcFlag in zip(output.diaSources, goodSrcFlags): - if ~goodSrcFlag: - with self.assertRaises(AssertionError): + for diaSource, goodSrcFlag in zip(output.diaSources, goodSrcFlags): + if ~goodSrcFlag: + with self.assertRaises(AssertionError): + self._check_diaSource(transientSources, diaSource, refIds=refIds) + else: self._check_diaSource(transientSources, diaSource, refIds=refIds) - else: - self._check_diaSource(transientSources, diaSource, refIds=refIds) _detection_wrapper(setFlags=False) _detection_wrapper(setFlags=True) @@ -917,14 +918,15 @@ def _detection_wrapper(setFlags=True): goodSrcFlags = subtractTask._checkMask(difference.mask, transientSources, excludeMaskPlanes) if setFlags: self.assertEqual(np.sum(~goodSrcFlags), nBad) + self.assertFalse(hasattr(output, "diaSources")) else: self.assertEqual(np.sum(~goodSrcFlags), 0) - for diaSource, goodSrcFlag in zip(output.diaSources, goodSrcFlags): - if ~goodSrcFlag: - with self.assertRaises(AssertionError): + for diaSource, goodSrcFlag in zip(output.diaSources, goodSrcFlags): + if ~goodSrcFlag: + with self.assertRaises(AssertionError): + self._check_diaSource(transientSources, diaSource, refIds=refIds) + else: self._check_diaSource(transientSources, diaSource, refIds=refIds) - else: - self._check_diaSource(transientSources, diaSource, refIds=refIds) _detection_wrapper(setFlags=False) _detection_wrapper(setFlags=True)