Mercurial > hg > env-test-daniele
comparison cherryFxTest.py @ 12:8a595d55e245
Changed back to lists from radio buttons. Now test runs and logs results
author | Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk> |
---|---|
date | Tue, 12 Mar 2013 15:11:39 +0000 |
parents | 15260ae0d6bc |
children | 8261089e6f04 |
comparison
equal
deleted
inserted
replaced
11:15260ae0d6bc | 12:8a595d55e245 |
---|---|
13 from email import Encoders | 13 from email import Encoders |
14 | 14 |
15 from pprint import pprint | 15 from pprint import pprint |
16 | 16 |
17 PATH = os.path.abspath(os.path.dirname(__file__)) | 17 PATH = os.path.abspath(os.path.dirname(__file__)) |
18 | |
19 #audiodir = './audio' | |
20 #cherrypy.session['fxs'] = [cherrypy.session['f'] for cherrypy.session['f'] in os.listdir(audiodir) if os.path.isdir(os.path.join(audiodir, cherrypy.session['f']))] | |
21 #cherrypy.session['fxs'].remove('dry') | |
22 #print cherrypy.session['fxs'] | |
23 | 18 |
24 class Root(object): pass | 19 class Root(object): pass |
25 | |
26 | 20 |
27 class HomePage: | 21 class HomePage: |
28 def index(self): | 22 def index(self): |
29 | 23 |
30 return "This is the home page..." | 24 return "This is the home page..." |
32 index.exposed = True | 26 index.exposed = True |
33 | 27 |
34 class TestPage: | 28 class TestPage: |
35 | 29 |
36 def getAASPFiles(self): | 30 def getAASPFiles(self): |
37 audioDir = '/Users/daniele/Documents/AASPChallenge/survey/AASPAudio' | 31 audioDir = './AASPAudio' |
38 cherrypy.session['cats'] = [cherrypy.session['f'] for cherrypy.session['f'] in os.listdir(audioDir) if os.path.isdir(os.path.join(audioDir,cherrypy.session['f']))] | 32 cherrypy.session['cats'] = [cherrypy.session['f'] for cherrypy.session['f'] in os.listdir(audioDir) if os.path.isdir(os.path.join(audioDir,cherrypy.session['f']))] |
39 print cherrypy.session['cats'] | 33 #print cherrypy.session['cats'] |
40 | 34 |
41 def index(self): | 35 def index(self): |
42 TestPage.getAASPFiles(self) | 36 TestPage.getAASPFiles(self) |
43 cherrypy.session['sid'] = None | 37 cherrypy.session['sid'] = None |
44 | 38 |
59 cherrypy.session['audio'] = None | 53 cherrypy.session['audio'] = None |
60 cherrypy.session['page'] = 0 | 54 cherrypy.session['page'] = 0 |
61 cherrypy.session['pages'] = 6 | 55 cherrypy.session['pages'] = 6 |
62 cherrypy.session['userinfobox'] = None | 56 cherrypy.session['userinfobox'] = None |
63 cherrypy.session['ts'] = None | 57 cherrypy.session['ts'] = None |
64 #return ''' | |
65 # <p> | |
66 # <a href="/test/">start test</a> | |
67 # </p>''' | |
68 | |
69 #take 2 examples for each effect | |
70 | 58 |
71 cherrypy.session['audio'] = [] | 59 cherrypy.session['audio'] = [] |
72 | 60 |
73 # get effected files: | |
74 cherrypy.session['audio'] = [] | 61 cherrypy.session['audio'] = [] |
75 for cherrypy.session['cat'] in cherrypy.session['cats']: | 62 for cherrypy.session['cat'] in cherrypy.session['cats']: |
76 cherrypy.session['dirlist'] = os.listdir('/Users/daniele/Documents/AASPChallenge/survey/AASPAudio/%s/'%cherrypy.session['cat']) | 63 cherrypy.session['dirlist'] = os.listdir('./AASPAudio/%s/'%cherrypy.session['cat']) |
77 for cherrypy.session['item'] in cherrypy.session['dirlist']: | 64 for cherrypy.session['item'] in cherrypy.session['dirlist']: |
78 if cherrypy.session['item'].split('.')[-1] == 'wav': | 65 if cherrypy.session['item'].split('.')[-1] == 'wav': |
79 cherrypy.session['audio'].append(cherrypy.session['cat'] + '/' + cherrypy.session['item'].split('.')[0]) | 66 cherrypy.session['audio'].append(cherrypy.session['cat'] + '/' + cherrypy.session['item'].split('.')[0]) |
80 | 67 |
81 | |
82 #print TestPage.audio | |
83 random.shuffle(cherrypy.session['audio']) | 68 random.shuffle(cherrypy.session['audio']) |
84 | 69 |
85 print "NUMBER OF TESTS:" | 70 #print "NUMBER OF TESTS:" |
86 print len(cherrypy.session['audio']) | 71 #print len(cherrypy.session['audio']) |
87 | 72 |
88 cherrypy.session['sid'] = cherrypy.session.get_session_path().split('/')[1] | 73 cherrypy.session['sid'] = cherrypy.session.get_session_path().split('/')[1] |
89 print cherrypy.session['sid'] | 74 #print cherrypy.session['sid'] |
90 | 75 #pprint(cherrypy.session['audio']) |
91 #print cherrypy.session['audio'] | |
92 pprint(cherrypy.session['audio']) | |
93 | |
94 | 76 |
95 TestPage.outfileid = '%s' %cherrypy.session['sid'] | 77 TestPage.outfileid = '%s' %cherrypy.session['sid'] |
96 ida = 0 | 78 ida = 0 |
97 while os.path.exists('./sessions/%s/%s.txt' %(cherrypy.session['sid'], TestPage.outfileid)): | 79 while os.path.exists('./sessions/%s/%s.txt' %(cherrypy.session['sid'], TestPage.outfileid)): |
98 TestPage.outfileid += '_%s' %ida | 80 TestPage.outfileid += '_%s' %ida |
102 return welcome_templ %cherrypy.session['sid'] | 84 return welcome_templ %cherrypy.session['sid'] |
103 | 85 |
104 | 86 |
105 def doStart(self, pageId, sessionId, startButton, uinfo00=None, uinfo01=None, info1=None): | 87 def doStart(self, pageId, sessionId, startButton, uinfo00=None, uinfo01=None, info1=None): |
106 | 88 |
107 | |
108 | |
109 if cherrypy.session['page'] != int(pageId): | 89 if cherrypy.session['page'] != int(pageId): |
110 print "################################# BACK BUTTON PRESSED #################################" | 90 print "################################# BACK BUTTON PRESSED #################################" |
111 | 91 |
112 | 92 |
113 if cherrypy.session['sid'] != str(sessionId): | 93 if cherrypy.session['sid'] != str(sessionId): |
114 return TestPage.sessionError(self) | 94 return TestPage.sessionError(self) |
115 #cherrypy.session['page'] = int(pageId) | |
116 | |
117 | |
118 | |
119 | 95 |
120 cherrypy.session['userinfobox'] = str([str(uinfo00), str(uinfo01), int(info1)]) + '\n' | 96 cherrypy.session['userinfobox'] = str([str(uinfo00), str(uinfo01), int(info1)]) + '\n' |
121 cherrypy.session['sessionId'] = sessionId | 97 cherrypy.session['sessionId'] = sessionId |
122 #print "sid:" | |
123 #print TestPage.sid | |
124 #print sessionId | |
125 if cherrypy.session['sid'] != str(cherrypy.session['sessionId']): | 98 if cherrypy.session['sid'] != str(cherrypy.session['sessionId']): |
126 return TestPage.sessionError(self) | 99 return TestPage.sessionError(self) |
127 else: | 100 else: |
128 return TestPage.index2(self) | 101 return TestPage.index2(self) |
129 | 102 |
130 | |
131 | |
132 def index2(self): | 103 def index2(self): |
133 #try: print testvar | 104 |
134 #except: pass | |
135 | |
136 cherrypy.session['page'] = 1 | 105 cherrypy.session['page'] = 1 |
137 cherrypy.session['pages'] = 10 | 106 cherrypy.session['pages'] = 10 |
138 cherrypy.session['tests'] = len(cherrypy.session['audio']) #should be 66 #10 * cherrypy.session['pages'] | 107 cherrypy.session['tests'] = len(cherrypy.session['audio']) |
139 cherrypy.session['results'] = [] | 108 cherrypy.session['results'] = [] |
140 for cherrypy.session['n'] in xrange(cherrypy.session['tests']): cherrypy.session['results'].append([None]) | 109 for cherrypy.session['n'] in xrange(cherrypy.session['tests']): cherrypy.session['results'].append([None]) |
141 | 110 |
142 # create tuple to fill template | |
143 cherrypy.session['ts'] = [] | 111 cherrypy.session['ts'] = [] |
144 for cherrypy.session['k'] in xrange(10): | 112 for cherrypy.session['k'] in xrange(10): |
145 cherrypy.session['ts'].append(0) | 113 cherrypy.session['ts'].append(0) |
146 | 114 |
147 return audiotempl%TestPage.makeTuple(self, 10) | 115 print "################################# %s" %str(cherrypy.session['page']) |
116 return audiotempl%TestPage.makeTuple(self, 10) | |
148 | 117 |
149 def doAttrib(self, pageId, sessionId, submitButton, attribute1=None, attribute2=None, attribute3=None, attribute4=None, attribute5=None, attribute6=None, attribute7=None, attribute8=None, attribute9=None, attribute10=None): | 118 def doAttrib(self, pageId, sessionId, submitButton, attribute1=None, attribute2=None, attribute3=None, attribute4=None, attribute5=None, attribute6=None, attribute7=None, attribute8=None, attribute9=None, attribute10=None): |
150 #print attribute1 + ' ' + attribute2 | |
151 # Error check | |
152 | 119 |
153 print "################################# %s" %pageId | 120 print "################################# %s" %pageId |
154 #_pageId = int(pageId) - 1 | |
155 | 121 |
156 if cherrypy.session['page'] != int(pageId): | 122 if cherrypy.session['page'] != int(pageId): |
157 print "################################# BACK BUTTON PRESSED #################################" | 123 print "################################# BACK BUTTON PRESSED #################################" |
158 | 124 |
159 cherrypy.session['page'] = int(pageId) | 125 cherrypy.session['page'] = int(pageId) |
160 | 126 |
161 if cherrypy.session['sid'] != str(sessionId): | 127 if cherrypy.session['sid'] != str(sessionId): |
162 return TestPage.sessionError(self) | 128 return TestPage.sessionError(self) |
163 | 129 |
164 #store results | |
165 | |
166 cherrypy.session['pos'] = 10 * (cherrypy.session['page'] - 1) | 130 cherrypy.session['pos'] = 10 * (cherrypy.session['page'] - 1) |
167 | 131 |
168 cherrypy.session['results'][cherrypy.session['pos']] = [cherrypy.session['audio'][cherrypy.session['pos']][2].split('/')[-1], int(attribute1)] | 132 cherrypy.session['results'][cherrypy.session['pos']] = [cherrypy.session['audio'][cherrypy.session['pos']].split('/')[-1], int(attribute1)] |
169 cherrypy.session['results'][cherrypy.session['pos']+1] = [cherrypy.session['audio'][cherrypy.session['pos']+1][2].split('/')[-1], int(attribute2)] | 133 cherrypy.session['results'][cherrypy.session['pos']+1] = [cherrypy.session['audio'][cherrypy.session['pos']+1].split('/')[-1], int(attribute2)] |
170 cherrypy.session['results'][cherrypy.session['pos']+2] = [cherrypy.session['audio'][cherrypy.session['pos']+2][2].split('/')[-1], int(attribute3)] | 134 cherrypy.session['results'][cherrypy.session['pos']+2] = [cherrypy.session['audio'][cherrypy.session['pos']+2].split('/')[-1], int(attribute3)] |
171 cherrypy.session['results'][cherrypy.session['pos']+3] = [cherrypy.session['audio'][cherrypy.session['pos']+3][2].split('/')[-1], int(attribute4)] | 135 cherrypy.session['results'][cherrypy.session['pos']+3] = [cherrypy.session['audio'][cherrypy.session['pos']+3].split('/')[-1], int(attribute4)] |
172 cherrypy.session['results'][cherrypy.session['pos']+4] = [cherrypy.session['audio'][cherrypy.session['pos']+4][2].split('/')[-1], int(attribute5)] | 136 cherrypy.session['results'][cherrypy.session['pos']+4] = [cherrypy.session['audio'][cherrypy.session['pos']+4].split('/')[-1], int(attribute5)] |
173 cherrypy.session['results'][cherrypy.session['pos']+5] = [cherrypy.session['audio'][cherrypy.session['pos']+5][2].split('/')[-1], int(attribute6)] | 137 cherrypy.session['results'][cherrypy.session['pos']+5] = [cherrypy.session['audio'][cherrypy.session['pos']+5].split('/')[-1], int(attribute6)] |
174 cherrypy.session['results'][cherrypy.session['pos']+6] = [cherrypy.session['audio'][cherrypy.session['pos']+6][2].split('/')[-1], int(attribute7)] | 138 cherrypy.session['results'][cherrypy.session['pos']+6] = [cherrypy.session['audio'][cherrypy.session['pos']+6].split('/')[-1], int(attribute7)] |
175 cherrypy.session['results'][cherrypy.session['pos']+7] = [cherrypy.session['audio'][cherrypy.session['pos']+7][2].split('/')[-1], int(attribute8)] | 139 cherrypy.session['results'][cherrypy.session['pos']+7] = [cherrypy.session['audio'][cherrypy.session['pos']+7].split('/')[-1], int(attribute8)] |
176 cherrypy.session['results'][cherrypy.session['pos']+8] = [cherrypy.session['audio'][cherrypy.session['pos']+8][2].split('/')[-1], int(attribute9)] | 140 cherrypy.session['results'][cherrypy.session['pos']+8] = [cherrypy.session['audio'][cherrypy.session['pos']+8].split('/')[-1], int(attribute9)] |
177 cherrypy.session['results'][cherrypy.session['pos']+9] = [cherrypy.session['audio'][cherrypy.session['pos']+9][2].split('/')[-1], int(attribute10)] | 141 cherrypy.session['results'][cherrypy.session['pos']+9] = [cherrypy.session['audio'][cherrypy.session['pos']+9].split('/')[-1], int(attribute10)] |
178 | |
179 | |
180 resString = cherrypy.session['ip'] + '\n' + TestPage.outfileid + '\n' + cherrypy.session['userinfobox'] + '\n' + ',\n'.join(str(x) for x in cherrypy.session['results']) | 142 resString = cherrypy.session['ip'] + '\n' + TestPage.outfileid + '\n' + cherrypy.session['userinfobox'] + '\n' + ',\n'.join(str(x) for x in cherrypy.session['results']) |
181 | 143 print resString |
182 #f = open(TestPage.sid_filename, 'w') | 144 |
183 #f.write(resString) | 145 |
184 #f.close() | |
185 | |
186 cherrypy.session.write_data(resString,'%s.txt'%TestPage.outfileid) | 146 cherrypy.session.write_data(resString,'%s.txt'%TestPage.outfileid) |
187 | 147 |
188 #if cherrypy.session['page'] < cherrypy.session['pages'] - 1: | 148 |
149 | |
189 cherrypy.session['page'] += 1 | 150 cherrypy.session['page'] += 1 |
190 # create tuple to fill template | |
191 cherrypy.session['ts'] = [] | 151 cherrypy.session['ts'] = [] |
192 cherrypy.session['npos'] = cherrypy.session['pos'] + 10 | 152 cherrypy.session['npos'] = cherrypy.session['pos'] + 10 |
193 | 153 |
194 if cherrypy.session['page'] < cherrypy.session['pages']: | 154 cherrypy.session['m'] = 10 |
195 cherrypy.session['m'] = 10 | 155 |
196 else: | 156 for cherrypy.session['k'] in xrange(cherrypy.session['m']): cherrypy.session['ts'].append(0) |
197 cherrypy.session['m'] = 6 | 157 #cherrypy.session['ts'].append(cherrypy.session['results'][cherrypy.session['npos']+cherrypy.session['k']]) |
198 | 158 |
199 for cherrypy.session['k'] in xrange(cherrypy.session['m']): | 159 |
200 for cherrypy.session['i'] in xrange(4): | |
201 #print cherrypy.session['k'] | |
202 #print cherrypy.session['i'] | |
203 cherrypy.session['ts'].append(cherrypy.session['results'][cherrypy.session['npos']+cherrypy.session['k']][cherrypy.session['i']+1]) | |
204 | |
205 return audiotempl%TestPage.makeTuple(self, cherrypy.session['m']) | 160 return audiotempl%TestPage.makeTuple(self, cherrypy.session['m']) |
206 | 161 |
207 | 162 #if cherrypy.session['page'] != cherrypy.session['pages'] |
163 # return audiotempl%TestPage.makeTuple(self, cherrypy.session['m']) | |
164 #else | |
165 # cherrypy.session['templ'] = '' | |
166 # for cherrypy.session['n'] in xrange(cherrypy.session['tests']): | |
167 # cherrypy.session['_templ'] = endtempl2 %(cherrypy.session['results'][cherrypy.session['n']][0], cherrypy.session['results'][cherrypy.session['n']][1], cherrypy.session['results'][cherrypy.session['n']][2], cherrypy.session['results'][cherrypy.session['n']][3], cherrypy.session['results'][cherrypy.session['n']][4]) | |
168 # cherrypy.session['templ'] += cherrypy.session['_templ'] | |
169 # try: | |
170 # TestPage.sendMail(self) | |
171 # except: | |
172 # print "WARNING: COULD NOT SEND RESULTS" | |
173 # pass | |
174 # cherrypy.session['sid'] = None | |
175 # return endtempl%cherrypy.session['templ'] | |
176 | |
208 index.exposed = True | 177 index.exposed = True |
209 doAttrib.exposed = True | 178 doAttrib.exposed = True |
210 index2.exposed = True | 179 index2.exposed = True |
211 doStart.exposed = True | 180 doStart.exposed = True |
212 | |
213 | |
214 def doAttrib2(self, pageId, sessionId, submitButton, attribute1=None, attribute2=None, attribute3=None, attribute4=None, attribute5=None, attribute6=None): | |
215 #print attribute1 + ' ' + attribute2 | |
216 # Error check | |
217 | |
218 print "################################# %s" %pageId | |
219 #_pageId = int(pageId) - 1 | |
220 | |
221 if cherrypy.session['page'] != int(pageId): | |
222 print "################################# BACK BUTTON PRESSED #################################" | |
223 | |
224 cherrypy.session['page'] = int(pageId) | |
225 | |
226 if cherrypy.session['sid'] != str(sessionId): | |
227 return TestPage.sessionError(self) | |
228 | |
229 #store results | |
230 | |
231 cherrypy.session['pos'] = 10 * (cherrypy.session['page'] - 1) | |
232 | |
233 cherrypy.session['results'][cherrypy.session['pos']] = [cherrypy.session['audio'][cherrypy.session['pos']][2].split('/')[-1], int(attribute1)] | |
234 cherrypy.session['results'][cherrypy.session['pos']+1] = [cherrypy.session['audio'][cherrypy.session['pos']+1][2].split('/')[-1], int(attribute2)] | |
235 cherrypy.session['results'][cherrypy.session['pos']+2] = [cherrypy.session['audio'][cherrypy.session['pos']+2][2].split('/')[-1], int(attribute3)] | |
236 cherrypy.session['results'][cherrypy.session['pos']+3] = [cherrypy.session['audio'][cherrypy.session['pos']+3][2].split('/')[-1], int(attribute4)] | |
237 cherrypy.session['results'][cherrypy.session['pos']+4] = [cherrypy.session['audio'][cherrypy.session['pos']+4][2].split('/')[-1], int(attribute5)] | |
238 cherrypy.session['results'][cherrypy.session['pos']+5] = [cherrypy.session['audio'][cherrypy.session['pos']+5][2].split('/')[-1], int(attribute6)] | |
239 | |
240 | |
241 | |
242 resString = cherrypy.session['ip'] + '\n' + cherrypy.session['sid'] + '\n' + cherrypy.session['userinfobox'] + '\n' + ',\n'.join(str(x) for x in cherrypy.session['results']) | |
243 | |
244 #f = open(TestPage.sid_filename, 'w') | |
245 #f.write(resString) | |
246 #f.close() | |
247 #os.path.exists() | |
248 | |
249 cherrypy.session.write_data(resString,'%s.txt'%TestPage.outfileid) | |
250 | |
251 | |
252 print cherrypy.session['results'] | |
253 #_results = [] | |
254 | |
255 cherrypy.session['templ'] = '' | |
256 for cherrypy.session['n'] in xrange(cherrypy.session['tests']): | |
257 #print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" | |
258 #print cherrypy.session['n'] | |
259 cherrypy.session['_templ'] = endtempl2 %(cherrypy.session['results'][cherrypy.session['n']][0], cherrypy.session['results'][cherrypy.session['n']][1], cherrypy.session['results'][cherrypy.session['n']][2], cherrypy.session['results'][cherrypy.session['n']][3], cherrypy.session['results'][cherrypy.session['n']][4]) | |
260 cherrypy.session['templ'] += cherrypy.session['_templ'] | |
261 | |
262 #TestPage.pageComplete += 1 | |
263 try: | |
264 #print 'skipping email' | |
265 TestPage.sendMail(self) | |
266 except: | |
267 print "WARNING: COULD NOT SEND RESULTS" | |
268 pass | |
269 cherrypy.session['sid'] = None | |
270 return endtempl%cherrypy.session['templ'] | |
271 #return lastpage | |
272 | |
273 | |
274 index.exposed = True | |
275 doAttrib.exposed = True | |
276 doAttrib2.exposed = True | |
277 index2.exposed = True | |
278 doStart.exposed = True | |
279 | |
280 | 181 |
281 def makeTuple(TestPage, nr): | 182 def makeTuple(TestPage, nr): |
282 cherrypy.session['nr'] = nr | 183 cherrypy.session['nr'] = nr |
283 cherrypy.session['ts'].append(cherrypy.session['page']) | 184 cherrypy.session['ts'].append(cherrypy.session['page']) |
284 cherrypy.session['ts'].append(cherrypy.session['pages']) | 185 cherrypy.session['ts'].append(cherrypy.session['pages']) |
285 for cherrypy.session['k'] in xrange(cherrypy.session['nr']): | 186 for cherrypy.session['k'] in xrange(cherrypy.session['nr']): |
286 pos = 10 * (cherrypy.session['page'] - 1) + cherrypy.session['k'] | 187 pos = 10 * (cherrypy.session['page'] - 1) + cherrypy.session['k'] |
287 #print pos | 188 for n in xrange(3): cherrypy.session['ts'].append(cherrypy.session['audio'][pos]) |
288 cherrypy.session['ts'].append(cherrypy.session['audio'][pos]) | |
289 cherrypy.session['ts'].append(cherrypy.session['page']) | 189 cherrypy.session['ts'].append(cherrypy.session['page']) |
290 cherrypy.session['ts'].append(cherrypy.session['sid']) | 190 cherrypy.session['ts'].append(cherrypy.session['sid']) |
291 cherrypy.session['ts'] = tuple(cherrypy.session['ts']) | 191 cherrypy.session['ts'] = tuple(cherrypy.session['ts']) |
292 print cherrypy.session['ts'] | 192 print cherrypy.session['ts'] |
293 return cherrypy.session['ts'] | 193 return cherrypy.session['ts'] |