Esempio n. 1
0
    def test_google_user_changing_emails_doesnt_clobber_others(self):
        # An existing Google user
        user1 = fake_user.google_user(123, "*****@*****.**")

        # An existing Facebook user - say they logged in after we started
        # collecting e-mails from FB users, so we have their email.
        user2 = fake_user.fb_user(123, "*****@*****.**")

        # Now, pretend the Google user logs in, but their e-mail has changed
        # to match the FB user's!
        self.fake_google_login(123, "*****@*****.**")

        # Unfortunately, we can't "merge" accounts, and it would suck to
        # clobber that other FB account and not make it accessible. So until
        # we can properly merge, we can't update the e-mail of that Google
        # user .
        current = _cur_user()
        self.assertEquals(2, _user_counts())
        self.assertEquals(
            user1.key(),
            current.key(),
            msg="Google user should still have access to old account")

        retrieved_by_email = \
            user_models.UserData.get_from_user_input_email("*****@*****.**")
        self.assertEquals(user2.key(),
                          retrieved_by_email.key(),
                          msg="The FB user should still own the new e-mail")
Esempio n. 2
0
    def test_old_fb_user_with_clashing_email_doesnt_clobber_others(self):
        email = "*****@*****.**"

        # An existing google user with [email protected]
        user1 = fake_user.google_user(123, email)

        # An existing facebook user in our system - we don't know
        # their email yet, because historically we didn't ask.
        user2 = fake_user.fb_user(123)
        self.assertFalse(user2.has_sendable_email())

        # Now, pretend the FB user logs in and we now get their e-mail
        self.fake_fb_login(123, "*****@*****.**")

        current = _cur_user()

        self.assertEquals(
            2,
            _user_counts(),
            msg="New user shouldn't be created on FB email change")

        self.assertNotEquals(user1.key(),
                             current.key(),
                             msg="Shouldn't have logged in as the Google user")

        self.assertEquals(user2.key(),
                          current.key(),
                          msg="Should have logged in as the FB user")

        self.assertFalse(current.has_sendable_email(),
                         msg="FB email should not have been updated since it "
                         "conflicts with a different user's")
Esempio n. 3
0
    def test_google_user_changing_emails_doesnt_clobber_others(self):
        # An existing Google user
        user1 = fake_user.google_user(123, "*****@*****.**")

        # An existing Facebook user - say they logged in after we started
        # collecting e-mails from FB users, so we have their email.
        user2 = fake_user.fb_user(123, "*****@*****.**")

        # Now, pretend the Google user logs in, but their e-mail has changed
        # to match the FB user's!
        self.fake_google_login(123, "*****@*****.**")

        # Unfortunately, we can't "merge" accounts, and it would suck to
        # clobber that other FB account and not make it accessible. So until
        # we can properly merge, we can't update the e-mail of that Google
        # user .
        current = _cur_user()
        self.assertEquals(2, _user_counts())
        self.assertEquals(
            user1.key(), current.key(),
            msg="Google user should still have access to old account")

        retrieved_by_email = \
            user_models.UserData.get_from_user_input_email("*****@*****.**")
        self.assertEquals(
            user2.key(), retrieved_by_email.key(),
            msg="The FB user should still own the new e-mail")
Esempio n. 4
0
    def test_old_fb_user_with_clashing_email_doesnt_clobber_others(self):
        email = "*****@*****.**"

        # An existing google user with [email protected]
        user1 = fake_user.google_user(123, email)

        # An existing facebook user in our system - we don't know
        # their email yet, because historically we didn't ask.
        user2 = fake_user.fb_user(123)
        self.assertFalse(user2.has_sendable_email())

        # Now, pretend the FB user logs in and we now get their e-mail
        self.fake_fb_login(123, "*****@*****.**")

        current = _cur_user()

        self.assertEquals(
            2, _user_counts(),
            msg="New user shouldn't be created on FB email change")

        self.assertNotEquals(
            user1.key(), current.key(),
            msg="Shouldn't have logged in as the Google user")

        self.assertEquals(
            user2.key(), current.key(),
            msg="Should have logged in as the FB user")

        self.assertFalse(
            current.has_sendable_email(),
            msg="FB email should not have been updated since it "
                "conflicts with a different user's")
Esempio n. 5
0
    def test_fb_login_for_existing_user(self):
        # An existing facebook user in our system - we don't know
        # their email yet, because historically we didn't ask.
        existing = fake_user.fb_user(123)
        self.assertFalse(existing.has_sendable_email())
        self.assertEquals(1, _user_counts())

        # Have them login, but this time FB gave us their e-mail.
        self.fake_fb_login(123, "*****@*****.**")

        # At this point, that same user should have just gotten their email
        # updated since there were no conflicts with other accounts.
        self.assertEquals(1, _user_counts())
        self.assertEquals(existing.key(), _cur_user().key())
        self.assertEquals("*****@*****.**", _cur_user().email)
        self.assertTrue(_cur_user().has_sendable_email())
Esempio n. 6
0
    def test_fb_login_for_existing_user(self):
        # An existing facebook user in our system - we don't know
        # their email yet, because historically we didn't ask.
        existing = fake_user.fb_user(123)
        self.assertFalse(existing.has_sendable_email())
        self.assertEquals(1, _user_counts())

        # Have them login, but this time FB gave us their e-mail.
        self.fake_fb_login(123, "*****@*****.**")

        # At this point, that same user should have just gotten their email
        # updated since there were no conflicts with other accounts.
        self.assertEquals(1, _user_counts())
        self.assertEquals(existing.key(), _cur_user().key())
        self.assertEquals("*****@*****.**",
                          _cur_user().email)
        self.assertTrue(_cur_user().has_sendable_email())