comparison rhodecode/tests/functional/test_admin_users.py @ 691:7486da5f0628 beta

Refactor codes for scm model Some test updates, added test for admin user controller
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 14 Nov 2010 22:54:16 +0100
parents rhodecode/tests/functional/test_users.py@8acbfa837180
children 62c04c5cc971
comparison
equal deleted inserted replaced
690:4685f3eafd35 691:7486da5f0628
1 from rhodecode.tests import *
2 from rhodecode.model.db import User
3 from rhodecode.lib.auth import check_password
4 from sqlalchemy.orm.exc import NoResultFound
5
6 class TestAdminUsersController(TestController):
7
8 def test_index(self):
9 response = self.app.get(url('users'))
10 # Test response...
11
12 def test_index_as_xml(self):
13 response = self.app.get(url('formatted_users', format='xml'))
14
15 def test_create(self):
16 self.log_user()
17 username = 'newtestuser'
18 password = 'test12'
19 name = 'name'
20 lastname = 'lastname'
21 email = 'mail@mail.com'
22
23 response = self.app.post(url('users'), {'username':username,
24 'password':password,
25 'name':name,
26 'active':True,
27 'lastname':lastname,
28 'email':email})
29
30
31 assert '''created user %s''' % (username) in response.session['flash'][0], 'No flash message about new user'
32
33 new_user = self.sa.query(User).filter(User.username == username).one()
34
35
36 assert new_user.username == username, 'wrong info about username'
37 assert check_password(password, new_user.password) == True , 'wrong info about password'
38 assert new_user.name == name, 'wrong info about name'
39 assert new_user.lastname == lastname, 'wrong info about lastname'
40 assert new_user.email == email, 'wrong info about email'
41
42
43 response.follow()
44 response = response.follow()
45 assert """edit">newtestuser</a>""" in response.body
46
47 def test_create_err(self):
48 self.log_user()
49 username = 'new_user'
50 password = ''
51 name = 'name'
52 lastname = 'lastname'
53 email = 'errmail.com'
54
55 response = self.app.post(url('users'), {'username':username,
56 'password':password,
57 'name':name,
58 'active':False,
59 'lastname':lastname,
60 'email':email})
61
62 assert """<span class="error-message">Invalid username</span>""" in response.body
63 assert """<span class="error-message">Please enter a value</span>""" in response.body
64 assert """<span class="error-message">An email address must contain a single @</span>""" in response.body
65
66 def get_user():
67 self.sa.query(User).filter(User.username == username).one()
68
69 self.assertRaises(NoResultFound, get_user), 'found user in database'
70
71 def test_new(self):
72 response = self.app.get(url('new_user'))
73
74 def test_new_as_xml(self):
75 response = self.app.get(url('formatted_new_user', format='xml'))
76
77 def test_update(self):
78 response = self.app.put(url('user', id=1))
79
80 def test_update_browser_fakeout(self):
81 response = self.app.post(url('user', id=1), params=dict(_method='put'))
82
83 def test_delete(self):
84 self.log_user()
85 username = 'newtestuserdeleteme'
86 password = 'test12'
87 name = 'name'
88 lastname = 'lastname'
89 email = 'todeletemail@mail.com'
90
91 response = self.app.post(url('users'), {'username':username,
92 'password':password,
93 'name':name,
94 'active':True,
95 'lastname':lastname,
96 'email':email})
97
98 response = response.follow()
99
100 new_user = self.sa.query(User).filter(User.username == username).one()
101 response = self.app.delete(url('user', id=new_user.user_id))
102
103 assert """sucessfully deleted user""" in response.session['flash'][0], 'No info about user deletion'
104
105
106 def test_delete_browser_fakeout(self):
107 response = self.app.post(url('user', id=1), params=dict(_method='delete'))
108
109 def test_show(self):
110 response = self.app.get(url('user', id=1))
111
112 def test_show_as_xml(self):
113 response = self.app.get(url('formatted_user', id=1, format='xml'))
114
115 def test_edit(self):
116 response = self.app.get(url('edit_user', id=1))
117
118 def test_edit_as_xml(self):
119 response = self.app.get(url('formatted_edit_user', id=1, format='xml'))