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