def test_load_lookup_tables(self, mock_logger): """Rules Engine - Load lookup table""" s3_mock = mock_s3() s3_mock.start() put_mock_s3_object('bucket_name', 'foo.json', json.dumps({'key1': 'value1'}), 'us-east-1') put_mock_s3_object('bucket_name', 'bar.json', json.dumps({'key2': 'value2'}), 'us-east-1') self.config['global']['infrastructure']['lookup_tables'][ 'enabled'] = True _ = RulesEngine(self.config) assert_equal(RulesEngine.get_lookup_table('foo'), {'key1': 'value1'}) assert_equal(RulesEngine.get_lookup_table('bar'), {'key2': 'value2'}) assert_equal(RulesEngine.get_lookup_table('not_exist'), None) _ = RulesEngine(self.config) mock_logger.assert_called() s3_mock.stop()
def test_load_lookup_tables_missing_config(self, mock_logger): """Rules Engine - Load lookup tables with missing config""" self.config['global']['infrastructure'].pop('lookup_tables') _ = RulesEngine(self.config) assert_equal(RulesEngine._LOOKUP_TABLES, {}) assert_equal(LookupTables._LOOKUP_TABLES_LAST_REFRESH, datetime(year=1970, month=1, day=1)) assert_equal(RulesEngine.get_lookup_table('table_name'), None) self.config['global']['infrastructure']['lookup_tables'] = { 'cache_refresh_minutes': 10, 'enabled': True } _ = RulesEngine(self.config) mock_logger.assert_called_with('Buckets not defined')