def post(self): upload_files = self.get_uploads() used_methods = list() for method in test_methods: if self.request.get(method): used_methods.append(method) inputs = list() for i in string.replace(self.request.get('test_input'), '\r', '').split(';'): inputs.append(db.Text(i)) outputs = list() for o in string.replace(self.request.get('output'), '\r', '').split(';'): outputs.append(db.Text(o)) if len(inputs) != len(outputs): self.write("Error: Number of inputs did not match number of outputs.") else: keywords = string.replace(self.request.get('keywords'), '\r', '').split(';') checker = ExerciseChecker( test_methods=used_methods, inputs=inputs, outputs=outputs, keywords=keywords) checker.put() start_code=string.replace(self.request.get('start_code'), '\r', '') description = self.request.get('description') description = string.replace(description, '\r', '') description = string.replace(description, '\n', '<br>') exercise = Exercise(name=self.request.get('name'), url=self.request.get('url'), description=description, start_code=start_code, checker=checker) if len(upload_files): exercise.flowchart = upload_files[0].key() exercise.put() time.sleep(5) self.redirect('/exercises/'+exercise.url)