def __init__(self, name: str, logger: logging.Logger, rabbitmq: RabbitMQApi) -> None: super().__init__(name, logger, rabbitmq) self._mongo = MongoApi(logger=self.logger.getChild(MongoApi.__name__), db_name=self.mongo_db, host=self.mongo_ip, port=self.mongo_port)
def setUp(self) -> None: self.dummy_logger = logging.getLogger('dummy') self.dummy_logger.disabled = True self.db = env.DB_NAME self.host = env.DB_IP self.port = env.DB_PORT self.live_check_time_interval = timedelta(seconds=3) self.live_check_time_interval_with_error_margin = timedelta( seconds=3.5) self.mongo = MongoApi( self.dummy_logger, self.db, self.host, self.port, live_check_time_interval=self.live_check_time_interval)
def setUpClass(cls) -> None: # Same as in setUp(), to avoid running all tests if Mongo is offline dummy_logger = logging.getLogger('dummy') dummy_logger.disabled = True db = env.DB_NAME host = env.DB_IP port = env.DB_PORT user = '' password = '' mongo = MongoApi(logger=dummy_logger, db_name=db, host=host, port=port, username=user, password=password) # Ping Mongo try: mongo.ping_unsafe() except PyMongoError: raise Exception("Mongo is not online.")
def setUp(self) -> None: self.dummy_logger = logging.getLogger('dummy') self.dummy_logger.disabled = True self.db = env.DB_NAME self.host = 'dummyhost' self.port = env.DB_PORT self.user = '' self.password = '' self.mongo = MongoApi(self.dummy_logger, self.db, self.host, self.port, timeout_ms=1) # timeout_ms is set to 1ms to speed up tests. It cannot be 0 self.col1 = 'collection1' self.val1 = {'a': 'b', 'c': 'd'} self.val2 = {'e': 'f', 'g': 'h'} self.val3 = {'i': 'j'} self.id_1 = '1' self.key_m_1 = 'key_m_1' self.val_m_1 = 'm1' self.test_1 = 'test_1' self.time_used = datetime(2021, 1, 28).timestamp() self.query1 = {'doc_type': self.test_1, 'd': self.time_used} self.doc_1 = { '$push': { self.id_1: { self.key_m_1: self.val_m_1 } }, '$inc': { 'n_entries': 1 } }
def setUp(self) -> None: self.dummy_logger = logging.getLogger('dummy') self.dummy_logger.disabled = True self.db = env.DB_NAME self.host = env.DB_IP self.port = env.DB_PORT self.user = '' self.password = '' self.mongo = MongoApi(logger=self.dummy_logger, db_name=self.db, host=self.host, port=self.port, username=self.user, password=self.password) try: self.mongo.ping_unsafe() except PyMongoError: self.fail("Mongo is not online.") # Clear test database self.mongo.drop_db() self.col1 = 'collection1' self.col2 = 'collection2' self.val1 = {'a': 'b', 'c': 'd'} self.val2 = {'e': 'f', 'g': 'h'} self.val3 = {'i': 'j'} self.val4 = {'k': 'l', 'm': {'n': ['o', 'p', True, False, 1, 2.1]}} self.id_1 = '1' self.id_2 = '2' self.key_m_1 = 'key_m_1' self.key_m_2 = 'key_m_2' self.val_m_1 = 'm1' self.val_m_2 = 'm2' self.test_1 = 'test_1' self.test_2 = 'test_2' self.time_used = datetime(2021, 1, 28).timestamp() self.query1 = {'doc_type': self.test_1, 'd': self.time_used} self.query2 = {'doc_type': self.test_2, 'd': self.time_used} self.doc_1 = { '$push': { self.id_1: { self.key_m_1: self.val_m_1 } }, '$inc': { 'n_entries': 1 } } self.doc_2 = { '$push': { self.id_2: { self.key_m_2: self.val_m_2 } }, '$inc': { 'n_entries': 1 } } self.doc_3 = { '$push': { self.id_1: { self.key_m_2: self.val_m_2 } }, '$inc': { 'n_entries': 1 } } self.time = timedelta(seconds=3) self.time_with_error_margin = timedelta(seconds=4) self.default_str = 'DEFAULT' self.default_int = 789 self.default_bool = False
def setUp(self) -> None: self.dummy_logger = logging.getLogger('Dummy') self.dummy_logger.disabled = True self.connection_check_time_interval = timedelta(seconds=0) self.rabbit_ip = env.RABBIT_IP self.rabbitmq = RabbitMQApi( self.dummy_logger, self.rabbit_ip, connection_check_time_interval=self.connection_check_time_interval) self.test_rabbit_manager = RabbitMQApi( self.dummy_logger, self.rabbit_ip, connection_check_time_interval=self.connection_check_time_interval) self.mongo_ip = env.DB_IP self.mongo_db = env.DB_NAME self.mongo_port = env.DB_PORT self.mongo = MongoApi(logger=self.dummy_logger.getChild( MongoApi.__name__), db_name=self.mongo_db, host=self.mongo_ip, port=self.mongo_port) self.redis_db = env.REDIS_DB self.redis_host = env.REDIS_IP self.redis_port = env.REDIS_PORT self.redis_namespace = env.UNIQUE_ALERTER_IDENTIFIER self.redis = RedisApi(self.dummy_logger, self.redis_db, self.redis_host, self.redis_port, '', self.redis_namespace, self.connection_check_time_interval) self.test_store_name = 'store name' self.test_store = AlertStore(self.test_store_name, self.dummy_logger, self.rabbitmq) self.routing_key = 'heartbeat.worker' self.test_queue_name = 'test queue' connect_to_rabbit(self.rabbitmq) self.rabbitmq.exchange_declare(HEALTH_CHECK_EXCHANGE, 'topic', False, True, False, False) self.rabbitmq.exchange_declare(STORE_EXCHANGE, 'direct', False, True, False, False) self.rabbitmq.queue_declare(ALERT_STORE_INPUT_QUEUE, False, True, False, False) self.rabbitmq.queue_bind(ALERT_STORE_INPUT_QUEUE, STORE_EXCHANGE, ALERT_STORE_INPUT_ROUTING_KEY) connect_to_rabbit(self.test_rabbit_manager) self.test_rabbit_manager.queue_declare(self.test_queue_name, False, True, False, False) self.test_rabbit_manager.queue_bind(self.test_queue_name, HEALTH_CHECK_EXCHANGE, self.routing_key) self.test_data_str = 'test data' self.test_exception = PANICException('test_exception', 1) self.parent_id = 'test_parent_id' self.alert_id = 'test_alert_id' self.origin_id = 'test_origin_id' self.alert_name = 'test_alert' self.metric = 'system_is_down' self.severity = 'warning' self.message = 'alert message' self.value = 'alert_code_1' self.alert_id_2 = 'test_alert_id_2' self.origin_id_2 = 'test_origin_id_2' self.alert_name_2 = 'test_alert_2' self.severity_2 = 'critical' self.message_2 = 'alert message 2' self.value_2 = 'alert_code_2' self.alert_id_3 = 'test_alert_id_3' self.origin_id_3 = 'test_origin_id_3' self.alert_name_3 = 'test_alert_3' self.severity_3 = 'info' self.message_3 = 'alert message 3' self.value_3 = 'alert_code_3' self.last_monitored = datetime(2012, 1, 1).timestamp() self.none = None self.alert_data_1 = { 'parent_id': self.parent_id, 'origin_id': self.origin_id, 'alert_code': { 'name': self.alert_name, 'value': self.value, }, 'severity': self.severity, 'metric': self.metric, 'message': self.message, 'timestamp': self.last_monitored, } self.alert_data_2 = { 'parent_id': self.parent_id, 'origin_id': self.origin_id_2, 'alert_code': { 'name': self.alert_name_2, 'value': self.value_2, }, 'severity': self.severity_2, 'metric': self.metric, 'message': self.message_2, 'timestamp': self.last_monitored, } self.alert_data_3 = { 'parent_id': self.parent_id, 'origin_id': self.origin_id_3, 'alert_code': { 'name': self.alert_name_3, 'value': self.value_3, }, 'severity': self.severity_3, 'metric': self.metric, 'message': self.message_3, 'timestamp': self.last_monitored, } self.alert_data_key_error = {"result": {"data": {}, "data2": {}}} self.alert_data_unexpected = {"unexpected": {}}