def test_group_management(self, client, factory, namespace, view_name, group_attr): o = factory() group = getattr(o, group_attr) admin = UserFactory() u = UserFactory() assert not group.user_set.filter(pk=u.pk).exists() def get_user_autocomplete(): return get_view_for_user( client=client, viewname="users-autocomplete", user=admin, data={"q": u.username.lower()}, ) response = get_user_autocomplete() assert response.status_code == 403 o.add_editor(admin) response = get_user_autocomplete() assert response.status_code == 200 assert str(u.pk) in response.json()["results"][0]["id"] assert (html_escape(str(u.user_profile.get_mugshot_url())) in response.json()["results"][0]["text"]) assert u.username in response.json()["results"][0]["text"] assert u.get_full_name() in response.json()["results"][0]["text"] response = get_view_for_user( client=client, viewname=f"{namespace}:{view_name}-update", reverse_kwargs={"slug": o.slug}, user=admin, method=client.post, data={ "action": "ADD", "user": u.pk }, ) assert response.status_code == 302 assert group.user_set.filter(pk=u.pk).exists() response = get_view_for_user( client=client, viewname=f"{namespace}:{view_name}-update", reverse_kwargs={"slug": o.slug}, user=admin, method=client.post, data={ "action": "REMOVE", "user": u.pk }, ) assert response.status_code == 302 assert not group.user_set.filter(pk=u.pk).exists()
def test_autocomplete_filter_options(self, client, filter, is_verified): archive = ArchiveFactory() admin = UserFactory() archive.add_editor(admin) first_name = "Jane" last_name = "Doe" if is_verified: u = UserFactory() VerificationFactory(user=u, is_verified=True) u.first_name = first_name u.last_name = last_name u.save() else: u = UserFactory(first_name=first_name, last_name=last_name) u.full_name = u.get_full_name().title() filter_criterion = getattr(u, filter) def get_user_autocomplete(): return get_view_for_user( client=client, viewname="users-autocomplete", user=admin, data={"q": filter_criterion}, ) response = get_user_autocomplete() assert response.status_code == 200 assert str(u.pk) in response.json()["results"][0]["id"] assert ( html_escape(str(u.user_profile.get_mugshot_url())) in response.json()["results"][0]["text"] ) assert u.username in response.json()["results"][0]["text"] assert u.get_full_name() in response.json()["results"][0]["text"] if is_verified: assert ( u.verification.email.split("@")[1] in response.json()["results"][0]["text"] )
def test_get_full_name(self): def valid_method(first_name, last_name): return "%s %s" % (last_name, first_name) def invalid_method1(first_name): return first_name def invalid_method2(first_name, last_name): return None def invalid_method3(first_name, last_name): return " " def invalid_method4(first_name, last_name): return b"my_name" def invalid_method5(first_name, last_name): return "my_name" def invalid_method6(first_name, last_name): return Exception() default_user_dict = {"first_name": "first_name", "last_name": "last_name"} default_result = "first_name last_name" user_get_full_name_test_kwargs_list = ( ({"id": 1, "custom_method": None, "user_dict": {}, "default": '', "not_allow_blank": None, "force_verbose_blank": "(blank) (blank)"}), ({"id": 2, "custom_method": None, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result}), ({"id": 3, "custom_method": valid_method, "user_dict": default_user_dict, "default": "last_name first_name", "not_allow_blank": "last_name first_name", "force_verbose_blank": "last_name first_name"}), ({"id": 4, "custom_method": invalid_method1, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W003']}), ({"id": 5, "custom_method": invalid_method2, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004']}), ({"id": 6, "custom_method": invalid_method3, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004']}), ({"id": 7, "custom_method": invalid_method4, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004']}), ({"id": 8, "custom_method": invalid_method5, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W005']}), ({"id": 9, "custom_method": invalid_method6, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004']}), ({"id": 10, "custom_method": "abcd", # a string "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W001']}), ({"id": 11, "custom_method": "tests.resource.my_customized_get_full_name_method", "user_dict": default_user_dict, "default": "First_Name Last_Name", "not_allow_blank": "First_Name Last_Name", "force_verbose_blank": "First_Name Last_Name"}), ({"id": 12, "custom_method": "tests.resource.my_customized_get_full_name_method_invalid", "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004']}), ({"id": 13, "custom_method": "tests.resource.my_customized_get_full_name_method_invalid_str", "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W002']}), ({"id": 14, "custom_method": "tests.resource.my_customized_get_full_name_method", "user_dict": {"first_name": "first_name"}, "default": "First_Name", "not_allow_blank": None, "force_verbose_blank": "First_Name (Blank)"}), ) # Ensure no duplicate entries in user_get_full_name_test_kwargs_list # to generate error info when subTests fail. ids = set([kwargs["id"] for kwargs in user_get_full_name_test_kwargs_list]) assert len(ids) == len(user_get_full_name_test_kwargs_list) for kwargs in user_get_full_name_test_kwargs_list: # clear cached_property from accounts.utils import relate_user_method_settings relate_user_method_settings.__dict__ = {} with self.subTest(id=kwargs["id"]): with override_settings( RELATE_USER_FULL_NAME_FORMAT_METHOD=kwargs[ "custom_method"]): check_messages = kwargs.get("check_messages", []) self.assertCheckMessages(check_messages) user = UserFactory(**kwargs["user_dict"]) self.assertEqual(user.get_full_name(), kwargs["default"]) self.assertEqual(user.get_full_name(allow_blank=False), kwargs["not_allow_blank"]) self.assertEqual(user.get_full_name(force_verbose_blank=True), kwargs["force_verbose_blank"])
def test_get_full_name(self): def valid_method(first_name, last_name): return "%s %s" % (last_name, first_name) def invalid_method1(first_name): return first_name def invalid_method2(first_name, last_name): # noqa return None def invalid_method3(first_name, last_name): # noqa return " " def invalid_method4(first_name, last_name): # noqa return b"my_name" def invalid_method5(first_name, last_name): # noqa return "my_name" def invalid_method6(first_name, last_name): # noqa return Exception() default_user_dict = { "first_name": "first_name", "last_name": "last_name" } default_result = "first_name last_name" user_get_full_name_test_kwargs_list = ( ({ "id": 1, "custom_method": None, "user_dict": {}, "default": '', "not_allow_blank": None, "force_verbose_blank": "(blank) (blank)" }), ({ "id": 2, "custom_method": None, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result }), ({ "id": 3, "custom_method": valid_method, "user_dict": default_user_dict, "default": "last_name first_name", "not_allow_blank": "last_name first_name", "force_verbose_blank": "last_name first_name" }), ({ "id": 4, "custom_method": invalid_method1, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W003'] }), ({ "id": 5, "custom_method": invalid_method2, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004'] }), ({ "id": 6, "custom_method": invalid_method3, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004'] }), ({ "id": 7, "custom_method": invalid_method4, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004'] }), ({ "id": 8, "custom_method": invalid_method5, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W005'] }), ({ "id": 9, "custom_method": invalid_method6, "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004'] }), ({ "id": 10, "custom_method": "abcd", # a string "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W001'] }), ({ "id": 11, "custom_method": "tests.resource.my_customized_get_full_name_method", "user_dict": default_user_dict, "default": "First_Name Last_Name", "not_allow_blank": "First_Name Last_Name", "force_verbose_blank": "First_Name Last_Name" }), ({ "id": 12, "custom_method": "tests.resource.my_customized_get_full_name_method_invalid", "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W004'] }), ({ "id": 13, "custom_method": "tests.resource.my_customized_get_full_name_method_invalid_str", "user_dict": default_user_dict, "default": default_result, "not_allow_blank": default_result, "force_verbose_blank": default_result, "check_messages": ['relate_user_full_name_format_method.W002'] }), ({ "id": 14, "custom_method": "tests.resource.my_customized_get_full_name_method", "user_dict": { "first_name": "first_name" }, "default": "First_Name", "not_allow_blank": None, "force_verbose_blank": "First_Name (Blank)" }), ) # Ensure no duplicate entries in user_get_full_name_test_kwargs_list # to generate error info when subTests fail. ids = set( [kwargs["id"] for kwargs in user_get_full_name_test_kwargs_list]) assert len(ids) == len(user_get_full_name_test_kwargs_list) for kwargs in user_get_full_name_test_kwargs_list: # clear cached_property from accounts.utils import relate_user_method_settings relate_user_method_settings.__dict__ = {} with self.subTest(id=kwargs["id"]): with override_settings( RELATE_USER_FULL_NAME_FORMAT_METHOD=kwargs[ "custom_method"]): check_messages = kwargs.get("check_messages", []) self.assertCheckMessages(check_messages) user = UserFactory(**kwargs["user_dict"]) self.assertEqual(user.get_full_name(), kwargs["default"]) self.assertEqual(user.get_full_name(allow_blank=False), kwargs["not_allow_blank"]) self.assertEqual( user.get_full_name(force_verbose_blank=True), kwargs["force_verbose_blank"])