def setUp(self): self.client = APIClient() self.from_question = QuestionFactory(name="some-question", sort_id=1) self.to_question = QuestionFactory(name="some-other-question", sort_id=2) QuestionItemFactory(question=self.from_question, name=self.from_question.name) QuestionItemFactory(question=self.to_question, name=self.to_question.name) return super().setUp()
def test_scroll_limit(self): """There should be no scroll limit""" question_amount = 101 questions = [] for number in range(1, question_amount + 1): questions.append(QuestionFactory(name=f"{number}")) response = self.client.get(self.API_PATH) self.assertEqual(200, response.status_code) content = json.loads(response.content) self.assertEqual(question_amount, len(content))
def test_get_variable_GET_data(self): """Is the get response as expected?""" question_amount = 10 questions = [] for number in range(1, question_amount + 1): questions.append(QuestionFactory(name=f"{number}")) response = self.client.get(self.API_PATH) self.assertEqual(200, response.status_code) content = json.loads(response.content) self.assertEqual(question_amount, len(content)) result_ids = [result["id"] for result in content] for question in questions: self.assertIn(str(question.id), result_ids)
def question(db, request): """A question in the database""" question = QuestionFactory( name="some-question", label="Some Question", description="This is some question", sort_id=1, ) _ = QuestionItemFactory(name="1", position=0, question=question) # To work with unittest if request.instance: request.instance.question = question return question
def test_returned_fields(self): """Define fields that should be provided.""" expected_fields = [ "id", "name", "label", "label_de", "instrument_name", "study_name", "study_label", "instrument", "study", "position", ] QuestionFactory(name="test_question") response = self.client.get(self.API_PATH) results = json.loads(response.content) question = results[0] self.assertListEqual(expected_fields, list(question.keys()))
def test_query_parameter_concept(self): concept_name = self.concept.name question_list = [] for number in range(1, 11): _question = QuestionFactory(name=str(number)) _question.save() ConceptQuestion(concept=self.concept, question=_question).save() question_list.append(_question) for number in range(11, 21): _question = QuestionFactory(name=str(number)) question_list.append(_question) response = self.client.get(self.API_PATH + f"?concept={concept_name}") content = json.loads(response.content) self.assertEqual(10, len(content))
def test_query_parameter_study(self): """Define study parameter behavior.""" instrument = InstrumentFactory(name="different-instrument") study = StudyFactory(name="different-study") study_name = study.name instrument.study = study instrument.save() question_list = [] for number in range(1, 11): _question = QuestionFactory(name=str(number)) _question.instrument = instrument _question.save() question_list.append(_question) for number in range(11, 21): _question = QuestionFactory(name=str(number)) question_list.append(_question) response = self.client.get(self.API_PATH + f"?study={study_name}") content = json.loads(response.content) self.assertEqual(10, len(content))
def question(db): """ A question in the database """ return QuestionFactory(name="some-question", label="Some Question", description="This is some question")
def test_next_question_method(self, question): next_question = QuestionFactory(name="other-question", sort_id=2) assert next_question.name == question.next_question()
def test_previous_question_method(self, question): previous_question = QuestionFactory(name="other-question", sort_id=1) question.sort_id = 2 question.save() assert previous_question.name == question.previous_question()