comparison rhodecode/tests/functional/test_admin_repos.py @ 2529:40b3a54391f9 beta

Added functional test create repo with a group - unified calling Session in tests
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 01 Jul 2012 18:06:34 +0200
parents 9492ab68331f
children 6104dfd35b16
comparison
equal deleted inserted replaced
2528:5c8b1eaafe77 2529:40b3a54391f9
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 2
3 import os 3 import os
4 from rhodecode.lib import vcs 4 from rhodecode.lib import vcs
5 5
6 from rhodecode.model.db import Repository 6 from rhodecode.model.db import Repository, RepoGroup
7 from rhodecode.tests import * 7 from rhodecode.tests import *
8 from rhodecode.model.repos_group import ReposGroupModel
9 from rhodecode.model.repo import RepoModel
8 10
9 11
10 class TestAdminReposController(TestController): 12 class TestAdminReposController(TestController):
11 13
12 def __make_repo(self): 14 def __make_repo(self):
34 'landing_rev': 'tip'}) 36 'landing_rev': 'tip'})
35 self.checkSessionFlash(response, 37 self.checkSessionFlash(response,
36 'created repository %s' % (repo_name)) 38 'created repository %s' % (repo_name))
37 39
38 #test if the repo was created in the database 40 #test if the repo was created in the database
39 new_repo = self.Session.query(Repository)\ 41 new_repo = self.Session().query(Repository)\
40 .filter(Repository.repo_name == repo_name).one() 42 .filter(Repository.repo_name == repo_name).one()
41 43
42 self.assertEqual(new_repo.repo_name, repo_name) 44 self.assertEqual(new_repo.repo_name, repo_name)
43 self.assertEqual(new_repo.description, description) 45 self.assertEqual(new_repo.description, description)
44 46
70 'landing_rev': 'tip'}) 72 'landing_rev': 'tip'})
71 self.checkSessionFlash(response, 73 self.checkSessionFlash(response,
72 'created repository %s' % (repo_name_unicode)) 74 'created repository %s' % (repo_name_unicode))
73 75
74 #test if the repo was created in the database 76 #test if the repo was created in the database
75 new_repo = self.Session.query(Repository)\ 77 new_repo = self.Session().query(Repository)\
76 .filter(Repository.repo_name == repo_name_unicode).one() 78 .filter(Repository.repo_name == repo_name_unicode).one()
77 79
78 self.assertEqual(new_repo.repo_name, repo_name_unicode) 80 self.assertEqual(new_repo.repo_name, repo_name_unicode)
79 self.assertEqual(new_repo.description, description_unicode) 81 self.assertEqual(new_repo.description, description_unicode)
80 82
88 vcs.get_repo(os.path.join(TESTS_TMP_PATH, repo_name)) 90 vcs.get_repo(os.path.join(TESTS_TMP_PATH, repo_name))
89 except: 91 except:
90 self.fail('no repo %s in filesystem' % repo_name) 92 self.fail('no repo %s in filesystem' % repo_name)
91 93
92 def test_create_hg_in_group(self): 94 def test_create_hg_in_group(self):
93 #TODO: write test ! 95 self.log_user()
94 pass 96
97 ## create GROUP
98 group_name = 'sometest'
99 gr = ReposGroupModel().create(group_name=group_name,
100 group_description='test',)
101 self.Session().commit()
102
103 repo_name = 'ingroup'
104 repo_name_full = RepoGroup.url_sep().join([group_name, repo_name])
105 description = 'description for newly created repo'
106 private = False
107 response = self.app.post(url('repos'), {'repo_name': repo_name,
108 'repo_type': 'hg',
109 'clone_uri': '',
110 'repo_group': gr.group_id,
111 'description': description,
112 'private': private,
113 'landing_rev': 'tip'})
114 self.checkSessionFlash(response,
115 'created repository %s' % (repo_name))
116
117 #test if the repo was created in the database
118 new_repo = self.Session().query(Repository)\
119 .filter(Repository.repo_name == repo_name_full).one()
120
121 self.assertEqual(new_repo.repo_name, repo_name_full)
122 self.assertEqual(new_repo.description, description)
123
124 #test if repository is visible in the list ?
125 response = response.follow()
126
127 response.mustcontain(repo_name_full)
128
129 #test if repository was created on filesystem
130 try:
131 vcs.get_repo(os.path.join(TESTS_TMP_PATH, repo_name_full))
132 except:
133 ReposGroupModel().delete(group_name)
134 self.Session().commit()
135 self.fail('no repo %s in filesystem' % repo_name)
136
137 RepoModel().delete(repo_name_full)
138 ReposGroupModel().delete(group_name)
139 self.Session().commit()
95 140
96 def test_create_git(self): 141 def test_create_git(self):
97 self.log_user() 142 self.log_user()
98 repo_name = NEW_GIT_REPO 143 repo_name = NEW_GIT_REPO
99 description = 'description for newly created repo' 144 description = 'description for newly created repo'
107 'landing_rev': 'tip'}) 152 'landing_rev': 'tip'})
108 self.checkSessionFlash(response, 153 self.checkSessionFlash(response,
109 'created repository %s' % (repo_name)) 154 'created repository %s' % (repo_name))
110 155
111 #test if the repo was created in the database 156 #test if the repo was created in the database
112 new_repo = self.Session.query(Repository)\ 157 new_repo = self.Session().query(Repository)\
113 .filter(Repository.repo_name == repo_name).one() 158 .filter(Repository.repo_name == repo_name).one()
114 159
115 self.assertEqual(new_repo.repo_name, repo_name) 160 self.assertEqual(new_repo.repo_name, repo_name)
116 self.assertEqual(new_repo.description, description) 161 self.assertEqual(new_repo.description, description)
117 162
143 'landing_rev': 'tip'}) 188 'landing_rev': 'tip'})
144 self.checkSessionFlash(response, 189 self.checkSessionFlash(response,
145 'created repository %s' % (repo_name_unicode)) 190 'created repository %s' % (repo_name_unicode))
146 191
147 #test if the repo was created in the database 192 #test if the repo was created in the database
148 new_repo = self.Session.query(Repository)\ 193 new_repo = self.Session().query(Repository)\
149 .filter(Repository.repo_name == repo_name_unicode).one() 194 .filter(Repository.repo_name == repo_name_unicode).one()
150 195
151 self.assertEqual(new_repo.repo_name, repo_name_unicode) 196 self.assertEqual(new_repo.repo_name, repo_name_unicode)
152 self.assertEqual(new_repo.description, description_unicode) 197 self.assertEqual(new_repo.description, description_unicode)
153 198
190 'landing_rev': 'tip'}) 235 'landing_rev': 'tip'})
191 self.checkSessionFlash(response, 236 self.checkSessionFlash(response,
192 'created repository %s' % (repo_name)) 237 'created repository %s' % (repo_name))
193 238
194 #test if the repo was created in the database 239 #test if the repo was created in the database
195 new_repo = self.Session.query(Repository)\ 240 new_repo = self.Session().query(Repository)\
196 .filter(Repository.repo_name == repo_name).one() 241 .filter(Repository.repo_name == repo_name).one()
197 242
198 self.assertEqual(new_repo.repo_name, repo_name) 243 self.assertEqual(new_repo.repo_name, repo_name)
199 self.assertEqual(new_repo.description, description) 244 self.assertEqual(new_repo.description, description)
200 245
215 response.session['flash'][0]) 260 response.session['flash'][0])
216 261
217 response.follow() 262 response.follow()
218 263
219 #check if repo was deleted from db 264 #check if repo was deleted from db
220 deleted_repo = self.Session.query(Repository)\ 265 deleted_repo = self.Session().query(Repository)\
221 .filter(Repository.repo_name == repo_name).scalar() 266 .filter(Repository.repo_name == repo_name).scalar()
222 267
223 self.assertEqual(deleted_repo, None) 268 self.assertEqual(deleted_repo, None)
224 269
225 self.assertEqual(os.path.isdir(os.path.join(TESTS_TMP_PATH, repo_name)), 270 self.assertEqual(os.path.isdir(os.path.join(TESTS_TMP_PATH, repo_name)),
239 'landing_rev': 'tip'}) 284 'landing_rev': 'tip'})
240 self.checkSessionFlash(response, 285 self.checkSessionFlash(response,
241 'created repository %s' % (repo_name)) 286 'created repository %s' % (repo_name))
242 287
243 #test if the repo was created in the database 288 #test if the repo was created in the database
244 new_repo = self.Session.query(Repository)\ 289 new_repo = self.Session().query(Repository)\
245 .filter(Repository.repo_name == repo_name).one() 290 .filter(Repository.repo_name == repo_name).one()
246 291
247 self.assertEqual(new_repo.repo_name, repo_name) 292 self.assertEqual(new_repo.repo_name, repo_name)
248 self.assertEqual(new_repo.description, description) 293 self.assertEqual(new_repo.description, description)
249 294
264 response.session['flash'][0]) 309 response.session['flash'][0])
265 310
266 response.follow() 311 response.follow()
267 312
268 #check if repo was deleted from db 313 #check if repo was deleted from db
269 deleted_repo = self.Session.query(Repository)\ 314 deleted_repo = self.Session().query(Repository)\
270 .filter(Repository.repo_name == repo_name).scalar() 315 .filter(Repository.repo_name == repo_name).scalar()
271 316
272 self.assertEqual(deleted_repo, None) 317 self.assertEqual(deleted_repo, None)
273 318
274 self.assertEqual(os.path.isdir(os.path.join(TESTS_TMP_PATH, repo_name)), 319 self.assertEqual(os.path.isdir(os.path.join(TESTS_TMP_PATH, repo_name)),