Beispiel #1
0
    def test_ambiguous_match(self, mock_metrics):
        for user in (self.user1, self.user2):
            UserEmail.objects.create(user=user, email="*****@*****.**")

        with self.assertRaises(AmbiguousUserFromEmail) as context:
            resolve_email_to_user("*****@*****.**")
        assert set(context.exception.users) == {self.user1, self.user2}
        assert mock_metrics.incr.call_args.args == (
            "auth.email_resolution.no_resolution", )
Beispiel #2
0
 def _initialize_user(self) -> Union[User, AnonymousUser]:
     email = self.identity.get("email")
     if email:
         user = resolve_email_to_user(email)
         if user:
             return user
     return self.request.user
Beispiel #3
0
    def test_prefers_primary_email(self, mock_metrics):
        UserEmail.objects.create(user=self.user1,
                                 email=self.user2.email,
                                 is_verified=True)

        result = resolve_email_to_user(self.user2.email)
        assert result == self.user2

        assert mock_metrics.incr.call_args.args == (
            "auth.email_resolution.by_primary_email", )
Beispiel #4
0
    def test_prefers_org_member(self, mock_metrics):
        org = self.create_organization()
        UserEmail.objects.create(user=self.user1,
                                 email="*****@*****.**",
                                 is_verified=True)
        UserEmail.objects.create(user=self.user2,
                                 email="*****@*****.**",
                                 is_verified=True)
        OrganizationMember.objects.create(organization=org, user=self.user2)

        result = resolve_email_to_user("*****@*****.**", organization=org)
        assert result == self.user2

        assert mock_metrics.incr.call_args.args == (
            "auth.email_resolution.by_org_membership", )
Beispiel #5
0
 def test_single_match(self):
     result = resolve_email_to_user(self.user1.email)
     assert result == self.user1
Beispiel #6
0
 def test_no_match(self):
     result = resolve_email_to_user("*****@*****.**")
     assert result is None