def testGenericRun(self): """Test the normal workflow of each ap_pipe step. """ task = ApPipeTask(self.butler, config=self.config) with self.mockPatchSubtasks(task) as subtasks: task.runDataRef(self.inputRef) subtasks.ccdProcessor.runDataRef.assert_called_once() subtasks.differencer.runDataRef.assert_called_once() subtasks.associator.run.assert_called_once()
def testReuseExistingOutput(self): """Test reuse keyword to ApPipeTask.runDataRef. """ task = ApPipeTask(self.butler, config=self.config) self.checkReuseExistingOutput(task, ['ccdProcessor']) self.checkReuseExistingOutput(task, ['ccdProcessor', 'differencer'])
def testCalexpRun(self): """Test the calexp template workflow of each ap_pipe step. """ calexpConfigFile = os.path.join(lsst.utils.getPackageDir('ap_pipe'), 'config', 'calexpTemplates.py') calexpConfig = self._makeDefaultConfig() calexpConfig.load(calexpConfigFile) calexpConfig.differencer.doSelectSources = False # Workaround for DM-18394 task = ApPipeTask(self.butler, config=calexpConfig) with self.mockPatchSubtasks(task) as subtasks: # We use the same dataId here for both template and science # in difference imaging. This is OK because everything is a mock # and we aren't actually doing any image processing. task.runDataRef(self.inputRef, templateIds=[self.dataId]) self.assertEqual(subtasks.ccdProcessor.runDataRef.call_count, 2) subtasks.differencer.runDataRef.assert_called_once() subtasks.associator.run.assert_called_once()
#!/usr/bin/env python # # This file is part of ap_pipe. # # Developed for the LSST Data Management System. # This product includes software developed by the LSST Project # (http://www.lsst.org). # See the COPYRIGHT file at the top-level directory of this distribution # for details of code ownership. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from lsst.ap.pipe import ApPipeTask if __name__ == '__main__': ApPipeTask.parseAndRun()
def _makeDefaultConfig(cls): config = ApPipeTask.ConfigClass() config.load(os.path.join(cls.datadir, "config", "apPipe.py")) config.ppdb.db_url = "sqlite://" config.ppdb.isolation_level = "READ_UNCOMMITTED" return config