Пример #1
0
    def test_check_credentials(self):
        """ Test Api.method rest submission """
        ret_val = RequestRet(200, content='"OK"')
        patch('requests.request', return_value=ret_val).start()

        ret_val.status_code = 200
        self.assertTrue(self.api.check_credential())

        ret_val.status_code = 401
        self.assertFalse(self.api.check_credential())

        ret_val.status_code = 500
        self.assertRaises(HTTPError, self.api.check_credential)

        patch.stopall()
Пример #2
0
    def test_check_credentials(self):
        """ Test Api.method rest submission """
        ret_val = RequestRet(200, content='"OK"')
        patch('requests.request', return_value=ret_val).start()

        ret_val.status_code = 200
        self.assertTrue(self.api.check_credential())

        ret_val.status_code = 401
        self.assertFalse(self.api.check_credential())

        ret_val.status_code = 500
        self.assertRaises(HTTPError, self.api.check_credential)

        patch.stopall()
Пример #3
0
 def test__method_raw(self):
     """ Run as Raw mode """
     ret_val = RequestRet(content='text_only'.encode('utf-8'),
                          status_code=200)
     with patch('requests.get', return_value=ret_val):
         ret = rest.Api._method(self._url, raw=True)
         self.assertEquals(ret, 'text_only'.encode('utf-8'))
Пример #4
0
    def test__method_errors(self):
        """ Test Api._method rest submission error cases """

        # invalid status code
        ret_val = RequestRet(content='return_text'.encode('utf-8'),
                             status_code=404)
        with patch('requests.get', return_value=ret_val):
            self.assertRaises(RuntimeError, rest.Api._method, self._url)
Пример #5
0
 def test_ssh_key(self):
     """ Test ssh keys get/set """
     test_ssh_keys = '{"sshkey": ["test"]}'
     test_ssh_keys_json = json.loads(test_ssh_keys)
     ret_val = RequestRet(200, content=test_ssh_keys)
     patch('requests.request', return_value=ret_val).start()
     assert self.api.get_ssh_keys() == test_ssh_keys_json
     assert self.api.set_ssh_keys(test_ssh_keys_json) is None
     patch.stopall()
Пример #6
0
    def test_method_errors(self):
        """ Test Api.method rest submission error cases """
        # invalid status code
        ret_val = RequestRet(404, content='return_text')
        with patch('requests.request', return_value=ret_val):
            self.assertRaises(HTTPError, self.api.method, self._url)

        # using older requests version fail because of json argument
        with patch('requests.request', side_effect=TypeError()):
            self.assertRaises(RuntimeError, self.api.method, self._url)
Пример #7
0
    def test_get_experiment(self, w_exp_archive):
        """ Test experiment.get_experiment """
        arch_content = '\x42\x69'

        ret_val = RequestRet(content=arch_content, status_code=200)
        patch('requests.get', return_value=ret_val).start()
        api = rest.Api('user', 'password')

        ret = experiment.get_experiment(api, 123, option='data')
        self.assertEquals(ret, 'Written')
        w_exp_archive.assert_called_with(123, arch_content)
Пример #8
0
    def test_method(self):
        """ Test Api.method rest submission """
        ret = {'test': 'val'}
        ret_val = RequestRet(200, content=json_dumps(ret))
        m_req = patch('requests.request', return_value=ret_val).start()

        # pylint:disable=protected-access
        _auth = self.api.auth

        # call get
        ret = self.api.method('page')
        m_req.assert_called_with('get',
                                 self._url + 'page',
                                 files=None,
                                 json=None,
                                 auth=_auth)
        self.assertEqual(ret, ret)
        ret = self.api.method('page?1', 'get')
        m_req.assert_called_with('get',
                                 self._url + 'page?1',
                                 files=None,
                                 json=None,
                                 auth=_auth)
        self.assertEqual(ret, ret)

        # call delete
        ret = self.api.method('deeel', 'delete')
        m_req.assert_called_with('delete',
                                 self._url + 'deeel',
                                 files=None,
                                 json=None,
                                 auth=_auth)
        self.assertEqual(ret, ret)

        # call post
        ret = self.api.method('post_page', 'post', json={})
        m_req.assert_called_with('post',
                                 self._url + 'post_page',
                                 files=None,
                                 json={},
                                 auth=_auth)
        self.assertEqual(ret, ret)

        # call multipart
        _files = {'entry': '{}'}
        ret = self.api.method('multip', 'post', files=_files)
        m_req.assert_called_with('post',
                                 self._url + 'multip',
                                 files=_files,
                                 json=None,
                                 auth=_auth)
        self.assertEqual(ret, ret)
        patch.stopall()
Пример #9
0
    def test_method_no_content(self):
        """ Test Api.method rest code 204 """
        ret_val = RequestRet(204, content='')
        m_req = patch('requests.request', return_value=ret_val).start()
        _auth = self.api.auth

        ret = self.api.method('resources/123', 'delete')
        m_req.assert_called_with('delete',
                                 self._url + 'resources/123',
                                 files=None,
                                 json=None,
                                 auth=_auth)
        self.assertIsNone(ret)
Пример #10
0
    def test__method(self):
        """ Test Api._method rest submission """
        ret = {'test': 'val'}
        ret_val = RequestRet(content=json_dumps(ret).encode('utf-8'),
                             status_code=200)
        post = patch('requests.post', return_value=ret_val).start()
        delete = patch('requests.delete', return_value=ret_val).start()
        get = patch('requests.get', return_value=ret_val).start()

        # pylint:disable=protected-access
        _auth = Mock()

        # call get
        ret = rest.Api._method(self._url)
        get.assert_called_with(self._url, auth=None)
        self.assertEquals(ret, ret)
        ret = rest.Api._method(self._url, method='GET', auth=_auth)
        get.assert_called_with(self._url, auth=_auth)
        self.assertEquals(ret, ret)

        # call delete
        ret = rest.Api._method(self._url, method='DELETE')
        delete.assert_called_with(self._url, auth=None)
        self.assertEquals(ret, ret)

        # call post
        ret = rest.Api._method(self._url, method='POST', data={})
        post.assert_called_with(
            self._url, data='{}'.encode('utf-8'),
            headers={'content-type': 'application/json'},
            auth=None)
        self.assertEquals(ret, ret)

        # call multipart
        _files = {'entry': '{}'}
        ret = rest.Api._method(self._url, method='MULTIPART', data=_files)
        post.assert_called_with(self._url, files=_files, auth=None)
        self.assertEquals(ret, ret)
        patch.stopall()
Пример #11
0
 def test_method_raw(self):
     """ Run as Raw mode """
     ret_val = RequestRet(200, content='text_only')
     with patch('requests.request', return_value=ret_val):
         ret = self.api.method(self._url, raw=True)
         self.assertEqual(ret, 'text_only'.encode('utf-8'))