def test_socket_cleanup(self): tmp_metric_socket = '/var/tmp/tmp_test_metric_socket{0}'.format( random.random()) srv = Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket, str(get_random_free_port()), str(get_random_free_port()), 'simple', ['filename=/var/tmp/test_metrics.out'], 60, socket_mod=0666) srv.start() self.assertTrue(os.path.exists(tmp_metric_socket)) srv.shutdown() self.assertFalse(os.path.exists(tmp_metric_socket))
def test_recreate_legacy_socket(self): dummy_legacy_socket = '/tmp/__speakeasy_legacy_socket' with open(dummy_legacy_socket, 'w') as sf: sf.write('\n') with mock.patch('os.remove'): try: s = Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET, str(get_random_free_port()), str(get_random_free_port()), 'simple', ['filename=/var/tmp/test_metrics.out'], 60, dummy_legacy_socket) except socket.error: # remove got patched, so we should get a address already init # use socket error pass os.remove.assert_called_once_with(dummy_legacy_socket) os.remove(dummy_legacy_socket)
def test_socket_mod(self): tmp_metric_socket = '/var/tmp/tmp_test_metric_{0}'.format( random.random()) Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket, str(get_random_free_port()), str(get_random_free_port()), 'simple', ['filename=/var/tmp/test_metrics.out'], 60, socket_mod=0666) self.assertEqual(oct(stat.S_IMODE(os.stat(tmp_metric_socket).st_mode)), '0666') Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket, str(get_random_free_port()), str(get_random_free_port()), 'simple', ['filename=/var/tmp/test_metrics.out'], 60) self.assertNotEqual( oct(stat.S_IMODE(os.stat(tmp_metric_socket).st_mode)), '0666')
def test_start_without_pub_port(self): tmp_metric_socket = '/var/tmp/tmp_test_metric_{0}'.format( random.random()) s = Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket, str(get_random_free_port()), None, 'simple', ['filename=/var/tmp/test_metrics.out'], 60) self.assertEqual(s.metric_socket, tmp_metric_socket) self.assertEqual(s.pub_port, None) self.assertEqual(s.emission_interval, 60) self.assertEqual(s.emitter_args['filename'], '/var/tmp/test_metrics.out') self.assertEqual(len(s.metrics), 0)
def test_recreate_legacy_socket(self): dummy_legacy_socket = '/var/tmp/test_speakeasy_legacy_socket_{0}'.format(random.random()) logger.info("Using dummy legacy socket as %s", dummy_legacy_socket) with open(dummy_legacy_socket, 'w') as sf: sf.write('\n') srv = None with mock.patch('os.remove'): try: srv = Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET, str(get_random_free_port()), str(get_random_free_port()), 'simple', ['filename=' + G_EMITTER_LOG], 60, dummy_legacy_socket) logger.info("Server generated: %s", srv) except socket.error: # remove got patched, so we should get a address already init # use socket error pass os.remove.assert_called_once_with(dummy_legacy_socket) os.remove(dummy_legacy_socket) # actually do it if srv: srv.shutdown()
# custom logger to bypass nose logging capture logger = logging.getLogger() handler = logging.handlers.RotatingFileHandler("test_zmq_spec.log") handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] (%(funcName)s) %(message)s', datefmt='%Y-%m-%d %H:%M:%S')) logger.addHandler(handler) speakeasy.QUEUE_WAIT_SECS = 1 random.seed(time.time()) G_SPEAKEASY_HOST = '0.0.0.0' G_METRIC_SOCKET = '/var/tmp/test_zmq_spec_metric_sock{0}'.format(random.random()) G_LEGACY_METRIC_SOCKET = '/var/tmp/test_zmq_spec_legacy_metric_{0}'.format(random.random()) G_EMITTER_LOG = '/var/tmp/test_zmq_spec_metrics_{0}.out'.format(random.random()) G_PUB_PORT = str(get_random_free_port()) G_CMD_PORT = str(get_random_free_port()) def gen_speakeasy_server(): return Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET, G_CMD_PORT, G_PUB_PORT, 'simple', ['filename=' + G_EMITTER_LOG], 1, G_LEGACY_METRIC_SOCKET) class TestEmitter(object): def __init__(self, **kwargs): pass def emit(self, metrics): """ Ship the metrics off """ pass
import mock from test_util import get_random_free_port from speakeasy.speakeasy import Speakeasy import speakeasy.speakeasy as speakeasy import logging import logging.handlers # custom logger to bypass nose logging capture logger = logging.getLogger() handler = logging.handlers.RotatingFileHandler("test_speakeasy_legacy.log") handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] (%(funcName)s) %(message)s', datefmt='%Y-%m-%d %H:%M:%S')) logger.addHandler(handler) G_SPEAKEASY_HOST = '0.0.0.0' G_PUB_PORT = str(get_random_free_port()) G_CMD_PORT = str(get_random_free_port()) G_METRIC_SOCKET = '/var/tmp/test_metric_socket_{0}'.format(random.random()) G_LEGACY_METRIC_SOCKET = '/var/tmp/test_legacy_metric_socket_{0}'.format(random.random()) G_EMITTER_LOG = '/var/tmp/test_metrics_{0}.out'.format(random.random()) speakeasy.QUEUE_WAIT_SECS = 1 def gen_speakeasy_server(): return Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET, G_CMD_PORT, G_PUB_PORT, 'simple', ['filename=' + G_EMITTER_LOG], 60, G_LEGACY_METRIC_SOCKET) class TestSpeakeasy(unittest.TestCase): @classmethod