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()
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)
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()
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)