summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkballou <kballou@devnulllabs.io>2015-04-10 16:56:30 -0600
committerkballou <kballou@devnulllabs.io>2015-04-10 18:03:44 -0600
commitcf6a40d8eb658f2b13cae8ed46f4a523f170f1cb (patch)
tree6b8317aa6fcc5b978686c577c78bdbc59e617147
parent33bbd38435d91fb10b02d534fabd8ba60351e9cb (diff)
downloadpylibchorus-cf6a40d8eb658f2b13cae8ed46f4a523f170f1cb.tar.gz
pylibchorus-cf6a40d8eb658f2b13cae8ed46f4a523f170f1cb.tar.xz
Add _update_workfile_version_
-rw-r--r--pylibchorus/chorus_client.py20
-rw-r--r--pylibchorus/tests/chorus_client_tests.py29
2 files changed, 49 insertions, 0 deletions
diff --git a/pylibchorus/chorus_client.py b/pylibchorus/chorus_client.py
index 822420f..ed37be2 100644
--- a/pylibchorus/chorus_client.py
+++ b/pylibchorus/chorus_client.py
@@ -109,3 +109,23 @@ def _create_workfile_(workspace_id, workfile_name, sid, cookies):
'url': '/workspaces/%s/workfiles' % workspace_id,
'method': 'POST',
}
+
+def _update_workfile_version_(userid, workfile_id, workfile, sid, cookies):
+ '''Create request data to update a workfile'''
+ return {
+ 'data': {
+ 'owner_id': userid,
+ 'modifier_id': userid,
+ 'commit_message': 'git commit',
+ 'content': workfile,
+ },
+ 'params': {
+ 'session_id': sid,
+ },
+ 'headers': {
+ 'content-type': CONTENT_TYPE,
+ },
+ 'cookies': cookies,
+ 'url': '/workfiles/%s/versions' % workfile_id,
+ 'method': 'POST',
+ }
diff --git a/pylibchorus/tests/chorus_client_tests.py b/pylibchorus/tests/chorus_client_tests.py
index f4f2998..0829f50 100644
--- a/pylibchorus/tests/chorus_client_tests.py
+++ b/pylibchorus/tests/chorus_client_tests.py
@@ -6,6 +6,7 @@ from pylibchorus.chorus_client import _login_
from pylibchorus.chorus_client import _logout_
from pylibchorus.chorus_client import _check_login_
from pylibchorus.chorus_client import _create_workfile_
+from pylibchorus.chorus_client import _update_workfile_version_
import unittest
LOG = logging.getLogger(__name__)
@@ -128,3 +129,31 @@ class ChorusSessionTests(unittest.TestCase):
self.assertEquals('/workspaces/%d/workfiles' % workspace_id,
actual['url'])
self.assertEquals('POST', actual['method'])
+
+ #pylint: disable=C0103
+ def test_update_workfile_returns_request_data(self):
+ '''Test _update_workfile_version_ returns correct request data'''
+ userid = 1
+ workfile_id = 1
+ workfile = 'some long string that looks like code, somewhere'
+ sid = 'foobar'
+ cookies = {'session_id': sid}
+ actual = _update_workfile_version_(
+ userid,
+ workfile_id,
+ workfile,
+ sid,
+ cookies)
+ check_request_structure(self, actual)
+ check_params(self, actual['params'], sid)
+ data = actual['data']
+ self.assertIn('owner_id', data)
+ self.assertIn('modifier_id', data)
+ self.assertIn('commit_message', data)
+ self.assertIn('content', data)
+ self.assertEquals(data['owner_id'], userid)
+ self.assertEquals(data['modifier_id'], userid)
+ self.assertEquals(data['commit_message'], 'git commit')
+ self.assertEquals(data['content'], workfile)
+ self.assertEquals('/workfiles/1/versions', actual['url'])
+ self.assertEquals('POST', actual['method'])