def testUpdateFromJson(self): s = Survey(eis_id='a', first_name='b', nbl_finish_timestamp=datetime.now(), survey_send_time=datetime.now() + timedelta(hours=24)) s.set_defaults() s.put() headAffected = True headPain = 5 j = { 'questions': { 'pain': True }, 'bodyparts': { 'head': { 'affected': headAffected, 'pain': headPain } } } s.update_from_json(j) s.put() head = '' for part in s.bodyparts: if part.name == 'head': head = part break self.assertEqual(s.pain, True) self.assertEqual(head.affected, headAffected) self.assertEqual(head.pain, headPain)
def createDummy(): survey = Survey(eis_id='123', first_name='Michael', nbl_finish_timestamp=datetime.fromtimestamp(1539546879), survey_send_time=datetime.fromtimestamp(1539719679)) survey.set_defaults() return survey.put().urlsafe()
def testPostSurvey(self): # First create one data = { 'questions': { 'treatments': ['x'] }, 'bodyparts': { 'head': { 'cuts': True } } } j = json.dumps(data) # Create a survey to be updated s = Survey(eis_id='a', first_name='b', nbl_finish_timestamp=datetime.now(), survey_send_time=datetime.now() + timedelta(hours=24)) s.set_defaults() key = s.put().urlsafe() response = self.app.post('/api/survey/%s' % key, data=j) self.assertEqual(response.status_code, 200) self.assertEqual(ndb.Key(urlsafe=key).get().treatments, ['x'])
def testFetchSurvey(self): # First create one s = Survey(eis_id='a', first_name='b', nbl_finish_timestamp=datetime.now(), survey_send_time=datetime.now() + timedelta(hours=24)) s.set_defaults() key = s.put().urlsafe() response = self.app.get('/api/survey/%s' % key) data = json.loads(response.data) self.assertEqual(response.status_code, 200) self.assertEqual(data['eisId'], 'a')
def createSurvey(): # Get data required to create a survey data = json.loads(request.data) logging.info(data) eis_id = data['eisId'] nbl_finish_time = int(data['nblFinishTime']) survey_send_delay = int(data['surveySendDelay']) first_name = data['firstName'] email = data['email'] # Calculate survey send time # Convert times # javascript timestamps are in milliseconds so divide nbl_time = datetime.fromtimestamp(nbl_finish_time / 1000) survey_send_time = nbl_time + timedelta(hours=survey_send_delay) survey = Survey(eis_id=eis_id, first_name=first_name, nbl_finish_timestamp=nbl_time, survey_send_time=survey_send_time, email=email) survey.set_defaults() return survey.put().urlsafe()