Example #1
0
 def test_login_unregistered_user(self):
     user = UnregUserFactory()
     user.set_password('killerqueen')
     user.save()
     with assert_raises(auth.LoginNotAllowedError):
         # password is correct, but user is unregistered
         auth.login(user.username, 'killerqueen')
Example #2
0
    def test_unreg_user_can_register(self):
        user = UnregUserFactory()

        auth.register_unconfirmed(
            username=user.username,
            password='******',
            fullname='Rosie',
        )

        assert_true(user.get_confirmation_token(user.username))
Example #3
0
    def test_unreg_user_can_register(self):
        user = UnregUserFactory()

        auth.register_unconfirmed(
            username=user.username,
            password='******',
            fullname='Rosie',
        )

        assert_true(user.get_confirmation_token(user.username))
Example #4
0
    def test_unique_email_validator_with_unreg_user(self):
        class MockForm(Form):
            username = Field('Username',
                             [forms.UniqueEmail(allow_unregistered=True)])

        u = UnregUserFactory()
        f = MockForm(username=u.username)
        assert_true(f.validate())
Example #5
0
 def test_unreg_users_do_show_on_projects(self):
     unreg = UnregUserFactory(fullname='Robert Paulson')
     self.project = ProjectFactory(
         title='Glamour Rock',
         creator=unreg,
         is_public=True,
     )
     results = query(unreg.fullname)['results']
     assert_equal(len(results), 1)
Example #6
0
    def test_confirm_email(self, mock_mail):
        user = UnregUserFactory()

        auth.register_unconfirmed(
            username=user.username,
            password='******',
            fullname='Rosie',
        )

        token = user.get_confirmation_token(user.username)

        res = self.app.get('/confirm/{}/{}'.format(user._id, token), allow_redirects=False)
        res = res.follow()

        assert_equal(res.status_code, 302)
        assert_in('login?service=', res.location)

        user.reload()
        assert_equal(len(mock_mail.call_args_list), 1)
        empty, kwargs = mock_mail.call_args
        kwargs['user'].reload()

        assert_equal(empty, ())
        assert_equal(kwargs, {
            'user': user,
            'mimetype': 'html',
            'mail': mails.WELCOME,
            'to_addr': user.username,
        })

        self.app.set_cookie(settings.COOKIE_NAME, user.get_or_create_cookie())
        res = self.app.get('/confirm/{}/{}'.format(user._id, token))

        res = res.follow()

        assert_equal(res.status_code, 302)
        assert_equal('/', urlparse.urlparse(res.location).path)
        assert_equal(len(mock_mail.call_args_list), 1)
        session = Session.find(
            Q('data.auth_user_id', 'eq', user._id)
        ).sort(
            '-date_modified'
        ).limit(1)[0]
        assert_equal(len(session.data['status']), 1)
Example #7
0
 def test_login_unregistered_user(self):
     user = UnregUserFactory()
     user.set_password('killerqueen')
     user.save()
     with assert_raises(auth.LoginNotAllowedError):
         # password is correct, but user is unregistered
         auth.login(user.username, 'killerqueen')
Example #8
0
    def test_correct_name_shows_in_contributor_list(self):
        name1, email = fake.name(), fake.email()
        UnregUserFactory(fullname=name1, email=email)
        name2, email = fake.name(), fake.email()
        # Added with different name
        self.project.add_unregistered_contributor(fullname=name2,
            email=email, auth=Auth(self.referrer))
        self.project.save()

        res = self.app.get(self.project.url, auth=self.referrer.auth)
        # Correct name is shown
        assert_in(name2, res)
        assert_not_in(name1, res)
Example #9
0
 def test_POST_retraction_does_not_send_email_to_unregistered_admins(self, mock_send_mail):
     unreg = UnregUserFactory()
     self.registration.add_contributor(
         unreg,
         auth=Auth(self.user),
         permissions=['read', 'write', 'admin']
     )
     self.registration.save()
     self.app.post_json(
         self.retraction_post_url,
         {'justification': ''},
         auth=self.user.auth,
     )
     # Only the creator gets an email; the unreg user does not get emailed
     assert_equal(mock_send_mail.call_count, 1)
Example #10
0
    def test_correct_display_name_is_shown_at_claim_page(self):
        original_name = fake.name()
        unreg = UnregUserFactory(fullname=original_name)

        different_name = fake.name()
        new_user = self.project.add_unregistered_contributor(
            email=unreg.username,
            fullname=different_name,
            auth=Auth(self.referrer),
        )
        self.project.save()
        claim_url = new_user.get_claim_url(self.project._primary_key)
        res = self.app.get(claim_url)
        # Correct name (different_name) should be on page
        assert_in(different_name, res)
Example #11
0
    def test_confirm_email(self, mock_mail):
        user = UnregUserFactory()

        auth.register_unconfirmed(
            username=user.username,
            password='******',
            fullname='Rosie',
        )

        token = user.get_confirmation_token(user.username)

        res = self.app.get('/confirm/{}/{}'.format(user._id, token), allow_redirects=False)
        res = res.follow()

        assert_equal(res.status_code, 302)
        assert_in('login?service=', res.location)

        user.reload()
        assert_equal(len(mock_mail.call_args_list), 1)
        empty, kwargs = mock_mail.call_args
        kwargs['user'].reload()

        assert_equal(empty, ())
        assert_equal(kwargs, {
            'user': user,
            'mimetype': 'html',
            'mail': mails.WELCOME,
            'to_addr': user.username,
        })

        self.app.set_cookie(settings.COOKIE_NAME, user.get_or_create_cookie())
        res = self.app.get('/confirm/{}/{}'.format(user._id, token))

        res = res.follow()

        assert_equal(res.status_code, 302)
        assert_equal('/', urlparse.urlparse(res.location).path)
        assert_equal(len(mock_mail.call_args_list), 1)
        session = Session.find(
            Q('data.auth_user_id', 'eq', user._id)
        ).sort(
            '-date_modified'
        ).limit(1)[0]
        assert_equal(len(session.data['status']), 1)
Example #12
0
 def test_unreg_users_dont_show_in_search(self):
     unreg = UnregUserFactory()
     contribs = search.search_contributor(unreg.fullname)
     assert_equal(len(contribs['users']), 0)