def create_message_json(request): if request.user.is_authenticated(): if request.method == 'POST': jsonstring = request.POST["message"] messageDict = json.loads(jsonstring) messageDict["userId"] = request.user.pk message = TalkMessage.fromJson(messageDict) if "audio" in request.FILES: filename = "%s%s.mp4" % ( message.author, message.content_timestamp.strftime("%H%M%S")) file_content = ContentFile(request.FILES['audio'].read()) file_format = os.path.splitext(request.FILES['audio'].name)[-1] message.audio_file.save(filename, file_content) try: print message message.save() print "SAVED" message.push_to_phone(False) print "PUSHED" return HttpResponse( json.dumps({ "messageId": "%s" % message.pk, "authorFullname": message.get_author_string(), "audioUrl": message.get_audio_url() }), 200) except: return HttpResponseServerError( ) # TODO: change the tests and here to respond with HttpResponseBadRequest else: return HttpResponseServerError() else: return HttpResponseForbidden()
def create_message_json(request): if request.user.is_authenticated(): if request.method == 'POST': jsonstring = request.POST["message"] messageDict = json.loads(jsonstring) messageDict["userId"] = request.user.pk message = TalkMessage.fromJson(messageDict) if "audio" in request.FILES: filename = "%s%s.mp4" % (message.author, message.content_timestamp.strftime("%H%M%S")) file_content = ContentFile(request.FILES['audio'].read()) _file_format = os.path.splitext(request.FILES['audio'].name)[-1] message.audio_file.save(filename, file_content) try: print message message.save() print "SAVED" message.push_to_phone(False) print "PUSHED" return HttpResponse(json.dumps( {"messageId": "%s" % message.pk, "authorFullname": message.get_author_string(), "audioUrl": message.get_audio_url() }), 200) except: # pylint: disable=W0702 return HttpResponseServerError() # TODO: change the tests and here to respond with HttpResponseBadRequest else: return HttpResponseServerError() else: return HttpResponseForbidden()
def testEnsureFromJsonCreatesMessage(self): #arrange now = datetime.now() year = now.strftime("%Y") month = now.strftime("%m") day = now.strftime("%d") hour = now.strftime("%H") minutes = now.strftime("%H") sec = now.strftime("%H") timestamp = datetime(int(year), int(month), int(day), int(hour), int(minutes), int(sec)) message = dict(userId=User.objects.all()[0].pk, content="Sting!!!", contentTimestamp=time.mktime(timestamp.timetuple()) * 1000, latitude=1.1, longitude=222.2, accuracy=60) audioFile = 'media/geocamTalk/test/%s/%s/%s/test_ensure_from_json.mp4' % ( year, month, day) self._createFile(filename=audioFile, filesize=100 * 1024) f = open(audioFile, "rb") #act talkMessage = TalkMessage.fromJson(message) talkMessage.audio_file.save(f.name, ContentFile(f.read())) talkMessage.save() #assert self.assertEqual(talkMessage.author.pk, User.objects.all()[0].pk) self.assertEqual(talkMessage.content, "Sting!!!") self.assertEqual(talkMessage.content_timestamp, timestamp) self.assertEqual(talkMessage.latitude, 1.1) self.assertEqual(talkMessage.longitude, 222.2) self.assertEqual(talkMessage.accuracy, 60) self.assertTrue(talkMessage.has_audio()) self.assertEqual(os.path.basename(talkMessage.audio_file.name), os.path.basename(f.name)) f.close() self._clean_test_files(audioFile)
def testEnsureFromJsonCreatesMessage(self): #arrange now = datetime.now() year = now.strftime("%Y") month = now.strftime("%m") day = now.strftime("%d") hour = now.strftime("%H") minutes = now.strftime("%H") sec = now.strftime("%H") timestamp = datetime(int(year), int(month), int(day), int(hour), int(minutes), int(sec)) message = dict( userId=User.objects.all()[0].pk, content="Sting!!!", contentTimestamp=time.mktime(timestamp.timetuple()) * 1000, latitude=1.1, longitude=222.2, accuracy=60) audioFile = 'media/geocamTalk/test/%s/%s/%s/test_ensure_from_json.mp4' % (year, month, day) self._createFile(filename=audioFile, filesize=100 * 1024) f = open(audioFile, "rb") #act talkMessage = TalkMessage.fromJson(message) talkMessage.audio_file.save(f.name, ContentFile(f.read())) talkMessage.save() #assert self.assertEqual(talkMessage.author.pk, User.objects.all()[0].pk) self.assertEqual(talkMessage.content, "Sting!!!") self.assertEqual(talkMessage.content_timestamp, timestamp) self.assertEqual(talkMessage.latitude, 1.1) self.assertEqual(talkMessage.longitude, 222.2) self.assertEqual(talkMessage.accuracy, 60) self.assertTrue(talkMessage.has_audio()) self.assertEqual(os.path.basename(talkMessage.audio_file.name), os.path.basename(f.name)) f.close() self._clean_test_files(audioFile)