diff 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
line wrap: on
line diff
--- a/rhodecode/tests/api/api_base.py	Fri May 03 23:19:30 2013 +0200
+++ b/rhodecode/tests/api/api_base.py	Mon May 06 16:34:02 2013 +0200
@@ -12,6 +12,7 @@
 from rhodecode.model.meta import Session
 from rhodecode.model.scm import ScmModel
 from rhodecode.model.db import Repository, User
+from rhodecode.lib.utils2 import  time_to_datetime
 
 
 API_URL = '/_admin/api'
@@ -291,8 +292,15 @@
                                   repoid=self.REPO,
                                   locked=True)
         response = api_call(self, params)
-        expected = ('User `%s` set lock state for repo `%s` to `%s`'
-                   % (TEST_USER_ADMIN_LOGIN, self.REPO, True))
+        expected = {
+            'repo': self.REPO,
+            'locked': True,
+            'locked_since': None,
+            'locked_by': TEST_USER_ADMIN_LOGIN,
+            'msg': ('User `%s` set lock state for repo `%s` to `%s`'
+                    % (TEST_USER_ADMIN_LOGIN, self.REPO, True))
+        }
+        expected['locked_since'] = json.loads(response.body)['result']['locked_since']
         self._compare_ok(id_, expected, given=response.body)
 
     def test_api_lock_repo_lock_aquire_by_non_admin(self):
@@ -304,8 +312,15 @@
                                       repoid=repo_name,
                                       locked=True)
             response = api_call(self, params)
-            expected = ('User `%s` set lock state for repo `%s` to `%s`'
-                       % (self.TEST_USER_LOGIN, repo_name, True))
+            expected = {
+                'repo': repo_name,
+                'locked': True,
+                'locked_since': None,
+                'locked_by': self.TEST_USER_LOGIN,
+                'msg': ('User `%s` set lock state for repo `%s` to `%s`'
+                        % (self.TEST_USER_LOGIN, repo_name, True))
+            }
+            expected['locked_since'] = json.loads(response.body)['result']['locked_since']
             self._compare_ok(id_, expected, given=response.body)
         finally:
             fixture.destroy_repo(repo_name)
@@ -339,8 +354,14 @@
                                   repoid=self.REPO,
                                   locked=False)
         response = api_call(self, params)
-        expected = ('User `%s` set lock state for repo `%s` to `%s`'
-                   % (TEST_USER_ADMIN_LOGIN, self.REPO, False))
+        expected = {
+            'repo': self.REPO,
+            'locked': False,
+            'locked_since': None,
+            'locked_by': TEST_USER_ADMIN_LOGIN,
+            'msg': ('User `%s` set lock state for repo `%s` to `%s`'
+                    % (TEST_USER_ADMIN_LOGIN, self.REPO, False))
+        }
         self._compare_ok(id_, expected, given=response.body)
 
     def test_api_lock_repo_lock_aquire_optional_userid(self):
@@ -348,19 +369,33 @@
                                   repoid=self.REPO,
                                   locked=True)
         response = api_call(self, params)
-        expected = ('User `%s` set lock state for repo `%s` to `%s`'
-                   % (TEST_USER_ADMIN_LOGIN, self.REPO, True))
+        expected = {
+            'repo': self.REPO,
+            'locked': True,
+            'locked_since': None,
+            'locked_by': TEST_USER_ADMIN_LOGIN,
+            'msg': ('User `%s` set lock state for repo `%s` to `%s`'
+                    % (TEST_USER_ADMIN_LOGIN, self.REPO, True))
+        }
+        expected['locked_since'] = json.loads(response.body)['result']['locked_since']
         self._compare_ok(id_, expected, given=response.body)
 
     def test_api_lock_repo_lock_optional_locked(self):
-        from rhodecode.lib.utils2 import  time_to_datetime
-        _locked_since = json.dumps(time_to_datetime(Repository\
-                                    .get_by_repo_name(self.REPO).locked[1]))
         id_, params = _build_data(self.apikey, 'lock',
                                   repoid=self.REPO)
         response = api_call(self, params)
-        expected = ('Repo `%s` locked by `%s`. Locked=`True`. Locked since: `%s`'
-                   % (self.REPO, TEST_USER_ADMIN_LOGIN, _locked_since))
+        time_ = json.loads(response.body)['result']['locked_since']
+        expected = {
+            'repo': self.REPO,
+            'locked': True,
+            'locked_since': None,
+            'locked_by': TEST_USER_ADMIN_LOGIN,
+            'msg': ('Repo `%s` locked by `%s`. '
+                            % (self.REPO,
+                               json.dumps(time_to_datetime(time_))))
+
+        }
+        expected['locked_since'] = time_
         self._compare_ok(id_, expected, given=response.body)
 
     @mock.patch.object(Repository, 'lock', crash)