From cf6a40d8eb658f2b13cae8ed46f4a523f170f1cb Mon Sep 17 00:00:00 2001 From: kballou Date: Fri, 10 Apr 2015 16:56:30 -0600 Subject: Add _update_workfile_version_ --- pylibchorus/chorus_client.py | 20 ++++++++++++++++++++ pylibchorus/tests/chorus_client_tests.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) 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']) -- cgit v1.2.1