diff options
Diffstat (limited to 'tests/amt/test_models.py')
| -rw-r--r-- | tests/amt/test_models.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/amt/test_models.py b/tests/amt/test_models.py new file mode 100644 index 0000000..c2a61b5 --- /dev/null +++ b/tests/amt/test_models.py @@ -0,0 +1,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
\ No newline at end of file |
