def setUp(self):
        self.list_categories_schema = self.load_json_schema(
            os.path.join(
                THIS_DIR,
                'json_schema',
                'get_signals_v1_public_terms_categories.json'
            )
        )
        self.retrieve_category_schema = self.load_json_schema(
            os.path.join(
                THIS_DIR,
                'json_schema',
                'get_signals_v1_public_terms_categories_{slug}.json'
            )
        )
        self.retrieve_sub_category_schema = self.load_json_schema(
            os.path.join(
                THIS_DIR,
                'json_schema',
                'get_signals_v1_public_terms_categories_{slug}_sub_categories_{sub_slug}.json'
            )
        )

        self.parent_category = ParentCategoryFactory.create()
        CategoryFactory.create_batch(5, parent=self.parent_category)
        self.parent_category.refresh_from_db()

        super(TestCategoryTermsEndpoints, self).setUp()
Example #2
0
    def handle(self, *args, **options):
        parent_slug = options.get('parent_slug', False)
        if parent_slug:
            parents_to_create = 1
            parent_options = {
                'slug': parent_slug,
            }
        else:
            parents_to_create = int(options['parents_to_create']
                                    or self.default_to_create)
            parent_options = {}
        children_to_create = int(options['children_to_create']
                                 or self.default_to_create)

        if not self.min_to_create <= parents_to_create <= self.max_to_create:
            self.stderr.write(
                f'The parents to create option must be an integer from {self.min_to_create} to '
                f'{self.max_to_create}, {parents_to_create} given')
            return

        if not self.min_to_create <= children_to_create <= self.max_to_create:
            self.stderr.write(
                f'The children to create option must be an integer from {self.min_to_create} to '
                f'{self.max_to_create}, {children_to_create} given')
            return

        parents = ParentCategoryFactory.create_batch(parents_to_create,
                                                     **parent_options)
        for parent in parents:
            CategoryFactory.create_batch(children_to_create, parent=parent)
Example #3
0
    def setUp(self):
        sia_category_write_permission = Permission.objects.get(codename='sia_category_write')
        self.sia_read_write_user.user_permissions.add(sia_category_write_permission)

        self.parent_category = ParentCategoryFactory.create()

        CategoryFactory.create_batch(5, parent=self.parent_category)
        self.parent_category.refresh_from_db()

        super().setUp()
Example #4
0
    def setUp(self):
        self.retrieve_sub_category_question_schema = self.load_json_schema(
            os.path.join(
                THIS_DIR,
                'json_schema',
                'get_signals_v1_public_questions_categories_{slug}_sub_categories_{sub_slug}.json'
            )
        )

        question = QuestionFactory.create_batch(1)
        question2 = QuestionFactory.create_batch(1)
        self.parent_category = ParentCategoryFactory.create(questions=question2)
        CategoryFactory.create_batch(1, parent=self.parent_category, questions=question)
        self.parent_category.refresh_from_db()
        super().setUp()
    def test_category_question_list(self):
        question = QuestionFactory.create_batch(1)
        question2 = QuestionFactory.create_batch(1)
        self.parent_category = ParentCategoryFactory.create(
            questions=question2)
        CategoryFactory.create_batch(1,
                                     parent=self.parent_category,
                                     questions=question)
        self.parent_category.refresh_from_db()

        endpoint_url = '/signals/v1/public/questions/'
        response = self.client.get(endpoint_url)
        self.assertEqual(response.status_code, 200)
        data = response.json()
        # JSONSchema validation
        self.assertJsonSchema(self.retrieve_sub_category_question_schema, data)
        self.assertEqual(data['count'], 2)

        # filter on main
        sub_category = self.parent_category.children.first()
        url = '{endp}?main_slug={slug}'.format(endp=endpoint_url,
                                               slug=sub_category.parent.slug)
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200, msg=url)
        data = response.json()
        # JSONSchema validation
        self.assertJsonSchema(self.retrieve_sub_category_question_schema, data)
        self.assertEqual(data['count'], 1)

        # filter on main and sub
        sub_category = self.parent_category.children.first()
        url = '{endp}?main_slug={slug}&sub_slug={sub_slug}'.format(
            endp=endpoint_url,
            slug=sub_category.parent.slug,
            sub_slug=sub_category.slug)
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200, msg=url)
        data = response.json()
        # JSONSchema validation
        self.assertJsonSchema(self.retrieve_sub_category_question_schema, data)
        self.assertEqual(data['count'], 2)