Hide keyboard shortcuts

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("~") 

15 

16packageDirectory = utKit("").get_project_root() 

17settingsFile = packageDirectory + "/test_settings.yaml" 

18# settingsFile = home + \ 

19# "/git_repos/_misc_/settings/soxspipe/test_settings.yaml" 

20 

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() 

30 

31# SETUP PATHS TO COMMON DIRECTORIES FOR TEST DATA 

32moduleDirectory = os.path.dirname(__file__) 

33pathToInputDir = moduleDirectory + "/input/" 

34pathToOutputDir = moduleDirectory + "/output/" 

35 

36try: 

37 shutil.rmtree(pathToOutputDir) 

38except: 

39 pass 

40# COPY INPUT TO OUTPUT DIR 

41shutil.copytree(pathToInputDir, pathToOutputDir) 

42 

43# Recursively create missing directories 

44if not os.path.exists(pathToOutputDir): 

45 os.makedirs(pathToOutputDir) 

46 

47 

48# xt-setup-unit-testing-files-and-folders 

49# xt-utkit-refresh-database 

50 

51class test_filenamer(unittest.TestCase): 

52 

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) 

77 

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"] 

85 

86 filename = filenamer( 

87 log=log, 

88 frame=frame, 

89 settings=settings 

90 ) 

91 print(filename) 

92 

93 def test_filenamer_function_exception(self): 

94 

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)) 

107 

108 # x-print-testpage-for-pessto-marshall-web-object 

109 

110 # x-class-to-test-named-worker-function