def test_put_replace_config(self, httpsconnection_mock): def _getresponse(): self.assertLessEqual(self._call_count, 1) result = mock.Mock() if self._call_count == 0: result.status = httplib.OK result.read.return_value = '{"type":"file", "sha":"abc"}' else: result.status = httplib.CREATED self._call_count += 1 return result conn = mock.Mock() httpsconnection_mock.return_value = conn conn.getresponse = _getresponse repository = GithubRepository() repository._put_config('/some_path', 'some_content') self.assertEqual('GET', conn.request.call_args_list[0][0][0]) self.assertEqual('/api/v3/repos/data/configs/contents/some_path', conn.request.call_args_list[0][0][1]) self.assertIsNone(conn.request.call_args_list[0][0][2]) self.assertEqual('PUT', conn.request.call_args_list[1][0][0]) self.assertEqual('/api/v3/repos/data/configs/contents/some_path', conn.request.call_args_list[1][0][1]) encoded_content = base64.b64encode('some_content') self.assertEqual( '{"content": "%s", "committer": {"name": "Pinball", ' '"email": "*****@*****.**"}, "message": ' '"updating config", "sha": "abc"}' % encoded_content, conn.request.call_args_list[1][0][2])
def test_get_config(self, httpsconnection_mock): conn = mock.Mock() httpsconnection_mock.return_value = conn response = mock.Mock() conn.getresponse.return_value = response response.status = httplib.OK encoded_content = base64.b64encode('some_content') response.read.return_value = '{"content": "%s"}' % encoded_content repository = GithubRepository() content = repository._get_config('/some_path') self.assertEqual('some_content', content) self.assertEqual('GET', conn.request.call_args[0][0]) self.assertEqual('/api/v3/repos/data/configs/contents/some_path', conn.request.call_args[0][1]) self.assertIsNone(conn.request.call_args[0][2])
def test_list_directory(self, httpsconnection_mock): conn = mock.Mock() httpsconnection_mock.return_value = conn response = mock.Mock() conn.getresponse.return_value = response response.status = httplib.OK response.read.return_value = ('[{"type":"dir", "name":"some_dir"},' ' {"type":"file", "name":"some_file"}]') repository = GithubRepository() paths = repository._list_directory('/some_path/', False) self.assertEqual(['some_dir/', 'some_file'], paths) self.assertEqual('GET', conn.request.call_args[0][0]) self.assertEqual('/api/v3/repos/data/configs/contents/some_path', conn.request.call_args[0][1]) self.assertIsNone(conn.request.call_args[0][2])
def __init__(self, params=None): self._repository = GithubRepository()