aboutsummaryrefslogtreecommitdiff
path: root/tests/amt/test_models.py
blob: c2a61b5ea33daa5755d7edd12826067287a6050e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import copy

import pytest

from jb.models.assignment import Assignment


@pytest.fixture
def get_assignment_response_bad_tsid(
    get_assignment_response, amt_worker_id, amt_assignment_id
):
    res = copy.deepcopy(get_assignment_response)
    res["Assignment"]["Answer"] = (
        '<?xml version="1.0" encoding="UTF-8"?>\n'
        '<QuestionFormAnswers xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionFormAnswers.xsd">\n '
        "<Answer>\n    <QuestionIdentifier>amt_worker_id</QuestionIdentifier>\n   "
        f" <FreeText>{amt_worker_id}</FreeText>\n  </Answer>\n  <Answer>\n   "
        " <QuestionIdentifier>amt_assignment_id</QuestionIdentifier>\n "
        f"   <FreeText>{amt_assignment_id}</FreeText>\n  </Answer>\n "
        f" <Answer>\n  <QuestionIdentifier>tsid</QuestionIdentifier>\n  abc123 <FreeText></FreeText>\n </Answer>\n"
        f"</QuestionFormAnswers>"
    )
    return res

def test_get_assignment(get_assignment_response):
    assignment = Assignment.from_amt_get_assignment(
        get_assignment_response["Assignment"]
    )
    assert assignment.tsid is not None

def test_get_assignment_no_tsid(get_assignment_response_no_tsid):
    assignment = Assignment.from_amt_get_assignment(
        get_assignment_response_no_tsid["Assignment"]
    )
    assert assignment.tsid is None

def test_get_assignment_bad_tsid(get_assignment_response_bad_tsid):
    assignment = Assignment.from_amt_get_assignment(
        get_assignment_response_bad_tsid["Assignment"]
    )
    assert assignment.tsid is None