Mercurial > kallithea
comparison rhodecode/tests/api/api_base.py @ 3808:2feb58495f34 beta
locking API returns objects instead of string messages.
- it's now possible to easily parse the output of lock functions
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 06 May 2013 16:34:02 +0200 |
parents | e2ebd8808351 |
children | 647fb653048e |
comparison
equal
deleted
inserted
replaced
3807:e9b4664c958d | 3808:2feb58495f34 |
---|---|
10 from rhodecode.model.users_group import UserGroupModel | 10 from rhodecode.model.users_group import UserGroupModel |
11 from rhodecode.model.repo import RepoModel | 11 from rhodecode.model.repo import RepoModel |
12 from rhodecode.model.meta import Session | 12 from rhodecode.model.meta import Session |
13 from rhodecode.model.scm import ScmModel | 13 from rhodecode.model.scm import ScmModel |
14 from rhodecode.model.db import Repository, User | 14 from rhodecode.model.db import Repository, User |
15 from rhodecode.lib.utils2 import time_to_datetime | |
15 | 16 |
16 | 17 |
17 API_URL = '/_admin/api' | 18 API_URL = '/_admin/api' |
18 TEST_USER_GROUP = 'test_users_group' | 19 TEST_USER_GROUP = 'test_users_group' |
19 | 20 |
289 id_, params = _build_data(self.apikey, 'lock', | 290 id_, params = _build_data(self.apikey, 'lock', |
290 userid=TEST_USER_ADMIN_LOGIN, | 291 userid=TEST_USER_ADMIN_LOGIN, |
291 repoid=self.REPO, | 292 repoid=self.REPO, |
292 locked=True) | 293 locked=True) |
293 response = api_call(self, params) | 294 response = api_call(self, params) |
294 expected = ('User `%s` set lock state for repo `%s` to `%s`' | 295 expected = { |
295 % (TEST_USER_ADMIN_LOGIN, self.REPO, True)) | 296 'repo': self.REPO, |
297 'locked': True, | |
298 'locked_since': None, | |
299 'locked_by': TEST_USER_ADMIN_LOGIN, | |
300 'msg': ('User `%s` set lock state for repo `%s` to `%s`' | |
301 % (TEST_USER_ADMIN_LOGIN, self.REPO, True)) | |
302 } | |
303 expected['locked_since'] = json.loads(response.body)['result']['locked_since'] | |
296 self._compare_ok(id_, expected, given=response.body) | 304 self._compare_ok(id_, expected, given=response.body) |
297 | 305 |
298 def test_api_lock_repo_lock_aquire_by_non_admin(self): | 306 def test_api_lock_repo_lock_aquire_by_non_admin(self): |
299 repo_name = 'api_delete_me' | 307 repo_name = 'api_delete_me' |
300 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE, | 308 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE, |
302 try: | 310 try: |
303 id_, params = _build_data(self.apikey_regular, 'lock', | 311 id_, params = _build_data(self.apikey_regular, 'lock', |
304 repoid=repo_name, | 312 repoid=repo_name, |
305 locked=True) | 313 locked=True) |
306 response = api_call(self, params) | 314 response = api_call(self, params) |
307 expected = ('User `%s` set lock state for repo `%s` to `%s`' | 315 expected = { |
308 % (self.TEST_USER_LOGIN, repo_name, True)) | 316 'repo': repo_name, |
317 'locked': True, | |
318 'locked_since': None, | |
319 'locked_by': self.TEST_USER_LOGIN, | |
320 'msg': ('User `%s` set lock state for repo `%s` to `%s`' | |
321 % (self.TEST_USER_LOGIN, repo_name, True)) | |
322 } | |
323 expected['locked_since'] = json.loads(response.body)['result']['locked_since'] | |
309 self._compare_ok(id_, expected, given=response.body) | 324 self._compare_ok(id_, expected, given=response.body) |
310 finally: | 325 finally: |
311 fixture.destroy_repo(repo_name) | 326 fixture.destroy_repo(repo_name) |
312 | 327 |
313 def test_api_lock_repo_lock_aquire_non_admin_with_userid(self): | 328 def test_api_lock_repo_lock_aquire_non_admin_with_userid(self): |
337 id_, params = _build_data(self.apikey, 'lock', | 352 id_, params = _build_data(self.apikey, 'lock', |
338 userid=TEST_USER_ADMIN_LOGIN, | 353 userid=TEST_USER_ADMIN_LOGIN, |
339 repoid=self.REPO, | 354 repoid=self.REPO, |
340 locked=False) | 355 locked=False) |
341 response = api_call(self, params) | 356 response = api_call(self, params) |
342 expected = ('User `%s` set lock state for repo `%s` to `%s`' | 357 expected = { |
343 % (TEST_USER_ADMIN_LOGIN, self.REPO, False)) | 358 'repo': self.REPO, |
359 'locked': False, | |
360 'locked_since': None, | |
361 'locked_by': TEST_USER_ADMIN_LOGIN, | |
362 'msg': ('User `%s` set lock state for repo `%s` to `%s`' | |
363 % (TEST_USER_ADMIN_LOGIN, self.REPO, False)) | |
364 } | |
344 self._compare_ok(id_, expected, given=response.body) | 365 self._compare_ok(id_, expected, given=response.body) |
345 | 366 |
346 def test_api_lock_repo_lock_aquire_optional_userid(self): | 367 def test_api_lock_repo_lock_aquire_optional_userid(self): |
347 id_, params = _build_data(self.apikey, 'lock', | 368 id_, params = _build_data(self.apikey, 'lock', |
348 repoid=self.REPO, | 369 repoid=self.REPO, |
349 locked=True) | 370 locked=True) |
350 response = api_call(self, params) | 371 response = api_call(self, params) |
351 expected = ('User `%s` set lock state for repo `%s` to `%s`' | 372 expected = { |
352 % (TEST_USER_ADMIN_LOGIN, self.REPO, True)) | 373 'repo': self.REPO, |
374 'locked': True, | |
375 'locked_since': None, | |
376 'locked_by': TEST_USER_ADMIN_LOGIN, | |
377 'msg': ('User `%s` set lock state for repo `%s` to `%s`' | |
378 % (TEST_USER_ADMIN_LOGIN, self.REPO, True)) | |
379 } | |
380 expected['locked_since'] = json.loads(response.body)['result']['locked_since'] | |
353 self._compare_ok(id_, expected, given=response.body) | 381 self._compare_ok(id_, expected, given=response.body) |
354 | 382 |
355 def test_api_lock_repo_lock_optional_locked(self): | 383 def test_api_lock_repo_lock_optional_locked(self): |
356 from rhodecode.lib.utils2 import time_to_datetime | |
357 _locked_since = json.dumps(time_to_datetime(Repository\ | |
358 .get_by_repo_name(self.REPO).locked[1])) | |
359 id_, params = _build_data(self.apikey, 'lock', | 384 id_, params = _build_data(self.apikey, 'lock', |
360 repoid=self.REPO) | 385 repoid=self.REPO) |
361 response = api_call(self, params) | 386 response = api_call(self, params) |
362 expected = ('Repo `%s` locked by `%s`. Locked=`True`. Locked since: `%s`' | 387 time_ = json.loads(response.body)['result']['locked_since'] |
363 % (self.REPO, TEST_USER_ADMIN_LOGIN, _locked_since)) | 388 expected = { |
389 'repo': self.REPO, | |
390 'locked': True, | |
391 'locked_since': None, | |
392 'locked_by': TEST_USER_ADMIN_LOGIN, | |
393 'msg': ('Repo `%s` locked by `%s`. ' | |
394 % (self.REPO, | |
395 json.dumps(time_to_datetime(time_)))) | |
396 | |
397 } | |
398 expected['locked_since'] = time_ | |
364 self._compare_ok(id_, expected, given=response.body) | 399 self._compare_ok(id_, expected, given=response.body) |
365 | 400 |
366 @mock.patch.object(Repository, 'lock', crash) | 401 @mock.patch.object(Repository, 'lock', crash) |
367 def test_api_lock_error(self): | 402 def test_api_lock_error(self): |
368 id_, params = _build_data(self.apikey, 'lock', | 403 id_, params = _build_data(self.apikey, 'lock', |