Пример #1
0
 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)
Пример #2
0
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()
Пример #3
0
    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'])
Пример #4
0
 def testJsonify(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()
     j = s.jsonify()
     self.assertIn('head', j['bodyparts'])
     self.assertIn('cuts', j['bodyparts']['head'])
Пример #5
0
 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')
Пример #6
0
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()
Пример #7
0
 def testSetDefaults(self):
     s = Survey()
     s.set_defaults()
     self.assertEqual(16, len(s.bodyparts))