1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
from django.contrib.auth.models import User
from django.test import TestCase
from devel.utils import UserFinder
from devel.models import UserProfile
class DevelTest(TestCase):
def test_index(self):
response = self.client.get('/devel/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'/login/?next=/devel/')
def test_profile(self):
response = self.client.get('/devel/profile/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'/login/?next=/devel/profile/')
def test_newuser(self):
response = self.client.get('/devel/newuser/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'/login/?next=/devel/newuser/')
def test_mirrors(self):
response = self.client.get('/mirrors/')
self.assertEqual(response.status_code, 200)
def test_admin_log(self):
User.objects.create_superuser('admin', 'admin@archlinux.org', 'admin')
response = self.client.post('/login/', {'username': 'admin', 'password': 'admin'})
response = self.client.get('/devel/admin_log', follow=True)
self.assertEqual(response.status_code, 200)
class FindUserTest(TestCase):
def setUp(self):
self.finder = UserFinder()
self.user1 = User.objects.create(
username="joeuser", first_name="Joe", last_name="User", email="user1@example.com")
self.user2 = User.objects.create(
username="john", first_name="John", last_name="", email="user2@example.com")
self.user3 = User.objects.create(
username="bjones", first_name="Bob", last_name="Jones", email="user3@example.com")
for user in (self.user1, self.user2, self.user3):
email_addr = "%s@awesome.com" % user.username
UserProfile.objects.create(user=user, public_email=email_addr)
self.user4 = User.objects.create(
username="tim1", first_name="Tim", last_name="One", email="tim@example.com")
self.user5 = User.objects.create(
username="tim2", first_name="Tim", last_name="Two", email="timtwo@example.com")
def test_not_matching(self):
self.assertIsNone(self.finder.find(None))
self.assertIsNone(self.finder.find(""))
self.assertIsNone(self.finder.find("Bogus"))
self.assertIsNone(self.finder.find("Bogus <invalid"))
self.assertIsNone(self.finder.find("Bogus User <bogus@example.com>"))
self.assertIsNone(self.finder.find("<bogus@example.com>"))
self.assertIsNone(self.finder.find("bogus@example.com"))
self.assertIsNone(self.finder.find("Unknown Packager"))
def test_by_email(self):
self.assertEqual(
self.user1, self.finder.find("XXX YYY <user1@example.com>"))
self.assertEqual(
self.user2, self.finder.find("YYY ZZZ <user2@example.com>"))
def test_by_profile_email(self):
self.assertEqual(
self.user1, self.finder.find("XXX <joeuser@awesome.com>"))
self.assertEqual(
self.user2, self.finder.find("YYY <john@awesome.com>"))
self.assertEqual(
self.user3, self.finder.find("ZZZ <bjones@awesome.com>"))
def test_by_name(self):
self.assertEqual(
self.user1, self.finder.find("Joe User <joe@differentdomain.com>"))
self.assertEqual(
self.user1, self.finder.find("Joe User"))
self.assertEqual(
self.user2, self.finder.find("John <john@differentdomain.com>"))
self.assertEqual(
self.user2, self.finder.find("John"))
self.assertEqual(
self.user3, self.finder.find("Bob Jones <bjones AT Arch Linux DOT org>"))
def test_by_invalid(self):
self.assertEqual(
self.user1, self.finder.find("Joe User <user1@example.com"))
self.assertEqual(
self.user1, self.finder.find("Joe 'nickname' User <user1@example.com"))
self.assertEqual(
self.user1, self.finder.find("Joe \"nickname\" User <user1@example.com"))
self.assertEqual(
self.user1, self.finder.find("Joe User <joe@differentdomain.com"))
def test_cache(self):
# simply look two of them up, but then do it repeatedly
for _ in range(5):
self.assertEqual(
self.user1, self.finder.find("XXX YYY <user1@example.com>"))
self.assertEqual(
self.user3, self.finder.find("Bob Jones <bjones AT Arch Linux DOT org>"))
def test_ambiguous(self):
self.assertEqual(
self.user4, self.finder.find("Tim One <tim@anotherdomain.com>"))
self.assertEqual(
self.user5, self.finder.find("Tim Two <tim@anotherdomain.com>"))
self.assertIsNone(self.finder.find("Tim <tim@anotherdomain.com>"))
def test_find_by_username(self):
self.assertEqual(self.finder.find_by_username(None), None)
self.assertEqual(self.finder.find_by_username('noone'), None)
self.assertEqual(self.finder.find_by_username(self.user1.username), self.user1)
# Test cache
self.assertEqual(self.finder.find_by_username(self.user1.username), self.user1)
def test_find_by_email(self):
self.assertEqual(self.finder.find_by_email(None), None)
self.assertEqual(self.finder.find_by_email('bar@bar.com'), None)
self.assertEqual(self.finder.find_by_email(self.user1.email), self.user1)
# Test cache
self.assertEqual(self.finder.find_by_email(self.user1.email), self.user1)
# vim: set ts=4 sw=4 et:
|