def test_get_identifier_survey(self): shared_link_identifier = random_gen.gen_string(10) survey = self.baker.make( "survey.Survey", is_shared_publicly=True, shared_link_identifier=shared_link_identifier, ) url = self.reverse( "survey-identifier", kwargs={ "version": "v1", "shared_link_identifier": shared_link_identifier, }, ) response = self.client.get(url) self.assertEqual(response.status_code, self.status_code.HTTP_200_OK, response.json()) survey.is_shared_publicly = False survey.save() url = self.reverse( "survey-identifier", kwargs={ "version": "v1", "shared_link_identifier": shared_link_identifier, }, ) response = self.client.get(url) self.assertEqual(response.status_code, self.status_code.HTTP_404_NOT_FOUND, response.json())
def test_update_share_survey(self): self.client.force_authenticate(self.user) survey_1 = self.baker.make( "survey.Survey", created_by=self.user, is_shared_publicly=True, shared_link_identifier=random_gen.gen_string(10), ) url = self.reverse("survey-update-link", kwargs={ "version": "v1", "pk": survey_1.pk }) response = self.client.post(url) self.assertEqual(response.status_code, self.status_code.HTTP_200_OK, response.json()) survey_2 = self.baker.make( "survey.Survey", created_by=self.user, ) url = self.reverse("survey-update-link", kwargs={ "version": "v1", "pk": survey_2.pk }) response = self.client.post(url) self.assertEqual(response.status_code, self.status_code.HTTP_400_BAD_REQUEST, response.json())
def test_user_email_verify(self): non_activated_user_pass = gen_random_password() non_activated_user_username = random_gen.gen_string(15) user_data = { "username": non_activated_user_username, "email": random_gen.gen_email(), "first_name": random_gen.gen_string(150), "last_name": random_gen.gen_string(150), "password": non_activated_user_pass, "re_password": non_activated_user_pass, "organization": random_gen.gen_string(255), "role": random_gen.gen_string(50), } url = self.reverse("user-register", kwargs={"version": "v1"}) response = self.client.post(url, data=user_data) self.assertEqual(response.status_code, self.status_code.HTTP_201_CREATED, response.json()) non_activated_user = get_user_model().objects.get( username=non_activated_user_username) url = self.reverse("user-email-confirm", kwargs={"version": "v1"}) user = authenticate(username=non_activated_user.username, password=non_activated_user_pass) self.assertIsNone(user) email_verify_pin = (apps.get_model( "user", "EmailConfirmationPin").objects.get(user=non_activated_user).pin) response = self.client.post( url, data={ "username": non_activated_user.username, "pin": email_verify_pin, }, ) self.assertEqual(response.status_code, self.status_code.HTTP_200_OK, response.json()) email_verified = get_user_model().objects.get( username=non_activated_user.username) self.assertTrue(email_verified.check_password(non_activated_user_pass))
def test_user_me_patch(self): self.client.force_authenticate(self.activated_user) self.assertTrue(self.activated_user.is_active) new_name = random_gen.gen_string(max_length=20) data = { "first_name": new_name, "password": self.activated_initial_password } url = self.reverse("user-me", kwargs={"version": "v1"}) response = self.client.patch(url, data=data, format="json") self.assertEqual(response.status_code, self.status_code.HTTP_200_OK, response.json()) updated_user = get_user_model().objects.get(pk=self.activated_user.pk) self.assertEqual(updated_user.first_name, new_name)
'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'testing_cache_default', }, 'results': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'testing_cache_results', }, 'sessions': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'testing_cache_sessions', }, } # give random char field values a reasonable length from model_bakery import random_gen BAKER_CUSTOM_FIELDS_GEN = { 'django.db.models.CharField': lambda: random_gen.gen_string(20) } # Development helpers if DEBUG: INSTALLED_APPS += ['evap.development'] # Django debug toolbar settings if not TESTING and ENABLE_DEBUG_TOOLBAR: INSTALLED_APPS += ['debug_toolbar'] MIDDLEWARE = ['debug_toolbar.middleware.DebugToolbarMiddleware' ] + MIDDLEWARE def show_toolbar(request): return True
'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'testing_cache_default', }, 'results': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'testing_cache_results', }, 'sessions': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'testing_cache_sessions', }, } # give random char field values a reasonable length from model_bakery import random_gen BAKER_CUSTOM_FIELDS_GEN = {'django.db.models.CharField': lambda: random_gen.gen_string(20)} # Django debug toolbar settings if DEBUG and not TESTING and ENABLE_DEBUG_TOOLBAR: INSTALLED_APPS += ['debug_toolbar'] MIDDLEWARE = ['debug_toolbar.middleware.DebugToolbarMiddleware'] + MIDDLEWARE def show_toolbar(request): return True DEBUG_TOOLBAR_CONFIG = { 'SHOW_TOOLBAR_CALLBACK': 'evap.settings.show_toolbar', 'JQUERY_URL': '', }
def test_project_survey_creation(self): url = self.reverse("project-create-survey", kwargs={ "version": "v1", "pk": self.project.pk }) module = self.baker.make("context.Module") question_group = self.baker.make("survey.QuestionGroup", module=module) question_1 = self.baker.make("survey.Question", answer_type="location", group=question_group) question_2 = self.baker.make("survey.Question", answer_type="number") question_3 = self.baker.make("survey.Question", answer_type="boolean") question_4 = self.baker.make("survey.Question", answer_type="single_option") question_4_option = self.baker.make("survey.Option", question=question_4) question_5 = self.baker.make("survey.Question", answer_type="multiple_option") question_5_option_1 = self.baker.make("survey.Option", question=question_5) question_5_option_2 = self.baker.make("survey.Option", question=question_5) statement = self.baker.make("statement.Statement") data = { "title": random_gen.gen_string(255), "answers": [ { "question": question_1.pk, "answer": '{"type": "Point", "coordinates": [5.000000, 23.000000]}', "answerType": "location", }, { "question": question_2.pk, "answer": 2, "answerType": "number", }, { "question": question_3.pk, "answer": "true", "answerType": "boolean", }, { "question": question_4.pk, "answerType": "single_option", "options": [question_4_option.pk], }, { "question": question_5.pk, "answerType": "multiple_option", "options": [question_5_option_1.pk, question_5_option_2.pk], }, ], "results": [ { "statement": statement.pk, "score": 0.90, "module": question_1.group.module.pk, }, ], } self.client.force_authenticate(self.project_created_user) response = self.client.post(url, data, format="json") self.assertEqual(response.status_code, self.status_code.HTTP_201_CREATED, response.json())
ConfirmStatusChoices.CONFIRMED, ConfirmStatusChoices.WAITING_FOR_CONFIRM, ConfirmStatusChoices.DISPROVED, ] ) # Category recipes category = Recipe(Category) active_category = category.extend(is_active=True) inactive_category = category.extend(is_active=False) # Tutorial recipes tutorial = Recipe( Tutorial, short_description=lambda: gen_string(150), body=lambda: gen_string(150), confirm_status=get_random_confirm_status, _fill_optional=["author"], ) confirmed_tutorial = tutorial.extend( confirm_status=ConfirmStatusChoices.CONFIRMED ) waiting_for_confirm_tutorial = tutorial.extend( confirm_status=ConfirmStatusChoices.WAITING_FOR_CONFIRM ) disproved_tutorial = tutorial.extend( confirm_status=ConfirmStatusChoices.DISPROVED ) # TutorialComment recipes