Exemplo n.º 1
0
    def test_build_msg(self):
        e = RPCRequestEndpointUnit()
        fakemsg = {'fake': 'content'}
        msg = e._build_msg(fakemsg, {})

        # er in json now, how to really check
        self.assertNotEquals(str(msg), str(fakemsg))
Exemplo n.º 2
0
    def test__build_sample(self):
        e = RPCRequestEndpointUnit()

        heads = {
            'conv-id': sentinel.conv_id,
            'ts': '1',
            'op': 'remove_femur',
            'sender': sentinel.sender,
            'receiver': sentinel.receiver
        }
        resp_heads = {'sender-service': 'theservice'}

        samp = e._build_sample(sentinel.name, 200, "Ok", "msg", heads,
                               "response", resp_heads)

        self.assertEquals(
            samp,
            {
                'app_name': sentinel.name,
                'op': 'theservice.remove_femur',
                'attrs': {
                    'conv-id': sentinel.conv_id,
                    'service': 'theservice'
                },
                'status_descr': "Ok",
                'status': '0',
                'req_bytes': len('msg'),
                'resp_bytes': len('response'),
                'uS': 999000,  # it's in microseconds!
                'initiator': sentinel.sender,
                'target': sentinel.receiver
            })
Exemplo n.º 3
0
    def test__get_sflow_manager_with_container(self):
        Container.instance = None
        c = Container()     # ensure an instance
        e = RPCRequestEndpointUnit()
        self.assertEquals(e._get_sflow_manager(), c.sflow_manager)

        Container.instance = None
Exemplo n.º 4
0
    def test_endpoint_send_errors(self):
        errlist = [exception.BadRequest, exception.Unauthorized, exception.NotFound, exception.Timeout, exception.Conflict, exception.ServerError, exception.ServiceUnavailable]

        for err in errlist:
            e = RPCRequestEndpointUnit()
            ch = self._setup_mock_channel(status_code=err.status_code, error_message=str(err.status_code))
            e.attach_channel(ch)

            self.assertRaises(err, e.send, 'payload')
Exemplo n.º 5
0
    def test_endpoint_send(self):
        e = RPCRequestEndpointUnit()
        ch = self._setup_mock_channel()
        e.attach_channel(ch)

        ret, heads = e.send("rpc call")
        self.assertEquals(ret, 'bidirmsg')      # we just get payload back due to success RPC code 200

        e.close()
Exemplo n.º 6
0
    def test__sample_request_exception(self, mocklog):

        e = RPCRequestEndpointUnit()

        e._get_sflow_manager = Mock(return_value=Mock(spec=SFlowManager))
        e._get_sflow_manager.return_value.should_sample = True
        e._build_sample = Mock(side_effect=TestError)

        e._sample_request(sentinel.status, sentinel.status_descr, sentinel.msg, sentinel.headers, sentinel.response, sentinel.response_headers)

        mocklog.exception.assert_called_once_with("Could not sample, ignoring")
Exemplo n.º 7
0
    def test__sample_request_no_sample(self, mocklog):
        e = RPCRequestEndpointUnit()

        e._get_sflow_manager = Mock(return_value=Mock(spec=SFlowManager))
        e._get_sflow_manager.return_value.should_sample = False
        e._get_sample_name = Mock()

        e._sample_request(sentinel.status, sentinel.status_descr, sentinel.msg, sentinel.headers, sentinel.response, sentinel.response_headers)

        self.assertEquals(mocklog.debug.call_count, 1)
        self.assertIn("not to sample", mocklog.debug.call_args[0][0])
Exemplo n.º 8
0
    def test_timeout_makes_sflow_sample(self):
        e = RPCRequestEndpointUnit()
        e._sample_request = Mock()

        self.assertRaises(exception.Timeout,
                          e._send,
                          sentinel.msg,
                          sentinel.headers,
                          timeout=1)
        e._sample_request.assert_called_once_with(-1, 'Timeout', sentinel.msg,
                                                  sentinel.headers, '', {})
Exemplo n.º 9
0
    def test__sample_request(self):
        e = RPCRequestEndpointUnit()

        e._get_sflow_manager = Mock(return_value=Mock(spec=SFlowManager))
        e._get_sflow_manager.return_value.should_sample = True
        e._build_sample = Mock(return_value={'test':sentinel.test})

        e._sample_request(sentinel.status, sentinel.status_descr, sentinel.msg, sentinel.headers, sentinel.response, sentinel.response_headers)

        e._get_sflow_manager.assert_called_once_with()
        e._build_sample.assert_called_once_with(ANY, sentinel.status, sentinel.status_descr, sentinel.msg, sentinel.headers, sentinel.response, sentinel.response_headers)

        e._get_sflow_manager.return_value.transaction.assert_called_once_with(test=sentinel.test)
Exemplo n.º 10
0
    def test__build_sample_uses_last_name_for_op(self):
        e = RPCRequestEndpointUnit()

        heads = {'conv-id': sentinel.conv_id,
                 'ts': '1',
                 'op': 'remove_femur',
                 'sender': sentinel.sender,
                 'receiver': sentinel.receiver}
        resp_heads = {'sender-service': 'service1,service2,service3'}

        samp = e._build_sample(sentinel.name, 200, "Ok", "msg", heads, "response", resp_heads)

        self.assertIn('op', samp)
        self.assertEquals(samp['op'], 'service3.remove_femur')
Exemplo n.º 11
0
 def test__get_sflow_manager(self):
     Container.instance = None
     e = RPCRequestEndpointUnit()
     self.assertIsNone(e._get_sflow_manager())
Exemplo n.º 12
0
 def test__get_sample_name(self):
     e = RPCRequestEndpointUnit()
     self.assertEquals(e._get_sample_name(), "unknown-rpc-client")
Exemplo n.º 13
0
 def test__raise_exception_unknown(self):
     e = RPCRequestEndpointUnit()
     self.assertRaises(exception.ServerError, e._raise_exception, 999, "no")
Exemplo n.º 14
0
 def test__raise_exception_known(self):
     e = RPCRequestEndpointUnit()
     self.assertRaises(exception.NotFound, e._raise_exception, 404, "no")