def test_useremailclaim_all(self):
     """
     Test for retrieving all UserEmailClaim instances given an email address
     """
     gail = models.User(username='******', fullname='Gail Hawthorne')
     peeta = models.User(username='******', fullname='Peeta Mallark')
     email = '*****@*****.**'
     claim_by_gail = models.UserEmailClaim(user=gail, email=email)
     claim_by_peeta = models.UserEmailClaim(user=peeta, email=email)
     db.session.add(claim_by_gail)
     db.session.add(claim_by_peeta)
     db.session.commit()
     result = models.UserEmailClaim.all(email)
     self.assertCountEqual(set(result), {claim_by_gail, claim_by_peeta})
Пример #2
0
    def test_getuser(self):
        """
        Test for retrieving username by prepending @
        """
        # scenario 1: with @ starting in name and extid
        crusoe = self.fixtures.crusoe
        service_twitter = 'twitter'
        oauth_token = environ.get('TWITTER_OAUTH_TOKEN')
        oauth_token_type = 'Bearer'  # NOQA: S105
        externalid = models.UserExternalId(
            service=service_twitter,
            user=crusoe,
            userid=crusoe.email.email,
            username=crusoe.username,
            oauth_token=oauth_token,
            oauth_token_type=oauth_token_type,
        )
        db.session.add(externalid)
        db.session.commit()
        result1 = models.getuser('@crusoe')
        self.assertIsInstance(result1, models.User)
        self.assertEqual(result1, crusoe)

        # scenario 2: with @ in name and not extid
        d_email = '*****@*****.**'
        daenerys = models.User(
            username='******', fullname="Daenerys Targaryen", email=d_email
        )
        daenerys_email = models.UserEmail(email=d_email, user=daenerys)
        db.session.add_all([daenerys, daenerys_email])
        db.session.commit()
        result2 = models.getuser(d_email)
        self.assertIsInstance(result2, models.User)
        self.assertEqual(result2, daenerys)
        result3 = models.getuser('@daenerys')
        self.assertIsNone(result3)

        # scenario 3: with no @ starting in name, check by UserEmailClaim
        j_email = '*****@*****.**'
        jonsnow = models.User(username='******', fullname="Jon Snow")
        jonsnow_email_claimed = models.UserEmailClaim(email=j_email, user=jonsnow)
        db.session.add_all([jonsnow, jonsnow_email_claimed])
        db.session.commit()
        result4 = models.getuser(j_email)
        self.assertIsInstance(result4, models.User)
        self.assertEqual(result4, jonsnow)

        # scenario 5: with no @ anywhere in name, fetch username
        arya = models.User(username='******', fullname="Arya Stark")
        db.session.add(arya)
        db.session.commit()
        result5 = models.getuser('arya')
        self.assertEqual(result5, arya)

        # scenario 6: with no starting with @ name and no UserEmailClaim or UserEmail
        cersei = models.User(username='******', fullname="Cersei Lannister")
        db.session.add(cersei)
        db.session.commit()
        result6 = models.getuser('*****@*****.**')
        self.assertIsNone(result6)
 def test_useremailclaim_email(self):
     """
     Test for verifying UserEmailClaim email property
     """
     effie = models.User(username='******', fullname='Miss. Effie Trinket')
     email = '*****@*****.**'
     claim_by_effie = models.UserEmailClaim(user=effie, email=email)
     self.assertIsInstance(claim_by_effie.email, str)
     self.assertEqual(claim_by_effie.email, email)
 def test_useremailclaim(self):
     crusoe = self.fixtures.crusoe
     new_email = '*****@*****.**'
     result = models.UserEmailClaim(user=crusoe, email=new_email)
     db.session.add(result)
     db.session.commit()
     self.assertIsInstance(result, models.UserEmailClaim)
     self.assertEqual(crusoe, result.user)
     assert '<UserEmailClaim {email} of {user}>'.format(
         email=new_email, user=repr(crusoe)[1:-1]
     ) in (repr(result))
    def test_useremailclaim_get(self):
        """
        Test for retrieving a UserEmailClaim instance given a user
        """

        katnis = models.User(username='******', fullname='Katnis Everdeen')
        email = '*****@*****.**'
        email_claim = models.UserEmailClaim(user=katnis, email=email)
        db.session.add(email_claim)
        db.session.commit()
        result = models.UserEmailClaim.get_for(user=katnis, email=email)
        self.assertIsInstance(result, models.UserEmailClaim)
        self.assertEqual(result.email, email)
        self.assertEqual(result.user, katnis)
 def test_useremailclaim_permissions(self):
     """
     Test for verifying whether user has verify permission on a UserEmailClaim instance
     """
     crusoe = self.fixtures.crusoe
     email = '*****@*****.**'
     email_claim = models.UserEmailClaim(user=crusoe, email=email)
     permissions_expected = ['verify']
     result = email_claim.permissions(crusoe)
     self.assertIsInstance(result, set)
     permissions_received = []
     for each in result:
         permissions_received.append(each)
     self.assertCountEqual(permissions_expected, permissions_received)