annotate rhodecode/tests/functional/test_login.py @ 548:b75b77ef649d

renamed hg_app to rhodecode
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 06 Oct 2010 03:22:52 +0200
parents 1e757ac98988
children f99075170eb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 534
diff changeset
1 from rhodecode.tests import *
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 534
diff changeset
2 from rhodecode.model.db import User
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 534
diff changeset
3 from rhodecode.lib.auth import check_password
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
4
188
8337dd6492a9 logins controller test
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
5
8337dd6492a9 logins controller test
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
6 class TestLoginController(TestController):
8337dd6492a9 logins controller test
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
7
8337dd6492a9 logins controller test
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
8 def test_index(self):
8337dd6492a9 logins controller test
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
9 response = self.app.get(url(controller='login', action='index'))
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
10 assert response.status == '200 OK', 'Wrong response from login page got %s' % response.status
188
8337dd6492a9 logins controller test
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
11 # Test response...
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
12
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
13 def test_login_admin_ok(self):
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
14 response = self.app.post(url(controller='login', action='index'),
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
15 {'username':'test_admin',
534
12c976209b2e fixed test for new version 100% test are ok
Marcin Kuzminski <marcin@python-works.com>
parents: 533
diff changeset
16 'password':'test12'})
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
17 assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status
548
b75b77ef649d renamed hg_app to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
18 assert response.session['rhodecode_user'].username == 'test_admin', 'wrong logged in user'
462
298546182b41 more test suites on login, fixed strange detached instance bug found during in tests.
Marcin Kuzminski <marcin@python-works.com>
parents: 461
diff changeset
19 response = response.follow()
298546182b41 more test suites on login, fixed strange detached instance bug found during in tests.
Marcin Kuzminski <marcin@python-works.com>
parents: 461
diff changeset
20 assert 'auto description for vcs_test' in response.body
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
21
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
22 def test_login_regular_ok(self):
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
23 response = self.app.post(url(controller='login', action='index'),
462
298546182b41 more test suites on login, fixed strange detached instance bug found during in tests.
Marcin Kuzminski <marcin@python-works.com>
parents: 461
diff changeset
24 {'username':'test_regular',
534
12c976209b2e fixed test for new version 100% test are ok
Marcin Kuzminski <marcin@python-works.com>
parents: 533
diff changeset
25 'password':'test12'})
533
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
26 print response
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
27 assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status
548
b75b77ef649d renamed hg_app to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
28 assert response.session['rhodecode_user'].username == 'test_regular', 'wrong logged in user'
462
298546182b41 more test suites on login, fixed strange detached instance bug found during in tests.
Marcin Kuzminski <marcin@python-works.com>
parents: 461
diff changeset
29 response = response.follow()
298546182b41 more test suites on login, fixed strange detached instance bug found during in tests.
Marcin Kuzminski <marcin@python-works.com>
parents: 461
diff changeset
30 assert 'auto description for vcs_test' in response.body
298546182b41 more test suites on login, fixed strange detached instance bug found during in tests.
Marcin Kuzminski <marcin@python-works.com>
parents: 461
diff changeset
31 assert '<a title="Admin" href="/_admin">' not in response.body
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
32
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
33 def test_login_ok_came_from(self):
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
34 test_came_from = '/_admin/users'
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
35 response = self.app.post(url(controller='login', action='index', came_from=test_came_from),
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
36 {'username':'test_admin',
534
12c976209b2e fixed test for new version 100% test are ok
Marcin Kuzminski <marcin@python-works.com>
parents: 533
diff changeset
37 'password':'test12'})
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
38 assert response.status == '302 Found', 'Wrong response code from came from redirection'
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
39 response = response.follow()
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
40
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
41 assert response.status == '200 OK', 'Wrong response from login page got %s' % response.status
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
42 assert 'Users administration' in response.body, 'No proper title in response'
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
43
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
44
533
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
45 def test_login_short_password(self):
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
46 response = self.app.post(url(controller='login', action='index'),
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
47 {'username':'error',
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
48 'password':'test'})
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
49 assert response.status == '200 OK', 'Wrong response from login page'
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
50
533
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
51 assert 'Enter a value 6 characters long or more' in response.body, 'No error password message in response'
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
52
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
53 def test_login_wrong_username_password(self):
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
54 response = self.app.post(url(controller='login', action='index'),
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
55 {'username':'error',
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
56 'password':'test12'})
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
57 assert response.status == '200 OK', 'Wrong response from login page'
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
58
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
59 assert 'invalid user name' in response.body, 'No error username message in response'
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
60 assert 'invalid password' in response.body, 'No error password message in response'
533
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
61
461
e95621133eb6 made test for login page
Marcin Kuzminski <marcin@python-works.com>
parents: 188
diff changeset
62
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
63 def test_register(self):
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
64 response = self.app.get(url(controller='login', action='register'))
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
65 assert 'Sign Up to hg-app' in response.body, 'wrong page for user registration'
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
66
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
67 def test_register_err_same_username(self):
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
68 response = self.app.post(url(controller='login', action='register'),
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
69 {'username':'test_admin',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
70 'password':'test',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
71 'email':'goodmail@domain.com',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
72 'name':'test',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
73 'lastname':'test'})
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
74
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
75 assert response.status == '200 OK', 'Wrong response from register page got %s' % response.status
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
76 assert 'This username already exists' in response.body
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
77
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
78 def test_register_err_wrong_data(self):
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
79 response = self.app.post(url(controller='login', action='register'),
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
80 {'username':'xs',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
81 'password':'',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
82 'email':'goodmailm',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
83 'name':'test',
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
84 'lastname':'test'})
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
85
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
86 assert response.status == '200 OK', 'Wrong response from register page got %s' % response.status
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
87 assert 'An email address must contain a single @' in response.body
533
53aa1ee1af86 updated tests for new version 6char password etc...
Marcin Kuzminski <marcin@python-works.com>
parents: 483
diff changeset
88 assert 'Please enter a value' in response.body
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
89
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
90
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
91
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
92 def test_register_ok(self):
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
93 username = 'test_regular4'
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
94 password = 'qweqwe'
483
a9e50dce3081 Removed config names from whoosh and celery,
Marcin Kuzminski <marcin@python-works.com>
parents: 473
diff changeset
95 email = 'marcin@test.com'
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
96 name = 'testname'
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
97 lastname = 'testlastname'
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
98
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
99 response = self.app.post(url(controller='login', action='register'),
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
100 {'username':username,
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
101 'password':password,
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
102 'email':email,
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
103 'name':name,
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
104 'lastname':lastname})
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
105 print response.body
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
106 assert response.status == '302 Found', 'Wrong response from register page got %s' % response.status
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
107 assert 'You have successfully registered into hg-app' in response.session['flash'][0], 'No flash message about user registration'
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
108
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
109 ret = self.sa.query(User).filter(User.username == 'test_regular4').one()
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
110 assert ret.username == username , 'field mismatch %s %s' % (ret.username, username)
483
a9e50dce3081 Removed config names from whoosh and celery,
Marcin Kuzminski <marcin@python-works.com>
parents: 473
diff changeset
111 assert check_password(password, ret.password) == True , 'password mismatch'
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
112 assert ret.email == email , 'field mismatch %s %s' % (ret.email, email)
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
113 assert ret.name == name , 'field mismatch %s %s' % (ret.name, name)
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
114 assert ret.lastname == lastname , 'field mismatch %s %s' % (ret.lastname, lastname)
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
115
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
116
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
117 def test_forgot_password_wrong_mail(self):
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
118 response = self.app.post(url(controller='login', action='password_reset'),
483
a9e50dce3081 Removed config names from whoosh and celery,
Marcin Kuzminski <marcin@python-works.com>
parents: 473
diff changeset
119 {'email':'marcin@wrongmail.org', })
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
120
483
a9e50dce3081 Removed config names from whoosh and celery,
Marcin Kuzminski <marcin@python-works.com>
parents: 473
diff changeset
121 assert "That e-mail address doesn't exist" in response.body, 'Missing error message about wrong email'
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
122
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
123 def test_forgot_password(self):
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
124 response = self.app.get(url(controller='login', action='password_reset'))
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
125 assert response.status == '200 OK', 'Wrong response from login page got %s' % response.status
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
126
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
127 username = 'test_password_reset_1'
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
128 password = 'qweqwe'
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
129 email = 'marcin@python-works.com'
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
130 name = 'passwd'
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
131 lastname = 'reset'
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
132
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
133 response = self.app.post(url(controller='login', action='register'),
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
134 {'username':username,
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
135 'password':password,
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
136 'email':email,
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
137 'name':name,
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
138 'lastname':lastname})
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
139 #register new user for email test
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
140 response = self.app.post(url(controller='login', action='password_reset'),
483
a9e50dce3081 Removed config names from whoosh and celery,
Marcin Kuzminski <marcin@python-works.com>
parents: 473
diff changeset
141 {'email':email, })
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
142 print response.session['flash']
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
143 assert 'You have successfully registered into hg-app' in response.session['flash'][0], 'No flash message about user registration'
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 463
diff changeset
144 assert 'Your new password was sent' in response.session['flash'][1], 'No flash message about password reset'
463
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
145
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
146
a03250279b15 test for register page
Marcin Kuzminski <marcin@python-works.com>
parents: 462
diff changeset
147