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 yaml 

7from marshall_webapp.utKit import utKit 

8from fundamentals import tools 

9from os.path import expanduser 

10from dryxPyramid.utKit import BaseTest 

11home = expanduser("~") 

12 

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

14# settingsFile = packageDirectory + "/test_settings.yaml" 

15settingsFile = home + "/git_repos/_misc_/settings/marshall/test_settings.yaml" 

16 

17exists = os.path.exists(settingsFile) 

18if exists: 

19 su = tools( 

20 arguments={"settingsFile": settingsFile}, 

21 docString=__doc__, 

22 logLevel="DEBUG", 

23 options_first=False, 

24 projectName=None, 

25 defaultSettingsFile=False 

26 ) 

27 arguments, settings, log, dbConn = su.setup() 

28 

29 # SETUP PATHS TO COMMON DIRECTORIES FOR TEST DATA 

30 moduleDirectory = os.path.dirname(__file__) 

31 pathToInputDir = moduleDirectory + "/input/" 

32 pathToOutputDir = moduleDirectory + "/output/" 

33 

34 try: 

35 shutil.rmtree(pathToOutputDir) 

36 except: 

37 pass 

38 # COPY INPUT TO OUTPUT DIR 

39 shutil.copytree(pathToInputDir, pathToOutputDir) 

40 

41 # Recursively create missing directories 

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

43 os.makedirs(pathToOutputDir) 

44 

45 

46class test_views_resources_transients(BaseTest): 

47 

48 def __init__(self, *args, **kwargs): 

49 BaseTest.__init__(self, *args, **kwargs) 

50 

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

52 

53 self.testIni = moduleDirectory + "/../../../test.ini#marshall_webapp" 

54 

55 self.testSettings = settings 

56 self.settings = settings 

57 

58 def test_01_views_resources_transients_post(self): 

59 params = { 

60 "objectName": "TestSource", 

61 "objectImageStamp": "http://thespacedoctor.co.uk/images/thespacedoctor_icon_white_circle.png", 

62 "objectUrl": "http://thespacedoctor.co.uk", 

63 "objectSurvey": "testSurvey", 

64 "objectRa": 155.12595833333333, 

65 "objectDec": -15.178736944444443, 

66 "objectRedshift": 0.34, 

67 "objectMagnitude": 20.3, 

68 "objectDate": 57627.5 

69 } 

70 respsonse = self.testapp.post("/transients", params=params, status=302) 

71 self.assertEqual(respsonse.status_code, 302) 

72 

73 def test_views_resources_transients_gets(self): 

74 params = { 

75 "format": "json", 

76 "sortBy": "currentMagnitudeDate", 

77 "filterOp1": "<", 

78 "filterOp2": "=", 

79 "filterText2": "null", 

80 "filterText1": "with+<strong>decDeg+<+30</strong>+", 

81 "filterValue2": "False", 

82 "filterValue1": "30", 

83 "sortDesc": "True", 

84 "filterBy2": "False", 

85 "filterBy1": "decDeg", 

86 "limit": "100", 

87 "ticketLimit": "10", 

88 "tableLimit": "100", 

89 "pageStart": "0", 

90 "method": "get", 

91 "mwl": "inbox", 

92 } 

93 

94 respsonse = self.testapp.get('/transients', 

95 params=params) 

96 # print(respsonse) 

97 self.assertEqual(respsonse.status_code, 200) 

98 params["format"] = "csv" 

99 respsonse = self.testapp.get('/transients', 

100 params=params) 

101 # print(respsonse) 

102 self.assertEqual(respsonse.status_code, 200) 

103 params["format"] = "plain_table" 

104 respsonse = self.testapp.get('/transients', 

105 params=params) 

106 # print(respsonse) 

107 self.assertEqual(respsonse.status_code, 200) 

108 params["format"] = None 

109 respsonse = self.testapp.get('/transients', 

110 params=params) 

111 # print respsonse 

112 self.assertEqual(respsonse.status_code, 200) 

113 

114 def test_views_resources_transients_downloads(self): 

115 params = { 

116 "format": "json", 

117 "sortBy": "currentMagnitudeDate", 

118 "filterOp1": "null", 

119 "filterOp2": "=", 

120 "filterText2": "null", 

121 "filterText1": "null", 

122 "filterValue2": "False", 

123 "filterValue1": "null", 

124 "sortDesc": "True", 

125 "filename": "pessto_marshall_inbox", 

126 "filterBy2": "False", 

127 "filterBy1": "null", 

128 "limit": "100", 

129 "ticketLimit": "10", 

130 "tableLimit": "100", 

131 "pageStart": "0", 

132 "method": "get", 

133 "mwl": "inbox", 

134 } 

135 

136 respsonse = self.testapp.get('/transients', 

137 params=params) 

138 # print(respsonse) 

139 self.assertEqual(respsonse.status_code, 200) 

140 params["format"] = "csv" 

141 respsonse = self.testapp.get('/transients', 

142 params=params) 

143 # print(respsonse) 

144 self.assertEqual(respsonse.status_code, 200) 

145 params["format"] = "plain_table" 

146 respsonse = self.testapp.get('/transients', 

147 params=params) 

148 # print(respsonse) 

149 self.assertEqual(respsonse.status_code, 200) 

150 params["format"] = None 

151 respsonse = self.testapp.get('/transients', 

152 params=params) 

153 # print respsonse 

154 self.assertEqual(respsonse.status_code, 200) 

155 

156 def test_views_resources_transients_search(self): 

157 

158 respsonse = self.testapp.get('/transients', 

159 params={"search": "TestSource", "format": "plain_table"}) 

160 # print(respsonse) 

161 self.assertEqual(respsonse.status_code, 200) 

162 

163 def test_views_resources_transients_function_exception(self): 

164 

165 from marshall_webapp.views import views_resources_transients 

166 try: 

167 this = transients_view( 

168 log=log, 

169 settings=settings, 

170 fakeKey="break the code" 

171 ) 

172 this.get() 

173 assert False 

174 except Exception as e: 

175 assert True 

176 print(str(e))