Example #1
0
 def test_post_token_created(self):
     create_user('testuser', email='*****@*****.**')
     self.assertEqual(GenericTokenWithMetadata.objects.count(), 0)
     self.client.post(self.url, {'email': '*****@*****.**'})
     self.assertEqual(GenericTokenWithMetadata.objects.count(), 1)
     token = GenericTokenWithMetadata.objects.first()
     self.assertIsNotNone(token.expiration_datetime)
Example #2
0
    def test_filter_has_expired(self):
        self._create_generic_token_with_metadata(
            user=create_user('testuser1'),
            app='testapp',
            token='test-token1',
            expiration_datetime=arrow.get(datetime(2015, 1, 1, 14, 30),
                                          settings.TIME_ZONE).datetime)
        self._create_generic_token_with_metadata(user=create_user('testuser2'),
                                                 app='testapp',
                                                 token='test-token2',
                                                 expiration_datetime=None)
        expired_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser3'),
            app='testapp',
            token='test-token3',
            expiration_datetime=arrow.get(datetime(2015, 1, 1, 13, 30),
                                          settings.TIME_ZONE).datetime)

        with mock.patch(
                'django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                lambda: arrow.get(datetime(2015, 1, 1, 14), settings.TIME_ZONE
                                  ).datetime):
            self.assertEqual(
                GenericTokenWithMetadata.objects.filter_has_expired().count(),
                1)
            self.assertEqual(
                GenericTokenWithMetadata.objects.filter_has_expired().first(),
                expired_generic_token_with_metadata)
Example #3
0
 def test_generate_handle_not_unique(self):
     self._create_generic_token_with_metadata(user=create_user('testuser1'), app='testapp1', token='taken')
     tokens = iter(['taken', 'free'])
     with mock.patch('django_cradmin.apps.cradmin_generic_token_with_metadata.models.generate_token',
                     lambda: next(tokens)):
         unique_user_token = GenericTokenWithMetadata.objects.generate(
             content_object=create_user('testuser2'), app='testapp2',
             expiration_datetime=get_expiration_datetime_for_app('testapp'))
     self.assertEqual(unique_user_token.token, 'free')
 def test_email_is_more_than_30_chars(self):
     create_user('testuser', email='*****@*****.**')
     form = AuthUserCreateAccountAutoUsernameForm({
         'password1': 'unused',
         'password2': 'unused',
         'email': '*****@*****.**'
     })
     self.assertTrue(form.is_valid())
     user = form.save()
     self.assertEquals(user.username, '[email protected]')
Example #5
0
 def test_filter_by_content_object(self):
     testobject1 = create_user('testobject1')
     testobject2 = create_user('testobject2')
     generictoken = GenericTokenWithMetadata.objects.generate(
         content_object=testobject1, app='testapp',
         expiration_datetime=get_expiration_datetime_for_app('testapp'))
     self.assertEquals(
         GenericTokenWithMetadata.objects.filter_by_content_object(testobject1).get(),
         generictoken)
     self.assertEquals(GenericTokenWithMetadata.objects.filter_by_content_object(testobject2).count(), 0)
Example #6
0
 def test_username_is_not_unique(self):
     create_user('test')
     form = AuthUserCreateAccountForm({
         'username': '******',
         'password1': 'unused',
         'password2': 'unused',
         'email': '*****@*****.**'
     })
     self.assertFalse(form.is_valid())
     self.assertIn('username', form.errors)
     self.assertIn('name already exists', form.errors['username'][0])
 def test_email_is_not_unique(self):
     create_user('testuser', email='*****@*****.**')
     form = AuthUserCreateAccountAutoUsernameForm({
         'password1': 'unused',
         'password2': 'unused',
         'email': '*****@*****.**'
     })
     self.assertFalse(form.is_valid())
     self.assertEquals(form.errors, {
         'email': [u'Account with this email address already exists.']
     })
Example #8
0
    def test_is_expired(self):
        unexpired_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser1'), token='test-token1',
            expiration_datetime=datetime(2015, 1, 1, 14, 30))
        expired_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser2'), token='test-token2',
            expiration_datetime=datetime(2015, 1, 1, 13, 30))

        with mock.patch('django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                        lambda: datetime(2015, 1, 1, 14)):
            self.assertFalse(unexpired_generic_token_with_metadata.is_expired())
            self.assertTrue(expired_generic_token_with_metadata.is_expired())
 def test_email_makes_username_not_unique(self):
     create_user(
         username='******',
         email='*****@*****.**')
     form = AuthUserCreateAccountAutoUsernameForm({
         'password1': 'unused',
         'password2': 'unused',
         'email': '*****@*****.**'
     })
     self.assertTrue(form.is_valid())
     with self.assertRaisesRegexp(ValidationError, '^.*name already exists.*$'):
         form.save()
 def test_post_email_not_unique(self):
     create_user('testuser', email='*****@*****.**')
     response = self.client.post(self.url, {
         'username': '******',
         'password1': 'test',
         'password2': 'test',
         'email': '*****@*****.**'
     })
     self.assertEqual(response.status_code, 200)
     selector = htmls.S(response.content)
     self.assertEqual(
         selector.one('#id_email_wrapper .message--error').alltext_normalized,
         'Account with this email address already exists.')
Example #11
0
 def test_filter_by_content_object(self):
     testobject1 = create_user('testobject1')
     testobject2 = create_user('testobject2')
     generictoken = GenericTokenWithMetadata.objects.generate(
         content_object=testobject1,
         app='testapp',
         expiration_datetime=get_expiration_datetime_for_app('testapp'))
     self.assertEqual(
         GenericTokenWithMetadata.objects.filter_by_content_object(
             testobject1).get(), generictoken)
     self.assertEqual(
         GenericTokenWithMetadata.objects.filter_by_content_object(
             testobject2).count(), 0)
Example #12
0
 def test_generate_handle_not_unique(self):
     self._create_generic_token_with_metadata(user=create_user('testuser1'),
                                              app='testapp1',
                                              token='taken')
     tokens = iter(['taken', 'free'])
     with mock.patch(
             'django_cradmin.apps.cradmin_generic_token_with_metadata.models.generate_token',
             lambda: next(tokens)):
         unique_user_token = GenericTokenWithMetadata.objects.generate(
             content_object=create_user('testuser2'),
             app='testapp2',
             expiration_datetime=get_expiration_datetime_for_app('testapp'))
     self.assertEqual(unique_user_token.token, 'free')
Example #13
0
    def test_filter_not_expired_none(self):
        expired_none_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser1'), token='test-token1',
            expiration_datetime=None)
        self._create_generic_token_with_metadata(
            user=create_user('testuser2'), token='test-token2',
            expiration_datetime=datetime(2015, 1, 1, 13, 30))

        with mock.patch('django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                        lambda: datetime(2015, 1, 1, 14)):
            self.assertEquals(GenericTokenWithMetadata.objects.filter_not_expired().count(), 1)
            self.assertEquals(GenericTokenWithMetadata.objects.filter_not_expired().first(),
                              expired_none_generic_token_with_metadata)
Example #14
0
    def test_post_user_found(self):
        create_user('testuser', email='*****@*****.**')
        with mock.patch.object(BeginPasswordResetView, '_generate_token', lambda s, user: '******'):
            with self.settings(DJANGO_CRADMIN_SITENAME='Testsite'):
                response = self.client.post(self.url, {'email': '*****@*****.**'})
        self.assertRedirects(response, reverse('cradmin-resetpassword-email-sent'))

        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, 'Reset your Testsite password')
        self.assertIn('http://testserver/cradmin_resetpassword/reset/testtoken',
                      mail.outbox[0].alternatives[0][0])
        self.assertIn('We received a request to reset the password '
                      'for your Testsite account, testuser.',
                      mail.outbox[0].alternatives[0][0])
Example #15
0
 def test_post_email_not_unique(self):
     create_user('testuser', email='*****@*****.**')
     response = self.client.post(
         self.url, {
             'username': '******',
             'password1': 'test',
             'password2': 'test',
             'email': '*****@*****.**'
         })
     self.assertEqual(response.status_code, 200)
     selector = htmls.S(response.content)
     self.assertEqual(
         selector.one(
             '#id_email_wrapper .message--error').alltext_normalized,
         'Account with this email address already exists.')
Example #16
0
    def test_delete_expired_management_command(self):
        unexpired_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser1'), token='test-token1',
            expiration_datetime=datetime(2015, 1, 1, 14, 30))
        self._create_generic_token_with_metadata(
            user=create_user('testuser2'), token='test-token2',
            expiration_datetime=datetime(2015, 1, 1, 13, 30))

        self.assertEquals(GenericTokenWithMetadata.objects.count(), 2)
        with mock.patch('django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                        lambda: datetime(2015, 1, 1, 14)):
            call_command('cradmin_generic_token_with_metadata_delete_expired')
        self.assertEquals(GenericTokenWithMetadata.objects.count(), 1)
        self.assertEquals(GenericTokenWithMetadata.objects.first(),
                          unexpired_generic_token_with_metadata)
Example #17
0
    def test_is_expired(self):
        unexpired_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser1'),
            token='test-token1',
            expiration_datetime=datetime(2015, 1, 1, 14, 30))
        expired_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser2'),
            token='test-token2',
            expiration_datetime=datetime(2015, 1, 1, 13, 30))

        with mock.patch(
                'django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                lambda: datetime(2015, 1, 1, 14)):
            self.assertFalse(
                unexpired_generic_token_with_metadata.is_expired())
            self.assertTrue(expired_generic_token_with_metadata.is_expired())
Example #18
0
    def test_get_render_is_authenticated(self):
        request = self.factory.get('/test')
        request.user = create_user('testuser')
        token = self.__create_token()
        with self.settings(DJANGO_CRADMIN_SITENAME='Testsite'):
            response = AcceptInviteView.as_view()(request, token=token.token)
        self.assertEqual(response.status_code, 200)
        response.render()
        selector = htmls.S(response.content)
        self.assertTrue(
            selector.exists('button#django_cradmin_invite_accept_as_button'))
        self.assertEqual(
            selector.one(
                '#django_cradmin_invite_accept_register_account_button')
            ['href'],
            '/cradmin_register_account/?next=http%3A%2F%2Ftestserver%2Ftest')
        self.assertEqual(
            selector.one(
                '#django_cradmin_invite_accept_login_as_different_user_button')
            ['href'], '/cradmin_authenticate/logout?'
            'next=%2Faccounts%2Flogin%2F%3Fnext%3Dhttp%253A%252F%252Ftestserver%252Ftest'
        )

        self.assertEqual(
            selector.one('button#django_cradmin_invite_accept_as_button').
            alltext_normalized, 'Accept as testuser')
        self.assertEqual(
            selector.one(
                '#django_cradmin_invite_accept_register_account_button').
            alltext_normalized, 'Sign up for Testsite')
        self.assertEqual(
            selector.one(
                '#django_cradmin_invite_accept_login_as_different_user_button'
            ).alltext_normalized, 'Sign in as another user')
Example #19
0
    def test_get_render_is_authenticated(self):
        request = self.factory.get('/test')
        request.user = create_user('testuser')
        token = self.__create_token()
        with self.settings(DJANGO_CRADMIN_SITENAME='Testsite'):
            response = AcceptInviteView.as_view()(request, token=token.token)
        self.assertEqual(response.status_code, 200)
        response.render()
        selector = htmls.S(response.content)
        self.assertTrue(selector.exists('button#django_cradmin_invite_accept_as_button'))
        self.assertEqual(
            selector.one('#django_cradmin_invite_accept_register_account_button')['href'],
            '/cradmin_register_account/?next=http%3A%2F%2Ftestserver%2Ftest')
        self.assertEqual(
            selector.one('#django_cradmin_invite_accept_login_as_different_user_button')['href'],
            '/cradmin_authenticate/logout?'
            'next=%2Faccounts%2Flogin%2F%3Fnext%3Dhttp%253A%252F%252Ftestserver%252Ftest')

        self.assertEqual(
            selector.one('button#django_cradmin_invite_accept_as_button').alltext_normalized,
            'Accept as testuser')
        self.assertEqual(
            selector.one('#django_cradmin_invite_accept_register_account_button').alltext_normalized,
            'Sign up for Testsite')
        self.assertEqual(
            selector.one('#django_cradmin_invite_accept_login_as_different_user_button').alltext_normalized,
            'Sign in as another user')
Example #20
0
 def test_generate(self):
     testuser = create_user('testuser')
     unique_user_token = GenericTokenWithMetadata.objects.generate(
         content_object=testuser, app='testapp',
         expiration_datetime=get_expiration_datetime_for_app('testapp'))
     self.assertEqual(unique_user_token.content_object, testuser)
     self.assertEqual(unique_user_token.app, 'testapp')
     self.assertEqual(len(unique_user_token.token), 73)
Example #21
0
    def test_delete_expired_management_command(self):
        unexpired_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser1'),
            token='test-token1',
            expiration_datetime=datetime(2015, 1, 1, 14, 30))
        self._create_generic_token_with_metadata(user=create_user('testuser2'),
                                                 token='test-token2',
                                                 expiration_datetime=datetime(
                                                     2015, 1, 1, 13, 30))

        self.assertEquals(GenericTokenWithMetadata.objects.count(), 2)
        with mock.patch(
                'django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                lambda: datetime(2015, 1, 1, 14)):
            call_command('cradmin_generic_token_with_metadata_delete_expired')
        self.assertEquals(GenericTokenWithMetadata.objects.count(), 1)
        self.assertEquals(GenericTokenWithMetadata.objects.first(),
                          unexpired_generic_token_with_metadata)
Example #22
0
 def test_generate(self):
     testuser = create_user('testuser')
     unique_user_token = GenericTokenWithMetadata.objects.generate(
         content_object=testuser,
         app='testapp',
         expiration_datetime=get_expiration_datetime_for_app('testapp'))
     self.assertEqual(unique_user_token.content_object, testuser)
     self.assertEqual(unique_user_token.app, 'testapp')
     self.assertEqual(len(unique_user_token.token), 73)
Example #23
0
 def __create_token(self, metadata=None, expiration_datetime=None, **kwargs):
     generic_token_with_metadata = GenericTokenWithMetadata(
         created_datetime=timezone.now(),
         expiration_datetime=(expiration_datetime or (timezone.now() + timedelta(days=2))),
         content_object=create_user('invitecontentobject'),
         app='testapp',
         **kwargs)
     generic_token_with_metadata.metadata = metadata or {}
     generic_token_with_metadata.save()
     return generic_token_with_metadata
Example #24
0
 def test_unsafe_pop(self):
     testuser = create_user('testuser')
     self._create_generic_token_with_metadata(user=testuser, app='testapp1', token='test-token1')
     self._create_generic_token_with_metadata(user=testuser, app='testapp2', token='test-token2')
     self.assertEquals(GenericTokenWithMetadata.objects.unsafe_pop(
         token='test-token1', app='testapp1').content_object, testuser)
     self.assertEquals(GenericTokenWithMetadata.objects.count(), 1)
     self.assertEquals(GenericTokenWithMetadata.objects.unsafe_pop(
         token='test-token2', app='testapp2').content_object, testuser)
     self.assertEquals(GenericTokenWithMetadata.objects.count(), 0)
Example #25
0
    def test_filter_not_expired_none(self):
        expired_none_generic_token_with_metadata = self._create_generic_token_with_metadata(
            user=create_user('testuser1'),
            token='test-token1',
            expiration_datetime=None)
        self._create_generic_token_with_metadata(user=create_user('testuser2'),
                                                 token='test-token2',
                                                 expiration_datetime=datetime(
                                                     2015, 1, 1, 13, 30))

        with mock.patch(
                'django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                lambda: datetime(2015, 1, 1, 14)):
            self.assertEquals(
                GenericTokenWithMetadata.objects.filter_not_expired().count(),
                1)
            self.assertEquals(
                GenericTokenWithMetadata.objects.filter_not_expired().first(),
                expired_none_generic_token_with_metadata)
Example #26
0
    def test_pop_not_expired(self):
        testuser = create_user('testuser')
        self._create_generic_token_with_metadata(
            user=testuser, token='test-token',
            expiration_datetime=datetime(2015, 1, 1, 14, 30))

        with mock.patch('django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                        lambda: datetime(2015, 1, 1, 14)):
            self.assertEquals(GenericTokenWithMetadata.objects.pop(app='testapp', token='test-token').content_object,
                              testuser)
Example #27
0
    def test_pop_expired(self):
        self._create_generic_token_with_metadata(
            user=create_user('testuser'),
            app='testapp', token='test-token',
            expiration_datetime=datetime(2015, 1, 1, 13, 30))

        with mock.patch('django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                        lambda: datetime(2015, 1, 1, 14)):
            with self.assertRaises(GenericTokenWithMetadata.DoesNotExist):
                GenericTokenWithMetadata.objects.pop(app='testapp', token='test-token')
Example #28
0
    def test_pop_expired(self):
        self._create_generic_token_with_metadata(user=create_user('testuser'),
                                                 app='testapp',
                                                 token='test-token',
                                                 expiration_datetime=datetime(
                                                     2015, 1, 1, 13, 30))

        with mock.patch(
                'django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                lambda: datetime(2015, 1, 1, 14)):
            with self.assertRaises(GenericTokenWithMetadata.DoesNotExist):
                GenericTokenWithMetadata.objects.pop(app='testapp',
                                                     token='test-token')
Example #29
0
 def __create_token(self,
                    metadata=None,
                    expiration_datetime=None,
                    **kwargs):
     generic_token_with_metadata = GenericTokenWithMetadata(
         created_datetime=timezone.now(),
         expiration_datetime=(expiration_datetime
                              or (timezone.now() + timedelta(days=2))),
         content_object=create_user('invitecontentobject'),
         app='testapp',
         **kwargs)
     generic_token_with_metadata.metadata = metadata or {}
     generic_token_with_metadata.save()
     return generic_token_with_metadata
Example #30
0
    def test_pop_not_expired(self):
        testuser = create_user('testuser')
        self._create_generic_token_with_metadata(user=testuser,
                                                 token='test-token',
                                                 expiration_datetime=datetime(
                                                     2015, 1, 1, 14, 30))

        with mock.patch(
                'django_cradmin.apps.cradmin_generic_token_with_metadata.models._get_current_datetime',
                lambda: datetime(2015, 1, 1, 14)):
            self.assertEquals(
                GenericTokenWithMetadata.objects.pop(
                    app='testapp', token='test-token').content_object,
                testuser)
Example #31
0
 def test_unsafe_pop(self):
     testuser = create_user('testuser')
     self._create_generic_token_with_metadata(user=testuser,
                                              app='testapp1',
                                              token='test-token1')
     self._create_generic_token_with_metadata(user=testuser,
                                              app='testapp2',
                                              token='test-token2')
     self.assertEqual(
         GenericTokenWithMetadata.objects.unsafe_pop(
             token='test-token1', app='testapp1').content_object, testuser)
     self.assertEqual(GenericTokenWithMetadata.objects.count(), 1)
     self.assertEqual(
         GenericTokenWithMetadata.objects.unsafe_pop(
             token='test-token2', app='testapp2').content_object, testuser)
     self.assertEqual(GenericTokenWithMetadata.objects.count(), 0)
Example #32
0
    def setUp(self):
        self.testuser = create_user('testuser', email='*****@*****.**')

        # Any object will work as the target of invites.
        # We use a user object since we have that easily available
        self.invite_target = create_user('invitetarget')
Example #33
0
 def test_is_expired_expiration_datetime_none(self):
     tokenobject = self._create_generic_token_with_metadata(
         user=create_user('testuser2'), token='test-token2',
         expiration_datetime=None)
     self.assertFalse(tokenobject.is_expired())
Example #34
0
 def setUp(self):
     self.testuser = create_user('testuser', is_active=False)
Example #35
0
 def setUp(self):
     self.testuser = create_user('testuser', email='*****@*****.**')
 def setUp(self):
     self.testuser = create_user('testuser', is_active=False)
Example #37
0
 def test_is_expired_expiration_datetime_none(self):
     tokenobject = self._create_generic_token_with_metadata(
         user=create_user('testuser2'),
         token='test-token2',
         expiration_datetime=None)
     self.assertFalse(tokenobject.is_expired())
Example #38
0
 def test_post_is_authenticated(self):
     request = self.factory.post('/test')
     request.user = create_user('testuser')
     token = self.__create_token()
     response = AcceptInviteView.as_view()(request, token=token.token)
     self.assertEqual(response.content, b'OK')
Example #39
0
 def test_post_is_authenticated(self):
     request = self.factory.post('/test')
     request.user = create_user('testuser')
     token = self.__create_token()
     response = AcceptInviteView.as_view()(request, token=token.token)
     self.assertEqual(response.content, b'OK')
Example #40
0
 def setUp(self):
     self.testuser = create_user('testuser')
Example #41
0
 def setUp(self):
     self.testuser = create_user('testuser', email='*****@*****.**')
Example #42
0
 def setUp(self):
     self.testuser = create_user('testuser')