def test_returns_short_answer_text(self): question = { 'itemId': '1' * 24, 'responses': [{ 'text': { 'text': 'a short answer' } }] } attempts = get_attempts(question, self.MC) assert attempts == 'a short answer'
def test_returns_filename_for_single_file_upload(self): question = { 'itemId': '1' * 24, 'responses': [{ 'fileId': { 'assetId': '0' * 24, 'assetContentTypeId': 'foo' } }] } attempts = get_attempts(question, self.MC) assert attempts == '1234.foo'
def test_returns_filename_for_multi_file_upload(self): question = { 'itemId': '1' * 24, 'responses': [{ 'fileIds': { 'my_file_wav': { 'assetContentId': 'fake%3Afoo%40MIT' } } }] } attempts = get_attempts(question, self.MC) assert attempts == 'foo.wav'
def test_returns_none_for_missing_response(self): question = {'itemId': '1' * 24, 'responses': [{'missingResponse': 0}]} attempts = get_attempts(question, self.MC) assert attempts == 'None'
def test_returns_no_file_text(self): question = {'itemId': '1' * 24, 'responses': [{'fileIds': {}}]} attempts = get_attempts(question, self.MC) assert attempts == 'empty file response'
def test_returns_choice_text_for_multichoice(self): question = {'itemId': '1' * 24, 'responses': [{'choiceIds': ['123']}]} attempts = get_attempts(question, self.MC) assert attempts == 'a bear'
def test_throws_exception_for_unknown_response_format(self): question = {'itemId': '1' * 24, 'responses': [{'bim': 'bap'}]} with pytest.raises(TypeError): get_attempts(question, self.MC)