Source code for autowisp.tests.test_calibrate

"""Test cases for image calibration."""

from os import path
from glob import glob
from shutil import rmtree

from autowisp.tests.fits_test_case import FITSTestCase


[docs] class TestCalibrate(FITSTestCase): """Test cases for image calibration."""
[docs] def _test_calibration(self, input_imtype, **masters): """Perform a calibration step and test outputs match expectations.""" input_dir = path.join(self.test_directory, "RAW", input_imtype) command = [ "wisp-calibrate", "-c", path.join(self.processing_directory, "test.cfg"), path.join(input_dir, "*.fits.fz"), ] for master_type, master_fname in masters.items(): command.extend([f"--master-{master_type}", master_fname]) self.run_step(command) generated = sorted( glob( path.join( self.processing_directory, "CAL", input_imtype, "*.fits*" ) ) ) expected = sorted( glob( path.join(self.test_directory, "CAL", input_imtype, "*.fits.fz") ) ) self.assertTrue( [path.basename(fname) for fname in generated] == [path.basename(fname) for fname in expected], "Generated files do not match expected files!", ) for gen_fname, exp_fname in zip(generated, expected): self.assert_fits_match(exp_fname, gen_fname) rmtree(path.join(self.processing_directory, "CAL", input_imtype)) self.successful_test = True
[docs] def test_bias_calibration(self): """Check if bias calibration works as expected.""" self._test_calibration("zero")
[docs] def test_dark_calibration(self): """Check if dark calibration works as expected.""" self._test_calibration( "dark", bias="R:" + path.join(self.test_directory, "MASTERS", "zero_R.fits.fz"), )
[docs] def test_flat_calibration(self): """Check if flat calibration works as expected.""" self._test_calibration( "flat", bias="R:" + path.join(self.test_directory, "MASTERS", "zero_R.fits.fz"), dark="R:" + path.join(self.test_directory, "MASTERS", "dark_R.fits.fz"), )
[docs] def test_object_calibration(self): """Check if flat calibration works as expected.""" self._test_calibration( "object", bias="R:" + path.join(self.test_directory, "MASTERS", "zero_R.fits.fz"), dark="R:" + path.join(self.test_directory, "MASTERS", "dark_R.fits.fz"), flat="R:" + path.join(self.test_directory, "MASTERS", "flat_R.fits.fz"), )