def test_fetch_multigraph(self): class MockFetchHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.sendall("mock\n") f.readline() self.request.sendall("cap multigraph\n") f.readline() self.request.sendall("multigraph foo_1\n") self.request.sendall("x.value 1\n") self.request.sendall("multigraph foo_2\n") self.request.sendall("y.value 2\n") self.request.sendall(".\n") self._mock(MockFetchHandler) c = Client('localhost', port=9998) c.connect() self.assertEqual(c.fetch("foo"), { 'foo_1': { 'x': 1.0 }, 'foo_2': { 'y': 2.0 } })
def test_config(self): class MockConfigHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.sendall("mock\n") f.readline() self.request.sendall("cap multigraph\n") f.readline() self.request.sendall("graph_info foo\n") self.request.sendall("x.info bar\n") self.request.sendall(".\n") self._mock(MockConfigHandler) c = Client('localhost', port=9998) c.connect() self.assertEqual(c.config("foo"), {'foo': { 'graph_info': 'foo', 'x': { 'info': 'bar' } }})
def test_list(self): class MockListHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.sendall("mock\n") f.readline() self.request.sendall("cap multigraph\n") f.readline() self.request.sendall("foo bar\n") self._mock(MockListHandler) c = Client('localhost', port=9998) c.connect() self.assertEqual(c.list(), ['foo', 'bar'])
def test_fetch(self): class MockFetchHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.sendall("mock\n") f.readline() self.request.sendall("cap multigraph\n") f.readline() self.request.sendall("x.value 1\n") self.request.sendall(".\n") self._mock(MockFetchHandler) c = Client('localhost', port=9998) c.connect() self.assertEqual(c.fetch("foo"), {'foo': {'x': 1.0}})
def test_config(self): class MockConfigHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.sendall("mock\n") f.readline() self.request.sendall("cap multigraph\n") f.readline() self.request.sendall("graph_info foo\n") self.request.sendall("x.info bar\n") self.request.sendall(".\n") self._mock(MockConfigHandler) c = Client('localhost', port=9998) c.connect() self.assertEqual(c.config("foo"), {'foo': {'graph_info': 'foo', 'x': {'info': 'bar'}}})
def test_denied(self): # Munin node just closes connection if source address is not # allowed access. class MockDeniedHandler(SocketServer.BaseRequestHandler): def handle(self): self.request.close() self._mock(MockDeniedHandler) c = Client('localhost', port=9998) self.assertRaises(ClientError, c.connect)