コード例 #1
0
    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])
コード例 #2
0
    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])
コード例 #3
0
    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])
コード例 #4
0
 def __init__(self, params=None):
     self._repository = GithubRepository()