Пример #1
0
def get_one(connection: Connection, submission_id: str, email: str) -> dict:
    """
    Create a JSON representation of a submission.

    :param connection: a SQLAlchemy Connection
    :param submission_id: the UUID of the submission
    :param email: the user's e-mail address
    :return: a JSON dict
    """
    submission = submission_select(connection, submission_id, email=email)
    answers = _get_comparable(get_answers(connection, submission_id))
    choices = _get_comparable(get_answer_choices(connection, submission_id))
    # The merge is necessary to get the answers in sequence number order.
    result = merge(answers, choices)
    c = connection
    sub_dict = {
        'submission_id': submission_id,
        'survey_id': submission.survey_id,
        'submitter': submission.submitter,
        'submitter_email': submission.submitter_email,
        'submission_time': submission.submission_time.isoformat(),
        'save_time': submission.save_time.isoformat(),
        'answers': [_get_fields(c, answer) for num, answer in result]
    }
    return json_response(sub_dict)
Пример #2
0
 def testSubmissionSelect(self):
     survey_id = connection.execute(survey_table.select().where(
         survey_table.c.survey_title == 'test_title')).first().survey_id
     submission_exec = connection.execute(
         submission_insert(submitter='test_submitter',
                           submitter_email='*****@*****.**',
                           survey_id=survey_id))
     submission_id = submission_exec.inserted_primary_key[0]
     submission = submission_select(connection, submission_id,
                                    email='test_email')
     self.assertEqual(submission_id, submission.submission_id)
     user_id = connection.execute(auth_user_table.select().where(
         auth_user_table.c.email == 'test_email')).first().auth_user_id
     submission2 = submission_select(connection, submission_id,
                                     auth_user_id=user_id)
     self.assertEqual(submission_id,
                      submission2.submission_id)
     self.assertRaises(TypeError, submission_select, connection,
                       submission_id,
                       auth_user_id='', email='')
     self.assertRaises(TypeError, submission_select, connection,
                       submission_id)