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