diff --git a/mw4/gui/extWindows/imageW.py b/mw4/gui/extWindows/imageW.py index 8a12ba6ad..cd2fdd579 100755 --- a/mw4/gui/extWindows/imageW.py +++ b/mw4/gui/extWindows/imageW.py @@ -25,8 +25,8 @@ # local import from mountcontrol.convert import convertToDMS, convertToHMS -from base.fitsHeader import getCoordinatesFromHeader, getSQMFromHeader -from base.fitsHeader import getExposureFromHeader, getScaleFromHeader +from logic.fits.fitsFunction import getCoordinatesFromHeader, getSQMFromHeader +from logic.fits.fitsFunction import getExposureFromHeader, getScaleFromHeader from gui.utilities import toolsQtWidget from gui.utilities.slewInterface import SlewInterface from gui.widgets import image_ui diff --git a/mw4/logic/camera/camera.py b/mw4/logic/camera/camera.py index c2ed7fad2..a137b980b 100755 --- a/mw4/logic/camera/camera.py +++ b/mw4/logic/camera/camera.py @@ -27,7 +27,7 @@ # local imports from gui.utilities.toolsQtWidget import sleepAndEvents from base.driverDataClass import Signals -from base.fitsHeader import writeHeaderCamera, writeHeaderPointing +from logic.fits.fitsFunction import writeHeaderCamera, writeHeaderPointing from logic.camera.cameraIndi import CameraIndi from logic.camera.cameraAlpaca import CameraAlpaca if platform.system() == 'Windows': diff --git a/mw4/logic/fits/__init__.py b/mw4/logic/fits/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/mw4/base/fitsHeader.py b/mw4/logic/fits/fitsFunction.py similarity index 69% rename from mw4/base/fitsHeader.py rename to mw4/logic/fits/fitsFunction.py index 36879804d..b3b5ee61f 100755 --- a/mw4/base/fitsHeader.py +++ b/mw4/logic/fits/fitsFunction.py @@ -16,11 +16,12 @@ ########################################################### # standard libraries import logging +from pathlib import Path # external packages import numpy as np -from skyfield.api import Angle from astropy.io import fits +from skyfield.units import Angle # local import from base.transform import JNowToJ2000 @@ -31,6 +32,13 @@ log = logging.getLogger() +def getImageHeader(imagePath: Path) -> fits.Header: + """ + """ + with fits.open(imagePath) as HDU: + return HDU[0].header + + def getCoordinatesFromHeader(header: fits.Header) -> [Angle, Angle]: """ """ @@ -90,8 +98,7 @@ def getScaleFromHeader(header: fits.Header) -> float: focalLength = float(header.get('FOCALLEN', 0)) binning = float(header.get('XBINNING', 0)) pixelSize = max(float(header.get('XPIXSZ', 0)), - float(header.get('PIXSIZE1', 0)), - ) + float(header.get('PIXSIZE1', 0))) hasAlternatives = focalLength and binning and pixelSize if hasScale: @@ -103,6 +110,15 @@ def getScaleFromHeader(header: fits.Header) -> float: return scale +def getHintFromImageFile(imagePath: Path) -> [Angle, Angle, float]: + """ + """ + header = getImageHeader(imagePath) + raHint, decHint = getCoordinatesFromHeader(header) + scaleHint = getScaleFromHeader(header) + return raHint, decHint, scaleHint + + def getCoordinatesFromWCSHeader(header: fits.Header) -> [Angle, Angle]: """ """ @@ -165,3 +181,50 @@ def writeHeaderPointing(header: fits.Header, camera) -> fits.Header: header.append(('RA', ra._degrees, 'Float value in degree')) header.append(('DEC', dec.degrees, 'Float value in degree')) return header + + +def writeSolutionToHeader(header: fits.Header, solution: dict) -> fits.Header: + """ + """ + header.append(('RA', solution['raJ2000S']._degrees, 'MW4 - processed')) + header.append(('DEC', solution['decJ2000S'].degrees, 'MW4 - processed')) + header.append(('SCALE', solution['scaleS'], 'MW4 - processed')) + header.append(('PIXSCALE', solution['scaleS'], 'MW4 - processed')) + header.append(('ANGLE', solution['angleS'].degrees, 'MW4 - processed')) + header.append(('MIRRORED', solution['mirroredS'], 'MW4 - processed')) + return header + + +def updateImageFileHeaderWithSolution(imagePath: Path, solution: dict) -> fits.Header: + """ + """ + with fits.open(imagePath, mode='update', output_verify='silentfix+warn') as HDU: + HDU[0].header = writeSolutionToHeader(HDU[0].header, solution) + + +def getSolutionFromWCSHeader(wcsHeader: fits.Header, imageHeader: fits.Header) -> dict: + """ + CRVAL1 and CRVAL2 give the center coordinate as right ascension and + declination or longitude and latitude in decimal degrees. + """ + raJ2000 = convertToAngle(wcsHeader.get('CRVAL1', 0), isHours=True) + decJ2000 = convertToAngle(wcsHeader.get('CRVAL2', 0), isHours=False) + + angle, scale, mirrored = calcAngleScaleFromWCSHeader(header=wcsHeader) + raMount, decMount = getCoordinatesFromHeader(header=imageHeader) + + deltaRA_raw = raJ2000._degrees - raMount._degrees + deltaDEC_raw = decJ2000.degrees - decMount.degrees + error = np.sqrt(np.square(deltaRA_raw) + np.square(deltaDEC_raw)) + + solution = { + 'raJ2000S': raJ2000, + 'decJ2000S': decJ2000, + 'errorRA_S': Angle(degrees=deltaRA_raw), + 'errorDEC_S': Angle(degrees=deltaDEC_raw), + 'angleS': angle, + 'scaleS': scale, + 'errorRMS_S': error, + 'mirroredS': mirrored, + } + return solution diff --git a/mw4/logic/plateSolve/astap.py b/mw4/logic/plateSolve/astap.py index c16cb82b6..0279d153c 100755 --- a/mw4/logic/plateSolve/astap.py +++ b/mw4/logic/plateSolve/astap.py @@ -27,9 +27,8 @@ # external packages # local imports -from logic.plateSolve.fitsFunctions import getSolutionFromWCSHeader -from logic.plateSolve.fitsFunctions import updateImageFileHeaderWithSolution -from logic.plateSolve.fitsFunctions import getImageHeader +from logic.fits.fitsFunction import getSolutionFromWCSHeader, getImageHeader, \ + updateImageFileHeaderWithSolution class ASTAP(object): diff --git a/mw4/logic/plateSolve/astrometry.py b/mw4/logic/plateSolve/astrometry.py index ee6fa8c21..cc69ba875 100755 --- a/mw4/logic/plateSolve/astrometry.py +++ b/mw4/logic/plateSolve/astrometry.py @@ -28,9 +28,8 @@ # local imports from mountcontrol import convert -from logic.plateSolve.fitsFunctions import getSolutionFromWCSHeader -from logic.plateSolve.fitsFunctions import updateImageFileHeaderWithSolution -from logic.plateSolve.fitsFunctions import getImageHeader, readImageHeaderHintData +from logic.fits.fitsFunction import getSolutionFromWCSHeader, getImageHeader, \ + getHintFromHeader, updateImageFileHeaderWithSolution class Astrometry(object): @@ -181,7 +180,7 @@ def solve(self, imagePath: Path, updateHeader: bool) -> dict: self.result['message'] = 'image2xy failed' return result - raHint, decHint, scaleHint = readImageHeaderHintData(imagePath=imagePath) + raHint, decHint, scaleHint = getHintFromHeader(imagePath=imagePath) searchRatio = 1.1 ra = convert.convertToHMS(raHint) dec = convert.convertToDMS(decHint) diff --git a/mw4/logic/plateSolve/fitsFunctions.py b/mw4/logic/plateSolve/fitsFunctions.py deleted file mode 100644 index 3438bc798..000000000 --- a/mw4/logic/plateSolve/fitsFunctions.py +++ /dev/null @@ -1,90 +0,0 @@ -############################################################ -# -*- coding: utf-8 -*- -# -# # # # # # # -# ## ## # ## # # -# # # # # # # # # # # -# # ## # ## ## ###### -# # # # # # # -# -# Python-based Tool for interaction with the 10micron mounts -# GUI with PySide for python -# -# written in python3, (c) 2019-2024 by mworion -# Licence APL2.0 -# -########################################################### -# standard libraries -from pathlib import Path - -# external packages -from astropy.io import fits -from skyfield.api import Angle -import numpy as np - -# local imports -from mountcontrol.convert import convertToAngle -from base.fitsHeader import getCoordinatesFromHeader, getScaleFromHeader, calcAngleScaleFromWCSHeader - - -def getSolutionFromWCSHeader(wcsHeader: fits.Header, imageHeader: fits.Header) -> dict: - """ - CRVAL1 and CRVAL2 give the center coordinate as right ascension and - declination or longitude and latitude in decimal degrees. - """ - raJ2000 = convertToAngle(wcsHeader.get('CRVAL1', 0), isHours=True) - decJ2000 = convertToAngle(wcsHeader.get('CRVAL2', 0), isHours=False) - - angle, scale, mirrored = calcAngleScaleFromWCSHeader(header=wcsHeader) - raMount, decMount = getCoordinatesFromHeader(header=imageHeader) - - deltaRA_raw = raJ2000._degrees - raMount._degrees - deltaDEC_raw = decJ2000.degrees - decMount.degrees - error = np.sqrt(np.square(deltaRA_raw) + np.square(deltaDEC_raw)) - - solution = { - 'raJ2000S': raJ2000, - 'decJ2000S': decJ2000, - 'errorRA_S': Angle(degrees=deltaRA_raw), - 'errorDEC_S': Angle(degrees=deltaDEC_raw), - 'angleS': angle, - 'scaleS': scale, - 'errorRMS_S': error, - 'mirroredS': mirrored, - } - return solution - - -def writeSolutionToHeader(header: fits.Header, solution: dict) -> fits.Header: - """ - """ - header.append(('RA', solution['raJ2000S']._degrees, 'MW4 - processed')) - header.append(('DEC', solution['decJ2000S'].degrees, 'MW4 - processed')) - header.append(('SCALE', solution['scaleS'], 'MW4 - processed')) - header.append(('PIXSCALE', solution['scaleS'], 'MW4 - processed')) - header.append(('ANGLE', solution['angleS'].degrees, 'MW4 - processed')) - header.append(('MIRRORED', solution['mirroredS'], 'MW4 - processed')) - return header - - -def getImageHeader(imagePath: Path) -> fits.Header: - """ - """ - with fits.open(imagePath) as HDU: - return HDU[0].header - - -def readImageHeaderHintData(imagePath: Path) -> [Angle, Angle, float]: - """ - """ - header = getImageHeader(imagePath) - raHint, decHint = getCoordinatesFromHeader(header) - scaleHint = getScaleFromHeader(header) - return raHint, decHint, scaleHint - - -def updateImageFileHeaderWithSolution(imagePath: Path, solution: dict) -> fits.Header: - """ - """ - with fits.open(imagePath, mode='update', output_verify='silentfix+warn') as HDU: - HDU[0].header = writeSolutionToHeader(HDU[0].header, solution) diff --git a/mw4/logic/plateSolve/watney.py b/mw4/logic/plateSolve/watney.py index 537b45d52..eeb67c3ec 100755 --- a/mw4/logic/plateSolve/watney.py +++ b/mw4/logic/plateSolve/watney.py @@ -26,9 +26,8 @@ # external packages # local imports -from logic.plateSolve.fitsFunctions import getSolutionFromWCSHeader -from logic.plateSolve.fitsFunctions import updateImageFileHeaderWithSolution -from logic.plateSolve.fitsFunctions import getImageHeader +from logic.fits.fitsFunction import getSolutionFromWCSHeader, getImageHeader, \ + updateImageFileHeaderWithSolution class Watney(object): diff --git a/tests/unit_tests/logic/camera/test_cameraAlpaca.py b/tests/unit_tests/logic/camera/test_cameraAlpaca.py index 9abce5412..63bd0d41e 100755 --- a/tests/unit_tests/logic/camera/test_cameraAlpaca.py +++ b/tests/unit_tests/logic/camera/test_cameraAlpaca.py @@ -16,7 +16,6 @@ ########################################################### # standard libraries import pytest -import astropy import unittest.mock as mock # external packages @@ -27,7 +26,6 @@ from tests.unit_tests.unitTestAddOns.baseTestApp import App from logic.camera.camera import Camera from logic.camera.cameraAlpaca import CameraAlpaca -from base.driverDataClass import Signals from base.loggerMW import setupLogging setupLogging() diff --git a/tests/unit_tests/base/test_fitsHeader.py b/tests/unit_tests/logic/fits/test_fitsFunctions.py similarity index 56% rename from tests/unit_tests/base/test_fitsHeader.py rename to tests/unit_tests/logic/fits/test_fitsFunctions.py index 446eef1fa..f73066039 100755 --- a/tests/unit_tests/base/test_fitsHeader.py +++ b/tests/unit_tests/logic/fits/test_fitsFunctions.py @@ -16,24 +16,38 @@ ########################################################### # standard libraries import pytest +import unittest.mock as mock # external packages from astropy.io import fits import numpy as np +from skyfield.units import Angle # local import from tests.unit_tests.unitTestAddOns.baseTestApp import App, Camera -from base.loggerMW import setupLogging -from base.fitsHeader import getCoordinatesFromHeader, getSQMFromHeader -from base.fitsHeader import getExposureFromHeader, getScaleFromHeader -from base.fitsHeader import getCoordinatesFromWCSHeader, calcAngleScaleFromWCSHeader -from base.fitsHeader import writeHeaderCamera, writeHeaderPointing -setupLogging() +import logic +from logic.fits.fitsFunction import getImageHeader, getCoordinatesFromHeader +from logic.fits.fitsFunction import getSQMFromHeader, getExposureFromHeader +from logic.fits.fitsFunction import getScaleFromHeader, getHintFromImageFile +from logic.fits.fitsFunction import getCoordinatesFromWCSHeader, calcAngleScaleFromWCSHeader +from logic.fits.fitsFunction import writeHeaderCamera, writeHeaderPointing +from logic.fits.fitsFunction import updateImageFileHeaderWithSolution +from logic.fits.fitsFunction import getSolutionFromWCSHeader + + +@pytest.fixture(autouse=True, scope='module') +def function(): + pass -@pytest.fixture(autouse=True, scope='function') -def module_setup_teardown(): - pass +def test_getImageHeader_1(): + hdu = fits.HDUList() + hdu.append(fits.PrimaryHDU()) + with mock.patch.object(fits, + 'open', + return_value=hdu): + header = getImageHeader('test') + assert header == hdu[0].header def test_getCoordinatesFromHeader_1(): @@ -56,24 +70,12 @@ def test_getCoordinatesFromHeader_2(): assert dec.degrees == 45.0 -def test_getCoordinatesFromWCSHeader_1(): - header = { - 'CRVAL1': '180', - 'CRVAL2': '180.5', - } - ra, dec = getCoordinatesFromWCSHeader(header=header) - assert ra.hours == 12.0 - assert dec.degrees == 180.5 - - -def test_getCoordinatesFromWCSHeader_2(): +def test_getSQMFromHeader_0(): header = { - 'CRVAL1': 180, - 'CRVAL2': 180.5, + 'test': '17.0', } - ra, dec = getCoordinatesFromWCSHeader(header=header) - assert ra.hours == 12.0 - assert dec.degrees == 180.5 + sqm = getSQMFromHeader(header=header) + assert sqm == 0 def test_getSQMFromHeader_1(): @@ -110,6 +112,14 @@ def test_getSQMFromHeader_4(): assert sqm == 17.0 +def test_getExposureFromHeader_0(): + header = { + 'test': '17.0', + } + exposure = getExposureFromHeader(header=header) + assert exposure == 0 + + def test_getExposureFromHeader_1(): header = { 'EXPOSURE': '17.0', @@ -186,6 +196,31 @@ def test_getScaleFromHeader_6(): assert scale == 0 +def test_getHintFromHeader_1(): + with mock.patch.object(logic.fits.fitsFunction, + 'getImageHeader'): + with mock.patch.object(logic.fits.fitsFunction, + 'getCoordinatesFromHeader', + return_value=(Angle(hours=12), Angle(degrees=45))): + with mock.patch.object(logic.fits.fitsFunction, + 'getScaleFromHeader', + return_value=1): + ra, dec, scale = getHintFromImageFile('test') + assert ra.hours == 12.0 + assert dec.degrees == 45.0 + assert scale == 1 + + +def test_getCoordinatesFromWCSHeader_1(): + header = { + 'CRVAL1': 180, + 'CRVAL2': 45, + } + ra, dec = getCoordinatesFromWCSHeader(header=header) + assert ra.hours == 12.0 + assert dec.degrees == 45.0 + + def test_calcAngleScaleFromWCSHeader_1(): header = { 'CD1_1': 0.0002777777777777778, @@ -217,6 +252,48 @@ def test_writeHeaderPointing(): camera.app = App() camera.obsSite = camera.app.mount.obsSite writeHeaderPointing(header, camera) - +def test_updateImageFileHeaderWithSolution_1(): + hdu = fits.HDUList() + hdu.append(fits.PrimaryHDU()) + header = hdu[0].header + solution = { + 'raJ2000S': Angle(hours=12), + 'decJ2000S': Angle(degrees=45), + 'angleS': Angle(degrees=0), + 'scaleS': 0, + 'mirroredS': False, + } + with mock.patch.object(fits, + 'open', + return_value=hdu): + updateImageFileHeaderWithSolution('test', solution) + + +def test_getSolutionFromWCSHeader_1(): + hdu = fits.HDUList() + hdu.append(fits.PrimaryHDU()) + header = hdu[0].header + header.set('CRVAL1', 180.0) + header.set('CRVAL2', 60.0) + solution = getSolutionFromWCSHeader(header, header) + assert solution['raJ2000S'].hours == 12 + assert solution['decJ2000S'].degrees == 60 + assert solution['angleS'].degrees == 0 + assert solution['scaleS'] == 0 + assert not solution['mirroredS'] + + +def test_getSolutionFromWCSHeader_2(): + hdu = fits.HDUList() + hdu.append(fits.PrimaryHDU()) + header = hdu[0].header + header.set('CRVAL1', 180.0) + header.set('CRVAL2', 60.0) + solution = getSolutionFromWCSHeader(header, header) + assert solution['raJ2000S'].hours == 12 + assert solution['decJ2000S'].degrees == 60 + assert solution['angleS'].degrees == 0 + assert solution['scaleS'] == 0 + assert not solution['mirroredS'] diff --git a/tests/unit_tests/logic/plateSolve/t_fitsFunctions.py b/tests/unit_tests/logic/plateSolve/t_fitsFunctions.py deleted file mode 100644 index e8e715cdd..000000000 --- a/tests/unit_tests/logic/plateSolve/t_fitsFunctions.py +++ /dev/null @@ -1,157 +0,0 @@ - - -def test_readFitsData_1(function): - file = 'tests/workDir/image/test1.fit' - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - header['RA'] = 8.0 - header['DEC'] = 45.0 - hdu.writeto(file) - ra, dec, sc = function.readFitsData(file) - assert ra - assert dec - assert sc is None - - -def test_calcAngleScaleFromWCS_1(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - scaleX = 2 - for angleX in range(-180, 180, 1): - phi = np.radians(angleX) - CD11 = scaleX * np.cos(phi) - CD12 = scaleX * np.sin(phi) - header.set('CD1_1', CD11) - header.set('CD1_2', CD12) - angle, scale, flip = function.calcAngleScaleFromWCS(wcsHeader=header) - assert np.round(scale, 0) == scaleX * 3600 - assert np.round(angle, 3) == np.round(angleX, 3) - - -def test_calcAngleScaleFromWCS_2(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - angle, scale, flip = function.calcAngleScaleFromWCS(wcsHeader=header) - assert angle == 0 - assert scale == 0 - - -def test_getSolutionFromWCS_1(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - header.set('CRVAL1', 180.0) - header.set('CRVAL2', 60.0) - solve, header = function.getSolutionFromWCS(fitsHeader=header, - wcsHeader=header) - assert solve['raJ2000S'].hours == 12 - assert solve['decJ2000S'].degrees == 60 - assert solve['angleS'] == 0 - assert solve['scaleS'] == 0 - assert not solve['mirroredS'] - - -def test_getSolutionFromWCS_2(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - header.set('CRVAL1', 180.0) - header.set('CRVAL2', 60.0) - solve, header = function.getSolutionFromWCS(fitsHeader=header, - wcsHeader=header, - updateFits=True) - assert solve['raJ2000S'].hours == 12 - assert solve['decJ2000S'].degrees == 60 - assert solve['angleS'] == 0 - assert solve['scaleS'] == 0 - assert not solve['mirroredS'] - - assert header['RA'] == header['CRVAL1'] - assert header['DEC'] == header['CRVAL2'] - - -def test_getSolutionFromWCS_3(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - header.set('CRVAL1', 180.0) - header.set('CRVAL2', 60.0) - header.set('RA', 180.0) - header.set('DEC', 60.0) - header.set('CTYPE1', 'TAN') - header.set('CTYPE2', 'TAN') - solve, header = function.getSolutionFromWCS(fitsHeader=header, - wcsHeader=header, - updateFits=True) - assert solve['raJ2000S'].hours == 12 - assert solve['decJ2000S'].degrees == 60 - assert solve['angleS'] == 0 - assert solve['scaleS'] == 0 - assert not solve['mirroredS'] - - assert header['RA'] == header['CRVAL1'] - assert header['DEC'] == header['CRVAL2'] - - -def test_getSolutionFromWCS_4(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - header.set('CRVAL1', 180.0) - header.set('CRVAL2', 60.0) - header.set('RA', 180.0) - header.set('DEC', 60.0) - header.set('CTYPE1', 'TAN-SIP') - header.set('CTYPE2', 'TAN-SIP') - solve, header = function.getSolutionFromWCS(fitsHeader=header, - wcsHeader=header, - updateFits=True) - assert solve['raJ2000S'].hours == 12 - assert solve['decJ2000S'].degrees == 60 - assert solve['angleS'] == 0 - assert solve['scaleS'] == 0 - assert not solve['mirroredS'] - - assert header['RA'] == header['CRVAL1'] - assert header['DEC'] == header['CRVAL2'] - - -def test_getSolutionFromWCS_5(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - header = hdu[0].header - header.set('CRVAL1', 180.0) - header.set('CRVAL2', 60.0) - header.set('RA', 180.0) - header.set('DEC', 60.0) - header.set('A_', 60.0) - header.set('B_', 60.0) - header.set('AP_', 60.0) - header.set('BP_', 60.0) - header.set('CTYPE1', 'TAN') - header.set('CTYPE2', 'TAN') - solve, header = function.getSolutionFromWCS(fitsHeader=header, - wcsHeader=header, - updateFits=True) - assert solve['raJ2000S'].hours == 12 - assert solve['decJ2000S'].degrees == 60 - assert solve['angleS'] == 0 - assert solve['scaleS'] == 0 - assert not solve['mirroredS'] - - assert header['RA'] == header['CRVAL1'] - - -def test_getWCSHeader_1(function): - val = function.getWCSHeader() - assert val is None - - -def test_getWCSHeader_2(function): - hdu = fits.HDUList() - hdu.append(fits.PrimaryHDU()) - val = function.getWCSHeader(wcsHDU=hdu) - assert val diff --git a/tests/unit_tests/logic/plateSolve/test_astrometry.py b/tests/unit_tests/logic/plateSolve/test_astrometry.py index 037db65d0..7a18fe95f 100755 --- a/tests/unit_tests/logic/plateSolve/test_astrometry.py +++ b/tests/unit_tests/logic/plateSolve/test_astrometry.py @@ -186,7 +186,7 @@ def test_solve_2(function): 'isfile', return_value=False): with mock.patch.object(logic.plateSolve.astrometry, - 'readImageHeaderHintData', + 'getHintFromHeader', return_value=(0, 0, 0)): res = function.solve('tests/workDir/image/m51.fit', False) assert not res['success'] @@ -203,7 +203,7 @@ def test_solve_3(function): 'isfile', return_value=False): with mock.patch.object(logic.plateSolve.astrometry, - 'readImageHeaderHintData', + 'getHintFromHeader', return_value=(0, 0, 0)): res = function.solve('tests/workDir/image/m51.fit', False) assert not res['success'] @@ -224,7 +224,7 @@ def test_solve_4(function): with mock.patch.object(os, 'remove'): with mock.patch.object(logic.plateSolve.astrometry, - 'readImageHeaderHintData', + 'getHintFromHeader', return_value=(0, 0, 0)): with mock.patch.object(logic.plateSolve.astrometry, 'getImageHeader'):