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("~")
13packageDirectory = utKit("").get_project_root()
14# settingsFile = packageDirectory + "/test_settings.yaml"
15settingsFile = home + "/git_repos/_misc_/settings/marshall/test_settings.yaml"
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()
29 # SETUP PATHS TO COMMON DIRECTORIES FOR TEST DATA
30 moduleDirectory = os.path.dirname(__file__)
31 pathToInputDir = moduleDirectory + "/input/"
32 pathToOutputDir = moduleDirectory + "/output/"
34 try:
35 shutil.rmtree(pathToOutputDir)
36 except:
37 pass
38 # COPY INPUT TO OUTPUT DIR
39 shutil.copytree(pathToInputDir, pathToOutputDir)
41 # Recursively create missing directories
42 if not os.path.exists(pathToOutputDir):
43 os.makedirs(pathToOutputDir)
46class test_views_resources_transients(BaseTest):
48 def __init__(self, *args, **kwargs):
49 BaseTest.__init__(self, *args, **kwargs)
51 # xt-setup-unit-testing-files-and-folders
53 self.testIni = moduleDirectory + "/../../../test.ini#marshall_webapp"
55 self.testSettings = settings
56 self.settings = settings
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)
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 }
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)
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 }
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)
156 def test_views_resources_transients_search(self):
158 respsonse = self.testapp.get('/transients',
159 params={"search": "TestSource", "format": "plain_table"})
160 # print(respsonse)
161 self.assertEqual(respsonse.status_code, 200)
163 def test_views_resources_transients_function_exception(self):
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))