##// END OF EJS Templates
Add test for NotReviewed validator
marcink -
r2721:36915dd4 beta
parent child Browse files
Show More
@@ -1,224 +1,246 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 import unittest
2 import unittest
3 import formencode
3 import formencode
4
4
5 from rhodecode.tests import *
5 from rhodecode.tests import *
6
6
7 from rhodecode.model import validators as v
7 from rhodecode.model import validators as v
8 from rhodecode.model.users_group import UsersGroupModel
8 from rhodecode.model.users_group import UsersGroupModel
9
9
10 from rhodecode.model.meta import Session
10 from rhodecode.model.meta import Session
11 from rhodecode.model.repos_group import ReposGroupModel
11 from rhodecode.model.repos_group import ReposGroupModel
12 from rhodecode.config.routing import ADMIN_PREFIX
12 from rhodecode.config.routing import ADMIN_PREFIX
13 from rhodecode.model.db import ChangesetStatus
14 from rhodecode.model.changeset_status import ChangesetStatusModel
15 from rhodecode.model.comment import ChangesetCommentsModel
13
16
14
17
15 class TestReposGroups(unittest.TestCase):
18 class TestReposGroups(unittest.TestCase):
16
19
17 def setUp(self):
20 def setUp(self):
18 pass
21 pass
19
22
20 def tearDown(self):
23 def tearDown(self):
21 pass
24 pass
22
25
23 def test_Message_extractor(self):
26 def test_Message_extractor(self):
24 validator = v.ValidUsername()
27 validator = v.ValidUsername()
25 self.assertRaises(formencode.Invalid, validator.to_python, 'default')
28 self.assertRaises(formencode.Invalid, validator.to_python, 'default')
26
29
27 class StateObj(object):
30 class StateObj(object):
28 pass
31 pass
29
32
30 self.assertRaises(formencode.Invalid,
33 self.assertRaises(formencode.Invalid,
31 validator.to_python, 'default', StateObj)
34 validator.to_python, 'default', StateObj)
32
35
33 def test_ValidUsername(self):
36 def test_ValidUsername(self):
34 validator = v.ValidUsername()
37 validator = v.ValidUsername()
35
38
36 self.assertRaises(formencode.Invalid, validator.to_python, 'default')
39 self.assertRaises(formencode.Invalid, validator.to_python, 'default')
37 self.assertRaises(formencode.Invalid, validator.to_python, 'new_user')
40 self.assertRaises(formencode.Invalid, validator.to_python, 'new_user')
38 self.assertRaises(formencode.Invalid, validator.to_python, '.,')
41 self.assertRaises(formencode.Invalid, validator.to_python, '.,')
39 self.assertRaises(formencode.Invalid, validator.to_python,
42 self.assertRaises(formencode.Invalid, validator.to_python,
40 TEST_USER_ADMIN_LOGIN)
43 TEST_USER_ADMIN_LOGIN)
41 self.assertEqual('test', validator.to_python('test'))
44 self.assertEqual('test', validator.to_python('test'))
42
45
43 validator = v.ValidUsername(edit=True, old_data={'user_id': 1})
46 validator = v.ValidUsername(edit=True, old_data={'user_id': 1})
44
47
45 def test_ValidRepoUser(self):
48 def test_ValidRepoUser(self):
46 validator = v.ValidRepoUser()
49 validator = v.ValidRepoUser()
47 self.assertRaises(formencode.Invalid, validator.to_python, 'nouser')
50 self.assertRaises(formencode.Invalid, validator.to_python, 'nouser')
48 self.assertEqual(TEST_USER_ADMIN_LOGIN,
51 self.assertEqual(TEST_USER_ADMIN_LOGIN,
49 validator.to_python(TEST_USER_ADMIN_LOGIN))
52 validator.to_python(TEST_USER_ADMIN_LOGIN))
50
53
51 def test_ValidUsersGroup(self):
54 def test_ValidUsersGroup(self):
52 validator = v.ValidUsersGroup()
55 validator = v.ValidUsersGroup()
53 self.assertRaises(formencode.Invalid, validator.to_python, 'default')
56 self.assertRaises(formencode.Invalid, validator.to_python, 'default')
54 self.assertRaises(formencode.Invalid, validator.to_python, '.,')
57 self.assertRaises(formencode.Invalid, validator.to_python, '.,')
55
58
56 gr = UsersGroupModel().create('test')
59 gr = UsersGroupModel().create('test')
57 gr2 = UsersGroupModel().create('tes2')
60 gr2 = UsersGroupModel().create('tes2')
58 Session.commit()
61 Session.commit()
59 self.assertRaises(formencode.Invalid, validator.to_python, 'test')
62 self.assertRaises(formencode.Invalid, validator.to_python, 'test')
60 assert gr.users_group_id != None
63 assert gr.users_group_id != None
61 validator = v.ValidUsersGroup(edit=True,
64 validator = v.ValidUsersGroup(edit=True,
62 old_data={'users_group_id':
65 old_data={'users_group_id':
63 gr2.users_group_id})
66 gr2.users_group_id})
64
67
65 self.assertRaises(formencode.Invalid, validator.to_python, 'test')
68 self.assertRaises(formencode.Invalid, validator.to_python, 'test')
66 self.assertRaises(formencode.Invalid, validator.to_python, 'TesT')
69 self.assertRaises(formencode.Invalid, validator.to_python, 'TesT')
67 self.assertRaises(formencode.Invalid, validator.to_python, 'TEST')
70 self.assertRaises(formencode.Invalid, validator.to_python, 'TEST')
68 UsersGroupModel().delete(gr)
71 UsersGroupModel().delete(gr)
69 UsersGroupModel().delete(gr2)
72 UsersGroupModel().delete(gr2)
70 Session.commit()
73 Session.commit()
71
74
72 def test_ValidReposGroup(self):
75 def test_ValidReposGroup(self):
73 validator = v.ValidReposGroup()
76 validator = v.ValidReposGroup()
74 model = ReposGroupModel()
77 model = ReposGroupModel()
75 self.assertRaises(formencode.Invalid, validator.to_python,
78 self.assertRaises(formencode.Invalid, validator.to_python,
76 {'group_name': HG_REPO, })
79 {'group_name': HG_REPO, })
77 gr = model.create(group_name='test_gr', group_description='desc',
80 gr = model.create(group_name='test_gr', group_description='desc',
78 parent=None,
81 parent=None,
79 just_db=True)
82 just_db=True)
80 self.assertRaises(formencode.Invalid,
83 self.assertRaises(formencode.Invalid,
81 validator.to_python, {'group_name': gr.group_name, })
84 validator.to_python, {'group_name': gr.group_name, })
82
85
83 validator = v.ValidReposGroup(edit=True,
86 validator = v.ValidReposGroup(edit=True,
84 old_data={'group_id': gr.group_id})
87 old_data={'group_id': gr.group_id})
85 self.assertRaises(formencode.Invalid,
88 self.assertRaises(formencode.Invalid,
86 validator.to_python, {
89 validator.to_python, {
87 'group_name': gr.group_name + 'n',
90 'group_name': gr.group_name + 'n',
88 'group_parent_id': gr.group_id
91 'group_parent_id': gr.group_id
89 })
92 })
90 model.delete(gr)
93 model.delete(gr)
91
94
92 def test_ValidPassword(self):
95 def test_ValidPassword(self):
93 validator = v.ValidPassword()
96 validator = v.ValidPassword()
94 self.assertEqual('lol', validator.to_python('lol'))
97 self.assertEqual('lol', validator.to_python('lol'))
95 self.assertEqual(None, validator.to_python(None))
98 self.assertEqual(None, validator.to_python(None))
96 self.assertRaises(formencode.Invalid, validator.to_python, 'Δ…Δ‡ΕΌΕΊ')
99 self.assertRaises(formencode.Invalid, validator.to_python, 'Δ…Δ‡ΕΌΕΊ')
97
100
98 def test_ValidPasswordsMatch(self):
101 def test_ValidPasswordsMatch(self):
99 validator = v.ValidPasswordsMatch()
102 validator = v.ValidPasswordsMatch()
100 self.assertRaises(formencode.Invalid,
103 self.assertRaises(formencode.Invalid,
101 validator.to_python, {'password': 'pass',
104 validator.to_python, {'password': 'pass',
102 'password_confirmation': 'pass2'})
105 'password_confirmation': 'pass2'})
103
106
104 self.assertRaises(formencode.Invalid,
107 self.assertRaises(formencode.Invalid,
105 validator.to_python, {'new_password': 'pass',
108 validator.to_python, {'new_password': 'pass',
106 'password_confirmation': 'pass2'})
109 'password_confirmation': 'pass2'})
107
110
108 self.assertEqual({'new_password': 'pass',
111 self.assertEqual({'new_password': 'pass',
109 'password_confirmation': 'pass'},
112 'password_confirmation': 'pass'},
110 validator.to_python({'new_password': 'pass',
113 validator.to_python({'new_password': 'pass',
111 'password_confirmation': 'pass'}))
114 'password_confirmation': 'pass'}))
112
115
113 self.assertEqual({'password': 'pass',
116 self.assertEqual({'password': 'pass',
114 'password_confirmation': 'pass'},
117 'password_confirmation': 'pass'},
115 validator.to_python({'password': 'pass',
118 validator.to_python({'password': 'pass',
116 'password_confirmation': 'pass'}))
119 'password_confirmation': 'pass'}))
117
120
118 def test_ValidAuth(self):
121 def test_ValidAuth(self):
119 validator = v.ValidAuth()
122 validator = v.ValidAuth()
120 valid_creds = {
123 valid_creds = {
121 'username': TEST_USER_REGULAR2_LOGIN,
124 'username': TEST_USER_REGULAR2_LOGIN,
122 'password': TEST_USER_REGULAR2_PASS,
125 'password': TEST_USER_REGULAR2_PASS,
123 }
126 }
124 invalid_creds = {
127 invalid_creds = {
125 'username': 'err',
128 'username': 'err',
126 'password': 'err',
129 'password': 'err',
127 }
130 }
128 self.assertEqual(valid_creds, validator.to_python(valid_creds))
131 self.assertEqual(valid_creds, validator.to_python(valid_creds))
129 self.assertRaises(formencode.Invalid,
132 self.assertRaises(formencode.Invalid,
130 validator.to_python, invalid_creds)
133 validator.to_python, invalid_creds)
131
134
132 def test_ValidAuthToken(self):
135 def test_ValidAuthToken(self):
133 validator = v.ValidAuthToken()
136 validator = v.ValidAuthToken()
134 # this is untestable without a threadlocal
137 # this is untestable without a threadlocal
135 # self.assertRaises(formencode.Invalid,
138 # self.assertRaises(formencode.Invalid,
136 # validator.to_python, 'BadToken')
139 # validator.to_python, 'BadToken')
137 validator
140 validator
138
141
139 def test_ValidRepoName(self):
142 def test_ValidRepoName(self):
140 validator = v.ValidRepoName()
143 validator = v.ValidRepoName()
141
144
142 self.assertRaises(formencode.Invalid,
145 self.assertRaises(formencode.Invalid,
143 validator.to_python, {'repo_name': ''})
146 validator.to_python, {'repo_name': ''})
144
147
145 self.assertRaises(formencode.Invalid,
148 self.assertRaises(formencode.Invalid,
146 validator.to_python, {'repo_name': HG_REPO})
149 validator.to_python, {'repo_name': HG_REPO})
147
150
148 gr = ReposGroupModel().create(group_name='group_test',
151 gr = ReposGroupModel().create(group_name='group_test',
149 group_description='desc',
152 group_description='desc',
150 parent=None,)
153 parent=None,)
151 self.assertRaises(formencode.Invalid,
154 self.assertRaises(formencode.Invalid,
152 validator.to_python, {'repo_name': gr.group_name})
155 validator.to_python, {'repo_name': gr.group_name})
153
156
154 #TODO: write an error case for that ie. create a repo withinh a group
157 #TODO: write an error case for that ie. create a repo withinh a group
155 # self.assertRaises(formencode.Invalid,
158 # self.assertRaises(formencode.Invalid,
156 # validator.to_python, {'repo_name': 'some',
159 # validator.to_python, {'repo_name': 'some',
157 # 'repo_group': gr.group_id})
160 # 'repo_group': gr.group_id})
158
161
159 def test_ValidForkName(self):
162 def test_ValidForkName(self):
160 # this uses ValidRepoName validator
163 # this uses ValidRepoName validator
161 assert True
164 assert True
162
165
163 @parameterized.expand([
166 @parameterized.expand([
164 ('test', 'test'), ('lolz!', 'lolz'), (' aavv', 'aavv'),
167 ('test', 'test'), ('lolz!', 'lolz'), (' aavv', 'aavv'),
165 ('ala ma kota', 'ala-ma-kota'), ('@nooo', 'nooo'),
168 ('ala ma kota', 'ala-ma-kota'), ('@nooo', 'nooo'),
166 ('$!haha lolz !', 'haha-lolz'), ('$$$$$', ''), ('{}OK!', 'OK'),
169 ('$!haha lolz !', 'haha-lolz'), ('$$$$$', ''), ('{}OK!', 'OK'),
167 ('/]re po', 're-po')])
170 ('/]re po', 're-po')])
168 def test_SlugifyName(self, name, expected):
171 def test_SlugifyName(self, name, expected):
169 validator = v.SlugifyName()
172 validator = v.SlugifyName()
170 self.assertEqual(expected, validator.to_python(name))
173 self.assertEqual(expected, validator.to_python(name))
171
174
172 def test_ValidCloneUri(self):
175 def test_ValidCloneUri(self):
173 #TODO: write this one
176 #TODO: write this one
174 pass
177 pass
175
178
176 def test_ValidForkType(self):
179 def test_ValidForkType(self):
177 validator = v.ValidForkType(old_data={'repo_type': 'hg'})
180 validator = v.ValidForkType(old_data={'repo_type': 'hg'})
178 self.assertEqual('hg', validator.to_python('hg'))
181 self.assertEqual('hg', validator.to_python('hg'))
179 self.assertRaises(formencode.Invalid, validator.to_python, 'git')
182 self.assertRaises(formencode.Invalid, validator.to_python, 'git')
180
183
181 def test_ValidPerms(self):
184 def test_ValidPerms(self):
182 #TODO: write this one
185 #TODO: write this one
183 pass
186 pass
184
187
185 def test_ValidSettings(self):
188 def test_ValidSettings(self):
186 validator = v.ValidSettings()
189 validator = v.ValidSettings()
187 self.assertEqual({'pass': 'pass'},
190 self.assertEqual({'pass': 'pass'},
188 validator.to_python(value={'user': 'test',
191 validator.to_python(value={'user': 'test',
189 'pass': 'pass'}))
192 'pass': 'pass'}))
190
193
191 self.assertEqual({'user2': 'test', 'pass': 'pass'},
194 self.assertEqual({'user2': 'test', 'pass': 'pass'},
192 validator.to_python(value={'user2': 'test',
195 validator.to_python(value={'user2': 'test',
193 'pass': 'pass'}))
196 'pass': 'pass'}))
194
197
195 def test_ValidPath(self):
198 def test_ValidPath(self):
196 validator = v.ValidPath()
199 validator = v.ValidPath()
197 self.assertEqual(TESTS_TMP_PATH,
200 self.assertEqual(TESTS_TMP_PATH,
198 validator.to_python(TESTS_TMP_PATH))
201 validator.to_python(TESTS_TMP_PATH))
199 self.assertRaises(formencode.Invalid, validator.to_python,
202 self.assertRaises(formencode.Invalid, validator.to_python,
200 '/no_such_dir')
203 '/no_such_dir')
201
204
202 def test_UniqSystemEmail(self):
205 def test_UniqSystemEmail(self):
203 validator = v.UniqSystemEmail(old_data={})
206 validator = v.UniqSystemEmail(old_data={})
204
207
205 self.assertEqual('mail@python.org',
208 self.assertEqual('mail@python.org',
206 validator.to_python('MaiL@Python.org'))
209 validator.to_python('MaiL@Python.org'))
207
210
208 email = TEST_USER_REGULAR2_EMAIL
211 email = TEST_USER_REGULAR2_EMAIL
209 self.assertRaises(formencode.Invalid, validator.to_python, email)
212 self.assertRaises(formencode.Invalid, validator.to_python, email)
210
213
211 def test_ValidSystemEmail(self):
214 def test_ValidSystemEmail(self):
212 validator = v.ValidSystemEmail()
215 validator = v.ValidSystemEmail()
213 email = TEST_USER_REGULAR2_EMAIL
216 email = TEST_USER_REGULAR2_EMAIL
214
217
215 self.assertEqual(email, validator.to_python(email))
218 self.assertEqual(email, validator.to_python(email))
216 self.assertRaises(formencode.Invalid, validator.to_python, 'err')
219 self.assertRaises(formencode.Invalid, validator.to_python, 'err')
217
220
218 def test_LdapLibValidator(self):
221 def test_LdapLibValidator(self):
219 validator = v.LdapLibValidator()
222 validator = v.LdapLibValidator()
220 self.assertRaises(v.LdapImportError, validator.to_python, 'err')
223 self.assertRaises(v.LdapImportError, validator.to_python, 'err')
221
224
222 def test_AttrLoginValidator(self):
225 def test_AttrLoginValidator(self):
223 validator = v.AttrLoginValidator()
226 validator = v.AttrLoginValidator()
224 self.assertRaises(formencode.Invalid, validator.to_python, 123)
227 self.assertRaises(formencode.Invalid, validator.to_python, 123)
228
229 def test_NotReviewedRevisions(self):
230 validator = v.NotReviewedRevisions()
231 rev = '0' * 40
232 # add status for a rev, that should throw an error because it is already
233 # reviewed
234 new_status = ChangesetStatus()
235 new_status.author = ChangesetStatusModel()._get_user(TEST_USER_ADMIN_LOGIN)
236 new_status.repo = ChangesetStatusModel()._get_repo(HG_REPO)
237 new_status.status = ChangesetStatus.STATUS_APPROVED
238 new_status.comment = None
239 new_status.revision = rev
240 Session().add(new_status)
241 Session().commit()
242 try:
243 self.assertRaises(formencode.Invalid, validator.to_python, [rev])
244 finally:
245 Session().delete(new_status)
246 Session().commit()
General Comments 0
You need to be logged in to leave comments. Login now