##// END OF EJS Templates
fixed issue with empty APIKEYS on registration #438
marcink -
r2248:72542dc5 beta
parent child Browse files
Show More
@@ -38,6 +38,7 b' fixes'
38 - fixed remote-pulling for git remotes remopositories
38 - fixed remote-pulling for git remotes remopositories
39 - fixed #434: Error when accessing files or changesets of a git repository
39 - fixed #434: Error when accessing files or changesets of a git repository
40 with submodules
40 with submodules
41 - fixed issue with empty APIKEYS for users after registration ref. #438
41
42
42 1.3.4 (**2012-03-28**)
43 1.3.4 (**2012-03-28**)
43 ----------------------
44 ----------------------
@@ -1233,7 +1233,8 b' class Notification(Base, BaseModel):'
1233 @property
1233 @property
1234 def recipients(self):
1234 def recipients(self):
1235 return [x.user for x in UserNotification.query()\
1235 return [x.user for x in UserNotification.query()\
1236 .filter(UserNotification.notification == self).all()]
1236 .filter(UserNotification.notification == self)\
1237 .order_by(UserNotification.user).all()]
1237
1238
1238 @classmethod
1239 @classmethod
1239 def create(cls, created_by, subject, body, recipients, type_=None):
1240 def create(cls, created_by, subject, body, recipients, type_=None):
@@ -225,10 +225,8 b' class UserModel(BaseModel):'
225 from rhodecode.model.notification import NotificationModel
225 from rhodecode.model.notification import NotificationModel
226
226
227 try:
227 try:
228 new_user = User()
228 form_data['admin'] = False
229 for k, v in form_data.items():
229 new_user = self.create(form_data)
230 if k != 'admin':
231 setattr(new_user, k, v)
232
230
233 self.sa.add(new_user)
231 self.sa.add(new_user)
234 self.sa.flush()
232 self.sa.flush()
@@ -54,7 +54,6 b' class TestLoginController(TestController'
54 self.assertEqual(response.status, '200 OK')
54 self.assertEqual(response.status, '200 OK')
55 self.assertTrue('Users administration' in response.body)
55 self.assertTrue('Users administration' in response.body)
56
56
57
58 def test_login_short_password(self):
57 def test_login_short_password(self):
59 response = self.app.post(url(controller='login', action='index'),
58 response = self.app.post(url(controller='login', action='index'),
60 {'username':'test_admin',
59 {'username':'test_admin',
@@ -101,7 +100,7 b' class TestLoginController(TestController'
101 'lastname':'test'})
100 'lastname':'test'})
102
101
103 self.assertEqual(response.status , '200 OK')
102 self.assertEqual(response.status , '200 OK')
104 assert 'This e-mail address is already taken' in response.body
103 response.mustcontain('This e-mail address is already taken')
105
104
106 def test_register_err_same_email_case_sensitive(self):
105 def test_register_err_same_email_case_sensitive(self):
107 response = self.app.post(url(controller='login', action='register'),
106 response = self.app.post(url(controller='login', action='register'),
@@ -112,7 +111,7 b' class TestLoginController(TestController'
112 'name':'test',
111 'name':'test',
113 'lastname':'test'})
112 'lastname':'test'})
114 self.assertEqual(response.status , '200 OK')
113 self.assertEqual(response.status , '200 OK')
115 assert 'This e-mail address is already taken' in response.body
114 response.mustcontain('This e-mail address is already taken')
116
115
117 def test_register_err_wrong_data(self):
116 def test_register_err_wrong_data(self):
118 response = self.app.post(url(controller='login', action='register'),
117 response = self.app.post(url(controller='login', action='register'),
@@ -123,9 +122,8 b' class TestLoginController(TestController'
123 'name':'test',
122 'name':'test',
124 'lastname':'test'})
123 'lastname':'test'})
125 self.assertEqual(response.status , '200 OK')
124 self.assertEqual(response.status , '200 OK')
126 assert 'An email address must contain a single @' in response.body
125 response.mustcontain('An email address must contain a single @')
127 assert 'Enter a value 6 characters long or more' in response.body
126 response.mustcontain('Enter a value 6 characters long or more')
128
129
127
130 def test_register_err_username(self):
128 def test_register_err_username(self):
131 response = self.app.post(url(controller='login', action='register'),
129 response = self.app.post(url(controller='login', action='register'),
@@ -137,11 +135,11 b' class TestLoginController(TestController'
137 'lastname':'test'})
135 'lastname':'test'})
138
136
139 self.assertEqual(response.status , '200 OK')
137 self.assertEqual(response.status , '200 OK')
140 assert 'An email address must contain a single @' in response.body
138 response.mustcontain('An email address must contain a single @')
141 assert ('Username may only contain '
139 response.mustcontain('Username may only contain '
142 'alphanumeric characters underscores, '
140 'alphanumeric characters underscores, '
143 'periods or dashes and must begin with '
141 'periods or dashes and must begin with '
144 'alphanumeric character') in response.body
142 'alphanumeric character')
145
143
146 def test_register_err_case_sensitive(self):
144 def test_register_err_case_sensitive(self):
147 response = self.app.post(url(controller='login', action='register'),
145 response = self.app.post(url(controller='login', action='register'),
@@ -156,8 +154,6 b' class TestLoginController(TestController'
156 self.assertTrue('An email address must contain a single @' in response.body)
154 self.assertTrue('An email address must contain a single @' in response.body)
157 self.assertTrue('This username already exists' in response.body)
155 self.assertTrue('This username already exists' in response.body)
158
156
159
160
161 def test_register_special_chars(self):
157 def test_register_special_chars(self):
162 response = self.app.post(url(controller='login', action='register'),
158 response = self.app.post(url(controller='login', action='register'),
163 {'username':'xxxaxn',
159 {'username':'xxxaxn',
@@ -170,7 +166,6 b' class TestLoginController(TestController'
170 self.assertEqual(response.status , '200 OK')
166 self.assertEqual(response.status , '200 OK')
171 self.assertTrue('Invalid characters in password' in response.body)
167 self.assertTrue('Invalid characters in password' in response.body)
172
168
173
174 def test_register_password_mismatch(self):
169 def test_register_password_mismatch(self):
175 response = self.app.post(url(controller='login', action='register'),
170 response = self.app.post(url(controller='login', action='register'),
176 {'username':'xs',
171 {'username':'xs',
@@ -180,8 +175,8 b' class TestLoginController(TestController'
180 'name':'test',
175 'name':'test',
181 'lastname':'test'})
176 'lastname':'test'})
182
177
183 self.assertEqual(response.status , '200 OK')
178 self.assertEqual(response.status, '200 OK')
184 assert 'Passwords do not match' in response.body
179 response.mustcontain('Passwords do not match')
185
180
186 def test_register_ok(self):
181 def test_register_ok(self):
187 username = 'test_regular4'
182 username = 'test_regular4'
@@ -196,28 +191,32 b' class TestLoginController(TestController'
196 'password_confirmation':password,
191 'password_confirmation':password,
197 'email':email,
192 'email':email,
198 'name':name,
193 'name':name,
199 'lastname':lastname})
194 'lastname':lastname,
200 self.assertEqual(response.status , '302 Found')
195 'admin':True}) # This should be overriden
201 assert 'You have successfully registered into rhodecode' in response.session['flash'][0], 'No flash message about user registration'
196 self.assertEqual(response.status, '302 Found')
197 self.checkSessionFlash(response, 'You have successfully registered into rhodecode')
202
198
203 ret = self.Session.query(User).filter(User.username == 'test_regular4').one()
199 ret = self.Session.query(User).filter(User.username == 'test_regular4').one()
204 assert ret.username == username , 'field mismatch %s %s' % (ret.username, username)
200 self.assertEqual(ret.username, username)
205 assert check_password(password, ret.password) == True , 'password mismatch'
201 self.assertEqual(check_password(password, ret.password), True)
206 assert ret.email == email , 'field mismatch %s %s' % (ret.email, email)
202 self.assertEqual(ret.email, email)
207 assert ret.name == name , 'field mismatch %s %s' % (ret.name, name)
203 self.assertEqual(ret.name, name)
208 assert ret.lastname == lastname , 'field mismatch %s %s' % (ret.lastname, lastname)
204 self.assertEqual(ret.lastname, lastname)
209
205 self.assertNotEqual(ret.api_key, None)
206 self.assertEqual(ret.admin, False)
210
207
211 def test_forgot_password_wrong_mail(self):
208 def test_forgot_password_wrong_mail(self):
212 response = self.app.post(url(controller='login', action='password_reset'),
209 response = self.app.post(
213 {'email':'marcin@wrongmail.org', })
210 url(controller='login', action='password_reset'),
211 {'email': 'marcin@wrongmail.org',}
212 )
214
213
215 assert "This e-mail address doesn't exist" in response.body, 'Missing error message about wrong email'
214 response.mustcontain("This e-mail address doesn't exist")
216
215
217 def test_forgot_password(self):
216 def test_forgot_password(self):
218 response = self.app.get(url(controller='login',
217 response = self.app.get(url(controller='login',
219 action='password_reset'))
218 action='password_reset'))
220 self.assertEqual(response.status , '200 OK')
219 self.assertEqual(response.status, '200 OK')
221
220
222 username = 'test_password_reset_1'
221 username = 'test_password_reset_1'
223 password = 'qweqwe'
222 password = 'qweqwe'
General Comments 0
You need to be logged in to leave comments. Login now