Coverage for soxspipe/commonutils/tests/test_filenamer.py : 91%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from __future__ import print_function
2from builtins import str
3import os
4import unittest
5import shutil
6import unittest
7import yaml
8from soxspipe.utKit import utKit
9from fundamentals import tools
10from os.path import expanduser
11from astropy.io import fits
12from astropy.nddata import CCDData
13from astropy import units as u
14home = expanduser("~")
16packageDirectory = utKit("").get_project_root()
17settingsFile = packageDirectory + "/test_settings.yaml"
18# settingsFile = home + \
19# "/git_repos/_misc_/settings/soxspipe/test_settings.yaml"
21su = tools(
22 arguments={"settingsFile": settingsFile},
23 docString=__doc__,
24 logLevel="DEBUG",
25 options_first=False,
26 projectName=None,
27 defaultSettingsFile=False
28)
29arguments, settings, log, dbConn = su.setup()
31# SETUP PATHS TO COMMON DIRECTORIES FOR TEST DATA
32moduleDirectory = os.path.dirname(__file__)
33pathToInputDir = moduleDirectory + "/input/"
34pathToOutputDir = moduleDirectory + "/output/"
36try:
37 shutil.rmtree(pathToOutputDir)
38except:
39 pass
40# COPY INPUT TO OUTPUT DIR
41shutil.copytree(pathToInputDir, pathToOutputDir)
43# Recursively create missing directories
44if not os.path.exists(pathToOutputDir):
45 os.makedirs(pathToOutputDir)
48# xt-setup-unit-testing-files-and-folders
49# xt-utkit-refresh-database
51class test_filenamer(unittest.TestCase):
53 def test_filenamer_function(self):
54 from soxspipe.commonutils import filenamer
55 utDir = settings["test-data-root"]
56 subDirs = [
57 "create_dispersion_map",
58 "detect_continuum",
59 "xshooter-mbias/uvb/1x1/fast_read",
60 "xshooter-mbias/uvb/1x1/slow_read",
61 "xshooter-mbias/vis",
62 "xshooter-mdark/nir/240s",
63 "xshooter-detect-order-edges",
64 "xshooter-mflat/uvb/qflat",
65 "xshooter-mflat/nir/calibrated",
66 "xshooter-order-centres/uvb/",
67 "xshooter-disp-solution/nir/"
68 ]
69 filestoname = []
70 for dirr in subDirs:
71 # GENERATE A LIST OF FILE PATHS
72 pathToDirectory = f"{utDir}/{dirr}"
73 for d in os.listdir(pathToDirectory):
74 filepath = os.path.join(pathToDirectory, d)
75 if os.path.isfile(filepath) and os.path.splitext(filepath)[1] == ".fits":
76 filestoname.append(filepath)
78 for filepath in filestoname:
79 print(f"\nORIG: {filepath}")
80 # with fits.open(filepath, "readonly") as hdul:
81 frame = CCDData.read(filepath, hdu=0, unit=u.electron, hdu_uncertainty='ERRS',
82 hdu_mask='QUAL', hdu_flags='FLAGS', key_uncertainty_type='UTYPE')
83 if "SOXSPIPE PRE" in frame.header:
84 frame.header["SXSPRE"] = frame.header["SOXSPIPE PRE"]
86 filename = filenamer(
87 log=log,
88 frame=frame,
89 settings=settings
90 )
91 print(filename)
93 def test_filenamer_function_exception(self):
95 from soxspipe.commonutils import filenamer
96 try:
97 this = filenamer(
98 log=log,
99 settings=settings,
100 fakeKey="break the code"
101 )
102 this.get()
103 assert False
104 except Exception as e:
105 assert True
106 print(str(e))
108 # x-print-testpage-for-pessto-marshall-web-object
110 # x-class-to-test-named-worker-function