예제 #1
0
    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()
예제 #2
0
 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))
예제 #3
0
 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)
예제 #4
0
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
예제 #5
0
 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()))
예제 #6
0
    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))
예제 #7
0
    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))
예제 #8
0
def question(db):
    """ A question in the database """
    return QuestionFactory(name="some-question",
                           label="Some Question",
                           description="This is some question")
예제 #9
0
 def test_next_question_method(self, question):
     next_question = QuestionFactory(name="other-question", sort_id=2)
     assert next_question.name == question.next_question()
예제 #10
0
 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()