GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

test_activation_email()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 15

Duplication

Lines 15
Ratio 100 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
c 2
b 0
f 0
dl 15
loc 15
rs 9.4285
1
# -*- coding: utf-8 -*-
2
from __future__ import unicode_literals
3
"""
4
"""
5
__author__ = 'Alisue <[email protected]>'
6
import datetime
7
from django.test import TestCase
8
from django.conf import settings
9
from django.core import mail
10
from django.core import management
11
12
from registration.compat import get_user_model
13
from registration.models import RegistrationProfile
14
from registration.utils import generate_activation_key
15
from registration.tests.mock import mock_site
16
from registration.tests.compat import override_settings
17
18
19
@override_settings(
20
    ACCOUNT_ACTIVATION_DAYS=7,
21
    REGISTRATION_OPEN=True,
22
    REGISTRATION_SUPPLEMENT_CLASS=None,
23
    REGISTRATION_BACKEND_CLASS=(
24
        'registration.backends.default.DefaultRegistrationBackend'),
25
)
26
class RegistrationProfileTestCase(TestCase):
27
    user_info = {
28
        'username': 'alice',
29
        'email': '[email protected]',
30
        'password': 'password'
31
    }
32
33
    def setUp(self):
34
        self.mock_site = mock_site()
35
36
    def create_inactive_user(self):
37
        User = get_user_model()
38
        new_user = User.objects.create_user(**self.user_info)
39
        new_user.set_unusable_password()
40
        new_user.is_active = False
41
        return new_user
42
43
    def test_profile_creation(self):
44
        new_user = self.create_inactive_user()
45
        profile = RegistrationProfile.objects.create(user=new_user)
46
47
        self.assertEqual(RegistrationProfile.objects.count(), 1)
48
        self.assertEqual(profile.user.id, new_user.id)
49
        self.assertEqual(profile.status, 'untreated')
50
        self.assertEqual(profile.activation_key, None)
51
        self.assertEqual(str(profile),
52
                         "Registration information for alice")
53
54
    def test_profile_status_modification(self):
55
        new_user = self.create_inactive_user()
56
        profile = RegistrationProfile.objects.create(user=new_user)
57
58
        profile.status = 'accepted'
59
        self.assertEqual(profile.status, 'accepted')
60
        self.assertNotEqual(profile.activation_key, None)
61
        self.assertEqual(profile.activation_key_expired(), False)
62
63
        profile.status = 'rejected'
64
        self.assertEqual(profile.status, 'rejected')
65
        self.assertEqual(profile.activation_key, None)
66
        self.assertEqual(profile.activation_key_expired(), False)
67
68
        profile.status = 'accepted'
69
        self.assertEqual(profile.status, 'accepted')
70
        self.assertNotEqual(profile.activation_key, None)
71
        self.assertEqual(profile.activation_key_expired(), False)
72
73
        profile.status = 'untreated'
74
        self.assertEqual(profile.status, 'untreated')
75
        self.assertEqual(profile.activation_key, None)
76
        self.assertEqual(profile.activation_key_expired(), False)
77
78
        new_user.date_joined -= datetime.timedelta(
79
            settings.ACCOUNT_ACTIVATION_DAYS+1
80
        )
81
        profile.status = 'untreated'
82
        self.assertEqual(profile.status, 'untreated')
83
        self.assertEqual(profile.activation_key_expired(), False)
84
        profile.status = 'rejected'
85
        self.assertEqual(profile.status, 'rejected')
86
        self.assertEqual(profile.activation_key_expired(), False)
87
        profile.status = 'accepted'
88
        # status = accepted change date_joined
89
        new_user.date_joined -= datetime.timedelta(
90
            settings.ACCOUNT_ACTIVATION_DAYS+1
91
        )
92
        self.assertEqual(profile.status, 'expired')
93
        self.assertEqual(profile.activation_key_expired(), True)
94
95
    def test_send_registration_email(self):
96
        new_user = self.create_inactive_user()
97
        profile = RegistrationProfile.objects.create(user=new_user)
98
        profile.send_registration_email(site=self.mock_site)
99
        self.assertEqual(len(mail.outbox), 1)
100
        self.assertEqual(mail.outbox[0].to, [self.user_info['email']])
101
102
    def test_send_activation_email(self):
103
        new_user = self.create_inactive_user()
104
        profile = RegistrationProfile.objects.create(user=new_user)
105
        profile.send_activation_email(site=self.mock_site)
106
        self.assertEqual(len(mail.outbox), 1)
107
        self.assertEqual(mail.outbox[0].to, [self.user_info['email']])
108
109
    def test_send_acceptance_email(self):
110
        new_user = self.create_inactive_user()
111
        profile = RegistrationProfile.objects.create(user=new_user)
112
        profile.send_acceptance_email(site=self.mock_site)
113
        self.assertEqual(len(mail.outbox), 1)
114
        self.assertEqual(mail.outbox[0].to, [self.user_info['email']])
115
116
    def test_send_rejection_email(self):
117
        new_user = self.create_inactive_user()
118
        profile = RegistrationProfile.objects.create(user=new_user)
119
        profile.status = 'rejected'
120
        profile.save()
121
        profile.send_rejection_email(site=self.mock_site)
122
        self.assertEqual(len(mail.outbox), 1)
123
        self.assertEqual(mail.outbox[0].to, [self.user_info['email']])
124
125
126
@override_settings(
127
    ACCOUNT_ACTIVATION_DAYS=7,
128
    REGISTRATION_OPEN=True,
129
    REGISTRATION_SUPPLEMENT_CLASS=None,
130
    REGISTRATION_BACKEND_CLASS=(
131
        'registration.backends.default.DefaultRegistrationBackend'),
132
)
133
class RegistrationProfileManagerTestCase(TestCase):
134
    user_info = {
135
        'username': 'alice',
136
        'email': '[email protected]',
137
    }
138
139
    def setUp(self):
140
        self.mock_site = mock_site()
141
142
    def test_register(self):
143
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
144
                                                        **self.user_info)
145
        self.assertEqual(new_user.username, 'alice')
146
        self.assertEqual(new_user.email, '[email protected]')
147
        self.failIf(new_user.is_active)
148
        self.failIf(new_user.has_usable_password())
149
150
    def test_register_email(self):
151
        RegistrationProfile.objects.register(site=self.mock_site,
152
                                             **self.user_info)
153
154
        self.assertEqual(len(mail.outbox), 1)
155
156
    def test_register_no_email(self):
157
        RegistrationProfile.objects.register(site=self.mock_site,
158
                                             send_email=False,
159
                                             **self.user_info)
160
161
        self.assertEqual(len(mail.outbox), 0)
162
163
    def test_acceptance(self):
164
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
165
                                                        send_email=False,
166
                                                        **self.user_info)
167
168
        profile = new_user.registration_profile
169
        RegistrationProfile.objects.accept_registration(profile,
170
                                                        site=self.mock_site)
171
172
        self.assertEqual(profile.status, 'accepted')
173
        self.assertNotEqual(profile.activation_key, None)
174
175
    def test_acceptance_email(self):
176
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
177
                                                        send_email=False,
178
                                                        **self.user_info)
179
180
        profile = new_user.registration_profile
181
        RegistrationProfile.objects.accept_registration(profile,
182
                                                        site=self.mock_site)
183
184
        self.assertEqual(len(mail.outbox), 1)
185
186
    def test_acceptance_no_email(self):
187
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
188
                                                        send_email=False,
189
                                                        **self.user_info)
190
191
        profile = new_user.registration_profile
192
        RegistrationProfile.objects.accept_registration(profile,
193
                                                        site=self.mock_site,
194
                                                        send_email=False)
195
196
        self.assertEqual(len(mail.outbox), 0)
197
198
    def test_acceptance_force(self):
199
        user1 = RegistrationProfile.objects.register(
200
            username='user1', email='[email protected]',
201
            site=self.mock_site, send_email=False,
202
        )
203
        user2 = RegistrationProfile.objects.register(
204
            username='user2', email='[email protected]',
205
            site=self.mock_site, send_email=False,
206
        )
207
        RegistrationProfile.objects.accept_registration(
208
            user1.registration_profile, site=self.mock_site
209
        )
210
        RegistrationProfile.objects.reject_registration(
211
            user2.registration_profile, site=self.mock_site
212
        )
213
214
        # from accepted => accepted
215
        profile = user1.registration_profile
216
        previous_activation_key = profile.activation_key
217
        RegistrationProfile.objects.accept_registration(profile,
218
                                                        site=self.mock_site,
219
                                                        force=True)
220
        self.assertEqual(profile.status, 'accepted')
221
        self.assertNotEqual(profile.activation_key, previous_activation_key)
222
223
        # from rejected => accepted
224
        profile = user2.registration_profile
225
        RegistrationProfile.objects.accept_registration(profile,
226
                                                        site=self.mock_site,
227
                                                        force=True)
228
        self.assertEqual(profile.status, 'accepted')
229
        self.assertNotEqual(profile.activation_key, None)
230
231
    def test_rejection(self):
232
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
233
                                                        send_email=False,
234
                                                        **self.user_info)
235
236
        profile = new_user.registration_profile
237
        RegistrationProfile.objects.reject_registration(profile,
238
                                                        site=self.mock_site)
239
240
        self.assertEqual(profile.status, 'rejected')
241
        self.assertEqual(profile.activation_key, None)
242
243
    def test_rejection_email(self):
244
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
245
                                                        send_email=False,
246
                                                        **self.user_info)
247
248
        profile = new_user.registration_profile
249
        RegistrationProfile.objects.reject_registration(profile,
250
                                                        site=self.mock_site)
251
252
        self.assertEqual(len(mail.outbox), 1)
253
254
    def test_rejection_no_email(self):
255
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
256
                                                        send_email=False,
257
                                                        **self.user_info)
258
259
        profile = new_user.registration_profile
260
        RegistrationProfile.objects.reject_registration(profile,
261
                                                        site=self.mock_site,
262
                                                        send_email=False)
263
264
        self.assertEqual(len(mail.outbox), 0)
265
266
    def test_acceptance_after_rejection_success(self):
267
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
268
                                                        send_email=False,
269
                                                        **self.user_info)
270
271
        profile = new_user.registration_profile
272
273
        # reject
274
        result = RegistrationProfile.objects.reject_registration(
275
            profile, site=self.mock_site
276
        )
277
        self.failUnless(result)
278
        self.assertEqual(profile.status, 'rejected')
279
        self.assertEqual(profile.activation_key, None)
280
281
        # accept should work even after rejection
282
        result = RegistrationProfile.objects.accept_registration(
283
            profile, site=self.mock_site
284
        )
285
        self.failUnless(result)
286
        self.assertEqual(profile.status, 'accepted')
287
        self.assertNotEqual(profile.activation_key, None)
288
289 View Code Duplication
    def test_acceptance_after_acceptance_fail(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
290
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
291
                                                        send_email=False,
292
                                                        **self.user_info)
293
294
        profile = new_user.registration_profile
295
296
        # accept
297
        result = RegistrationProfile.objects.accept_registration(
298
            profile, site=self.mock_site
299
        )
300
        self.failUnless(result)
301
        self.assertEqual(profile.status, 'accepted')
302
        self.assertNotEqual(profile.activation_key, None)
303
304
        # accept should not work
305
        result = RegistrationProfile.objects.accept_registration(
306
            profile, site=self.mock_site
307
        )
308
        self.failIf(result)
309
        self.assertEqual(profile.status, 'accepted')
310
        self.assertNotEqual(profile.activation_key, None)
311
312
    def test_rejection_after_acceptance_fail(self):
313
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
314
                                                        send_email=False,
315
                                                        **self.user_info)
316
317
        profile = new_user.registration_profile
318
319
        # accept
320
        result = RegistrationProfile.objects.accept_registration(
321
            profile, site=self.mock_site
322
        )
323
        self.failUnless(result)
324
        self.assertEqual(profile.status, 'accepted')
325
        self.assertNotEqual(profile.activation_key, None)
326
327
        # reject should not work
328
        result = RegistrationProfile.objects.reject_registration(
329
            profile, site=self.mock_site
330
        )
331
        self.failIf(result)
332
        self.assertEqual(profile.status, 'accepted')
333
        self.assertNotEqual(profile.activation_key, None)
334
335 View Code Duplication
    def test_rejection_after_rejection_fail(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
336
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
337
                                                        send_email=False,
338
                                                        **self.user_info)
339
340
        profile = new_user.registration_profile
341
342
        # accept
343
        result = RegistrationProfile.objects.reject_registration(
344
            profile, site=self.mock_site
345
        )
346
        self.failUnless(result)
347
        self.assertEqual(profile.status, 'rejected')
348
        self.assertEqual(profile.activation_key, None)
349
350
        # reject should not work
351
        result = RegistrationProfile.objects.reject_registration(
352
            profile, site=self.mock_site
353
        )
354
        self.failIf(result)
355
        self.assertEqual(profile.status, 'rejected')
356
        self.assertEqual(profile.activation_key, None)
357
358 View Code Duplication
    def test_activation_with_password(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
359
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
360
                                                        send_email=False,
361
                                                        **self.user_info)
362
363
        profile = new_user.registration_profile
364
        RegistrationProfile.objects.accept_registration(
365
            profile, site=self.mock_site, send_email=False
366
        )
367
        activated = RegistrationProfile.objects.activate_user(
368
                activation_key=profile.activation_key,
369
                site=self.mock_site,
370
                password='swordfish',
371
                send_email=False)
372
373
        self.failUnless(activated)
374
375
        activated_user, password, is_generated = activated
376
377
        self.assertEqual(new_user, activated_user)
378
        self.assertEqual(password, 'swordfish')
379
        self.assertEqual(is_generated, False)
380
        # the user should be activated with the password
381
        self.failUnless(activated_user.is_active)
382
        self.failUnless(activated_user.has_usable_password())
383
        self.failUnless(activated_user.check_password(password))
384
        # inspection profile should be deleted
385
        self.failIf(RegistrationProfile.objects.filter(pk=profile.pk).exists())
386
387 View Code Duplication
    def test_activation_without_password(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
388
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
389
                                                        send_email=False,
390
                                                        **self.user_info)
391
392
        profile = new_user.registration_profile
393
        RegistrationProfile.objects.accept_registration(
394
            profile, site=self.mock_site, send_email=False
395
        )
396
        activated = RegistrationProfile.objects.activate_user(
397
            activation_key=profile.activation_key,
398
            site=self.mock_site,
399
            send_email=False
400
        )
401
402
        self.failUnless(activated)
403
404
        activated_user, password, is_generated = activated
405
406
        self.assertEqual(new_user, activated_user)
407
        self.assertEqual(len(password),
408
                         settings.REGISTRATION_DEFAULT_PASSWORD_LENGTH)
409
        self.assertEqual(is_generated, True)
410
        # the user should be activated with the password
411
        self.failUnless(activated_user.is_active)
412
        self.failUnless(activated_user.has_usable_password())
413
        self.failUnless(activated_user.check_password(password))
414
        # inspection profile should be deleted
415
        self.failIf(RegistrationProfile.objects.filter(pk=profile.pk).exists())
416
417 View Code Duplication
    def test_activation_email(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
418
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
419
                                                        send_email=False,
420
                                                        **self.user_info)
421
422
        profile = new_user.registration_profile
423
        RegistrationProfile.objects.accept_registration(
424
            profile, site=self.mock_site, send_email=False
425
        )
426
        RegistrationProfile.objects.activate_user(
427
            activation_key=profile.activation_key,
428
            site=self.mock_site,
429
        )
430
431
        self.assertEqual(len(mail.outbox), 1)
432
433 View Code Duplication
    def test_activation_no_email(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
434
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
435
                                                        send_email=False,
436
                                                        **self.user_info)
437
438
        profile = new_user.registration_profile
439
        RegistrationProfile.objects.accept_registration(
440
            profile, site=self.mock_site, send_email=False
441
        )
442
        RegistrationProfile.objects.activate_user(
443
            activation_key=profile.activation_key,
444
            site=self.mock_site,
445
            send_email=False
446
        )
447
448
        self.assertEqual(len(mail.outbox), 0)
449
450 View Code Duplication
    def test_activation_with_untreated_fail(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
451
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
452
                                                        send_email=False,
453
                                                        **self.user_info)
454
455
        profile = new_user.registration_profile
456
457
        result = RegistrationProfile.objects.activate_user(
458
            activation_key=profile.activation_key,
459
            site=self.mock_site,
460
            password='swordfish'
461
        )
462
463
        self.failIf(result)
464
        # the user should not be activated
465
        self.failIf(new_user.is_active)
466
        self.failIf(new_user.has_usable_password())
467
        self.failIf(new_user.check_password('swordfish'))
468
        # inspection profile should not be deleted
469
        self.failUnless(
470
            RegistrationProfile.objects.filter(pk=profile.pk).exists()
471
        )
472
473 View Code Duplication
    def test_activation_with_rejected_fail(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
474
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
475
                                                        send_email=False,
476
                                                        **self.user_info)
477
478
        profile = new_user.registration_profile
479
        RegistrationProfile.objects.reject_registration(
480
            profile, site=self.mock_site
481
        )
482
483
        result = RegistrationProfile.objects.activate_user(
484
            activation_key=profile.activation_key,
485
            site=self.mock_site,
486
            password='swordfish'
487
        )
488
489
        self.failIf(result)
490
        # the user should not be activated
491
        self.failIf(new_user.is_active)
492
        self.failIf(new_user.has_usable_password())
493
        self.failIf(new_user.check_password('swordfish'))
494
        # inspection profile should not be deleted
495
        self.failUnless(
496
            RegistrationProfile.objects.filter(pk=profile.pk).exists()
497
        )
498
499 View Code Duplication
    def test_activation_with_expired_fail(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
500
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
501
                                                        send_email=False,
502
                                                        **self.user_info)
503
504
        profile = new_user.registration_profile
505
        RegistrationProfile.objects.accept_registration(
506
            profile, site=self.mock_site
507
        )
508
509
        new_user.date_joined -= datetime.timedelta(
510
            days=settings.ACCOUNT_ACTIVATION_DAYS + 1
511
        )
512
        new_user.save()
513
514
        result = RegistrationProfile.objects.activate_user(
515
            activation_key=profile.activation_key,
516
            site=self.mock_site,
517
            password='swordfish'
518
        )
519
520
        self.failIf(result)
521
        # the user should not be activated
522
        self.failIf(new_user.is_active)
523
        self.failIf(new_user.has_usable_password())
524
        self.failIf(new_user.check_password('swordfish'))
525
        # inspection profile should not be deleted
526
        self.failUnless(
527
            RegistrationProfile.objects.filter(pk=profile.pk).exists()
528
        )
529
530 View Code Duplication
    def test_activation_with_invalid_key_fail(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
531
        new_user = RegistrationProfile.objects.register(site=self.mock_site,
532
                                                        send_email=False,
533
                                                        **self.user_info)
534
535
        profile = new_user.registration_profile
536
        RegistrationProfile.objects.accept_registration(
537
            profile, site=self.mock_site
538
        )
539
540
        result = RegistrationProfile.objects.activate_user(
541
            activation_key='foo',
542
            site=self.mock_site,
543
            password='swordfish'
544
        )
545
546
        self.failIf(result)
547
        # the user should not be activated
548
        self.failIf(new_user.is_active)
549
        self.failIf(new_user.has_usable_password())
550
        self.failIf(new_user.check_password('swordfish'))
551
        # inspection profile should not be deleted
552
        self.failUnless(
553
            RegistrationProfile.objects.filter(pk=profile.pk).exists()
554
        )
555
556 View Code Duplication
    def test_expired_user_deletion(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
557
        RegistrationProfile.objects.register(
558
            username='new_untreated_user',
559
            email='[email protected]',
560
            site=self.mock_site,
561
        )
562
        new_accepted_user = RegistrationProfile.objects.register(
563
            username='new_accepted_user',
564
            email='[email protected]',
565
            site=self.mock_site,
566
        )
567
        new_rejected_user = RegistrationProfile.objects.register(
568
            username='new_rejected_user',
569
            email='[email protected]',
570
            site=self.mock_site,
571
        )
572
        expired_untreated_user = RegistrationProfile.objects.register(
573
            username='expired untreated user',
574
            email='[email protected]',
575
            site=self.mock_site,
576
        )
577
        expired_accepted_user = RegistrationProfile.objects.register(
578
            username='expired_accepted_user',
579
            email='[email protected]',
580
            site=self.mock_site,
581
        )
582
        expired_rejected_user = RegistrationProfile.objects.register(
583
            username='expired_rejected_user',
584
            email='[email protected]',
585
            site=self.mock_site,
586
        )
587
588
        RegistrationProfile.objects.accept_registration(
589
            new_accepted_user.registration_profile,
590
            site=self.mock_site,
591
        )
592
        RegistrationProfile.objects.reject_registration(
593
            new_rejected_user.registration_profile,
594
            site=self.mock_site,
595
        )
596
        RegistrationProfile.objects.accept_registration(
597
            expired_accepted_user.registration_profile,
598
            site=self.mock_site,
599
        )
600
        RegistrationProfile.objects.reject_registration(
601
            expired_rejected_user.registration_profile,
602
            site=self.mock_site,
603
        )
604
605
        delta = datetime.timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS+1)
606
607
        expired_untreated_user.date_joined -= delta
608
        expired_untreated_user.save()
609
        expired_accepted_user.date_joined -= delta
610
        expired_accepted_user.save()
611
        expired_rejected_user.date_joined -= delta
612
        expired_rejected_user.save()
613
614
        RegistrationProfile.objects.delete_expired_users()
615
        # Only expired_accepted_user is deleted
616
        User = get_user_model()
617
        self.assertEqual(RegistrationProfile.objects.count(), 5)
618
        self.assertRaises(User.DoesNotExist,
619
                          User.objects.get,
620
                          username='expired_accepted_user')
621
622 View Code Duplication
    def test_rejected_user_deletion(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
623
        RegistrationProfile.objects.register(
624
            username='new_untreated_user',
625
            email='[email protected]',
626
            site=self.mock_site,
627
        )
628
        new_accepted_user = RegistrationProfile.objects.register(
629
            username='new_accepted_user',
630
            email='[email protected]',
631
            site=self.mock_site,
632
        )
633
        new_rejected_user = RegistrationProfile.objects.register(
634
            username='new_rejected_user',
635
            email='[email protected]',
636
            site=self.mock_site,
637
        )
638
        expired_untreated_user = RegistrationProfile.objects.register(
639
            username='expired untreated user',
640
            email='[email protected]',
641
            site=self.mock_site,
642
        )
643
        expired_accepted_user = RegistrationProfile.objects.register(
644
            username='expired_accepted_user',
645
            email='[email protected]',
646
            site=self.mock_site,
647
        )
648
        expired_rejected_user = RegistrationProfile.objects.register(
649
            username='expired_rejected_user',
650
            email='[email protected]',
651
            site=self.mock_site,
652
        )
653
654
        RegistrationProfile.objects.accept_registration(
655
            new_accepted_user.registration_profile,
656
            site=self.mock_site,
657
        )
658
        RegistrationProfile.objects.reject_registration(
659
            new_rejected_user.registration_profile,
660
            site=self.mock_site,
661
        )
662
        RegistrationProfile.objects.accept_registration(
663
            expired_accepted_user.registration_profile,
664
            site=self.mock_site,
665
        )
666
        RegistrationProfile.objects.reject_registration(
667
            expired_rejected_user.registration_profile,
668
            site=self.mock_site,
669
        )
670
671
        delta = datetime.timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS+1)
672
673
        expired_untreated_user.date_joined -= delta
674
        expired_untreated_user.save()
675
        expired_accepted_user.date_joined -= delta
676
        expired_accepted_user.save()
677
        expired_rejected_user.date_joined -= delta
678
        expired_rejected_user.save()
679
680
        RegistrationProfile.objects.delete_rejected_users()
681
        # new_rejected_user and expired_rejected_user are deleted
682
        User = get_user_model()
683
        self.assertEqual(RegistrationProfile.objects.count(), 4)
684
        self.assertRaises(User.DoesNotExist,
685
                          User.objects.get,
686
                          username='new_rejected_user')
687
        self.assertRaises(User.DoesNotExist,
688
                          User.objects.get,
689
                          username='expired_rejected_user')
690
691 View Code Duplication
    def test_management_command_cleanup_expired_registrations(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
692
        RegistrationProfile.objects.register(
693
            username='new_untreated_user',
694
            email='[email protected]',
695
            site=self.mock_site,
696
        )
697
        new_accepted_user = RegistrationProfile.objects.register(
698
            username='new_accepted_user',
699
            email='[email protected]',
700
            site=self.mock_site,
701
        )
702
        new_rejected_user = RegistrationProfile.objects.register(
703
            username='new_rejected_user',
704
            email='[email protected]',
705
            site=self.mock_site,
706
        )
707
        expired_untreated_user = RegistrationProfile.objects.register(
708
            username='expired untreated user',
709
            email='[email protected]',
710
            site=self.mock_site,
711
        )
712
        expired_accepted_user = RegistrationProfile.objects.register(
713
            username='expired_accepted_user',
714
            email='[email protected]',
715
            site=self.mock_site,
716
        )
717
        expired_rejected_user = RegistrationProfile.objects.register(
718
            username='expired_rejected_user',
719
            email='[email protected]',
720
            site=self.mock_site,
721
        )
722
723
        RegistrationProfile.objects.accept_registration(
724
            new_accepted_user.registration_profile,
725
            site=self.mock_site,
726
        )
727
        RegistrationProfile.objects.reject_registration(
728
            new_rejected_user.registration_profile,
729
            site=self.mock_site,
730
        )
731
        RegistrationProfile.objects.accept_registration(
732
            expired_accepted_user.registration_profile,
733
            site=self.mock_site,
734
        )
735
        RegistrationProfile.objects.reject_registration(
736
            expired_rejected_user.registration_profile,
737
            site=self.mock_site,
738
        )
739
740
        delta = datetime.timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS+1)
741
742
        expired_untreated_user.date_joined -= delta
743
        expired_untreated_user.save()
744
        expired_accepted_user.date_joined -= delta
745
        expired_accepted_user.save()
746
        expired_rejected_user.date_joined -= delta
747
        expired_rejected_user.save()
748
749
        management.call_command('cleanup_expired_registrations')
750
        # Only expired_accepted_user is deleted
751
        User = get_user_model()
752
        self.assertEqual(RegistrationProfile.objects.count(), 5)
753
        self.assertRaises(User.DoesNotExist, User.objects.get,
754
                          username='expired_accepted_user')
755
756 View Code Duplication
    def test_management_command_cleanup_rejected_registrations(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
757
        RegistrationProfile.objects.register(
758
            username='new_untreated_user',
759
            email='[email protected]',
760
            site=self.mock_site,
761
        )
762
        new_accepted_user = RegistrationProfile.objects.register(
763
            username='new_accepted_user',
764
            email='[email protected]',
765
            site=self.mock_site,
766
        )
767
        new_rejected_user = RegistrationProfile.objects.register(
768
            username='new_rejected_user',
769
            email='[email protected]',
770
            site=self.mock_site,
771
        )
772
        expired_untreated_user = RegistrationProfile.objects.register(
773
            username='expired untreated user',
774
            email='[email protected]',
775
            site=self.mock_site,
776
        )
777
        expired_accepted_user = RegistrationProfile.objects.register(
778
            username='expired_accepted_user',
779
            email='[email protected]',
780
            site=self.mock_site,
781
        )
782
        expired_rejected_user = RegistrationProfile.objects.register(
783
            username='expired_rejected_user',
784
            email='[email protected]',
785
            site=self.mock_site,
786
        )
787
788
        RegistrationProfile.objects.accept_registration(
789
            new_accepted_user.registration_profile,
790
            site=self.mock_site,
791
        )
792
        RegistrationProfile.objects.reject_registration(
793
            new_rejected_user.registration_profile,
794
            site=self.mock_site,
795
        )
796
        RegistrationProfile.objects.accept_registration(
797
            expired_accepted_user.registration_profile,
798
            site=self.mock_site,
799
        )
800
        RegistrationProfile.objects.reject_registration(
801
            expired_rejected_user.registration_profile,
802
            site=self.mock_site,
803
        )
804
805
        delta = datetime.timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS+1)
806
807
        expired_untreated_user.date_joined -= delta
808
        expired_untreated_user.save()
809
        expired_accepted_user.date_joined -= delta
810
        expired_accepted_user.save()
811
        expired_rejected_user.date_joined -= delta
812
        expired_rejected_user.save()
813
814
        management.call_command('cleanup_rejected_registrations')
815
        # new_rejected_user and expired_rejected_user are deleted
816
        User = get_user_model()
817
        self.assertEqual(RegistrationProfile.objects.count(), 4)
818
        self.assertRaises(User.DoesNotExist, User.objects.get,
819
                          username='new_rejected_user')
820
        self.assertRaises(User.DoesNotExist, User.objects.get,
821
                          username='expired_rejected_user')
822
823
    def test_management_command_cleanup_registrations(self):
824
        RegistrationProfile.objects.register(
825
            username='new_untreated_user',
826
            email='[email protected]',
827
            site=self.mock_site,
828
        )
829
        new_accepted_user = RegistrationProfile.objects.register(
830
            username='new_accepted_user',
831
            email='[email protected]',
832
            site=self.mock_site,
833
        )
834
        new_rejected_user = RegistrationProfile.objects.register(
835
            username='new_rejected_user',
836
            email='[email protected]',
837
            site=self.mock_site,
838
        )
839
        expired_untreated_user = RegistrationProfile.objects.register(
840
            username='expired untreated user',
841
            email='[email protected]',
842
            site=self.mock_site,
843
        )
844
        expired_accepted_user = RegistrationProfile.objects.register(
845
            username='expired_accepted_user',
846
            email='[email protected]',
847
            site=self.mock_site,
848
        )
849
        expired_rejected_user = RegistrationProfile.objects.register(
850
            username='expired_rejected_user',
851
            email='[email protected]',
852
            site=self.mock_site,
853
        )
854
855
        RegistrationProfile.objects.accept_registration(
856
            new_accepted_user.registration_profile,
857
            site=self.mock_site,
858
        )
859
        RegistrationProfile.objects.reject_registration(
860
            new_rejected_user.registration_profile,
861
            site=self.mock_site,
862
        )
863
        RegistrationProfile.objects.accept_registration(
864
            expired_accepted_user.registration_profile,
865
            site=self.mock_site,
866
        )
867
        RegistrationProfile.objects.reject_registration(
868
            expired_rejected_user.registration_profile,
869
            site=self.mock_site,
870
        )
871
872
        delta = datetime.timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS+1)
873
874
        expired_untreated_user.date_joined -= delta
875
        expired_untreated_user.save()
876
        expired_accepted_user.date_joined -= delta
877
        expired_accepted_user.save()
878
        expired_rejected_user.date_joined -= delta
879
        expired_rejected_user.save()
880
881
        management.call_command('cleanup_registrations')
882
        # new_rejected_user, expired rejected_user and expired_accepted_user
883
        # are deleted
884
        User = get_user_model()
885
        self.assertEqual(RegistrationProfile.objects.count(), 3)
886
        self.assertRaises(User.DoesNotExist, User.objects.get,
887
                          username='new_rejected_user')
888
        self.assertRaises(User.DoesNotExist, User.objects.get,
889
                          username='expired_rejected_user')
890
        self.assertRaises(User.DoesNotExist, User.objects.get,
891
                          username='expired_accepted_user')
892
893
    def test_management_command_cleanupregistration(self):
894
        RegistrationProfile.objects.register(
895
            username='new_untreated_user',
896
            email='[email protected]',
897
            site=self.mock_site,
898
        )
899
        new_accepted_user = RegistrationProfile.objects.register(
900
            username='new_accepted_user',
901
            email='[email protected]',
902
            site=self.mock_site,
903
        )
904
        new_rejected_user = RegistrationProfile.objects.register(
905
            username='new_rejected_user',
906
            email='[email protected]',
907
            site=self.mock_site,
908
        )
909
        expired_untreated_user = RegistrationProfile.objects.register(
910
            username='expired untreated user',
911
            email='[email protected]',
912
            site=self.mock_site,
913
        )
914
        expired_accepted_user = RegistrationProfile.objects.register(
915
            username='expired_accepted_user',
916
            email='[email protected]',
917
            site=self.mock_site,
918
        )
919
        expired_rejected_user = RegistrationProfile.objects.register(
920
            username='expired_rejected_user',
921
            email='[email protected]',
922
            site=self.mock_site,
923
        )
924
925
        RegistrationProfile.objects.accept_registration(
926
            new_accepted_user.registration_profile,
927
            site=self.mock_site,
928
        )
929
        RegistrationProfile.objects.reject_registration(
930
            new_rejected_user.registration_profile,
931
            site=self.mock_site,
932
        )
933
        RegistrationProfile.objects.accept_registration(
934
            expired_accepted_user.registration_profile,
935
            site=self.mock_site,
936
        )
937
        RegistrationProfile.objects.reject_registration(
938
            expired_rejected_user.registration_profile,
939
            site=self.mock_site,
940
        )
941
942
        delta = datetime.timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS+1)
943
944
        expired_untreated_user.date_joined -= delta
945
        expired_untreated_user.save()
946
        expired_accepted_user.date_joined -= delta
947
        expired_accepted_user.save()
948
        expired_rejected_user.date_joined -= delta
949
        expired_rejected_user.save()
950
951
        # django-registration compatibility
952
        management.call_command('cleanupregistration')
953
        # new_rejected_user, expired rejected_user and expired_accepted_user
954
        # are deleted
955
        User = get_user_model()
956
        self.assertEqual(RegistrationProfile.objects.count(), 3)
957
        self.assertRaises(User.DoesNotExist, User.objects.get,
958
                          username='new_rejected_user')
959
        self.assertRaises(User.DoesNotExist, User.objects.get,
960
                          username='expired_rejected_user')
961
        self.assertRaises(User.DoesNotExist, User.objects.get,
962
                          username='expired_accepted_user')
963