Example #1
0
    def test_request_exception_retry(self):
        connection = Rest(device=self.device, alias='rest', via='rest')
        self.assertEqual(connection.connected, False)

        with patch('requests.Session') as req:
            resp = Response()
            resp.status_code = 200
            req().post.side_effect = [resp, resp]
            req().request.side_effect = [TimeoutError('Timeout'), resp]

            connection.connect()
            resp.json = MagicMock(return_value={'imdata': []})

            with self.assertLogs(
                    logger='rest.connector.libs.nxos.implementation',
                    level=logging.INFO) as log_cm:
                connection.post(dn='temp',
                                payload={'payload': 'something'},
                                retry_wait=0)
                self.assertIn('TimeoutError', '\n'.join(log_cm.output))

            self.assertEqual(connection.connected, True)
            connection.disconnect()

        self.assertEqual(connection.connected, False)
Example #2
0
    def test_post_connected(self):
        connection = Rest(device=self.device, alias='rest', via='rest')
        self.assertEqual(connection.connected, False)

        with patch('requests.Session') as req:
            resp = Response()
            resp.status_code = 200
            req().post.return_value = resp
            connection.connect()
            resp.json = MagicMock(return_value={'imdata': []})
            connection.post(dn='temp', payload={'payload': 'something'})
            connection.disconnect()
        self.assertEqual(connection.connected, False)
Example #3
0
    def test_post_xml_connected(self):
        connection = Rest(device=self.device, alias='rest', via='rest')
        self.assertEqual(connection.connected, False)

        with patch('requests.Session') as req:
            resp = Response()
            resp.status_code = 200
            req().post.return_value = resp
            connection.connect()
            resp._content = '<?xml version="1.0" encoding="UTF-8"?>' \
                            '<imdata totalCount="0"></imdata>'

            connection.post(dn='temp',
                            xml_payload=True,
                            payload='<fvTenant name="ExampleCorp"/>')
            connection.disconnect()
        self.assertEqual(connection.connected, False)
Example #4
0
    def test_post_connected_wrong_status(self):
        connection = Rest(device=self.device, alias='rest', via='rest')
        self.assertEqual(connection.connected, False)

        with patch('requests.Session') as req:
            resp = Response()
            resp.status_code = 200
            resp2 = Response()
            resp2.status_code = 300
            req().get.return_value = resp2
            req().post.side_effect = [resp, resp, resp2, resp2]

            connection.connect()
            resp.json = MagicMock(return_value={'imdata': []})
            resp2.json = MagicMock(return_value={'imdata': []})

            with self.assertRaises(RequestException):
                connection.post(dn='temp', payload={'payload': 'something'})
            self.assertEqual(connection.connected, True)
            connection.disconnect()
        self.assertEqual(connection.connected, False)
Example #5
0
 def test_post_not_connected(self):
     connection = Rest(device=self.device, alias='rest', via='rest')
     with self.assertRaises(Exception):
         connection.post(dn='temp', payload={'payload': 'something'})