From 37877c6fb2f7a5135183ae308815e50129d42fb5 Mon Sep 17 00:00:00 2001 From: Selena Date: Fri, 18 Oct 2019 13:46:27 +0200 Subject: [PATCH 1/2] add NotImplementedError when filter_pattern is given to filter_log_events fix #2419 --- moto/logs/models.py | 3 +++ tests/test_logs/test_logs.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/moto/logs/models.py b/moto/logs/models.py index cc0d21d4..448d3dec 100644 --- a/moto/logs/models.py +++ b/moto/logs/models.py @@ -125,6 +125,9 @@ class LogStream: return events_page, get_paging_token_from_index(back_index, True), get_paging_token_from_index(next_index) def filter_log_events(self, log_group_name, log_stream_names, start_time, end_time, limit, next_token, filter_pattern, interleaved): + if filter_pattern: + raise NotImplementedError('filter_pattern is not yet implemented') + def filter_func(event): if start_time and event.timestamp < start_time: return False diff --git a/tests/test_logs/test_logs.py b/tests/test_logs/test_logs.py index 22e7edee..3faa588e 100644 --- a/tests/test_logs/test_logs.py +++ b/tests/test_logs/test_logs.py @@ -128,6 +128,34 @@ def test_filter_logs_interleaved(): resulting_event['timestamp'].should.equal(original_message['timestamp']) resulting_event['message'].should.equal(original_message['message']) + +@mock_logs +def test_filter_logs_raises_if_filter_pattern(): + conn = boto3.client('logs', 'us-west-2') + log_group_name = 'dummy' + log_stream_name = 'stream' + conn.create_log_group(logGroupName=log_group_name) + conn.create_log_stream( + logGroupName=log_group_name, + logStreamName=log_stream_name + ) + messages = [ + {'timestamp': 0, 'message': 'hello'}, + {'timestamp': 0, 'message': 'world'} + ] + conn.put_log_events( + logGroupName=log_group_name, + logStreamName=log_stream_name, + logEvents=messages + ) + with assert_raises(NotImplementedError): + conn.filter_log_events( + logGroupName=log_group_name, + logStreamNames=[log_stream_name], + filterPattern='{$.message = "hello"}', + ) + + @mock_logs def test_put_retention_policy(): conn = boto3.client('logs', 'us-west-2') @@ -142,6 +170,7 @@ def test_put_retention_policy(): response = conn.delete_log_group(logGroupName=log_group_name) + @mock_logs def test_delete_retention_policy(): conn = boto3.client('logs', 'us-west-2') From 6590226db5b000103f85306b5d3dc09f961e9d93 Mon Sep 17 00:00:00 2001 From: Selena Date: Mon, 21 Oct 2019 09:32:07 +0200 Subject: [PATCH 2/2] fix test for server_mode (skip test) --- tests/test_logs/test_logs.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_logs/test_logs.py b/tests/test_logs/test_logs.py index 3faa588e..5a843a65 100644 --- a/tests/test_logs/test_logs.py +++ b/tests/test_logs/test_logs.py @@ -1,10 +1,12 @@ import boto3 +import os import sure # noqa import six from botocore.exceptions import ClientError from moto import mock_logs, settings from nose.tools import assert_raises +from nose import SkipTest _logs_region = 'us-east-1' if settings.TEST_SERVER_MODE else 'us-west-2' @@ -131,6 +133,8 @@ def test_filter_logs_interleaved(): @mock_logs def test_filter_logs_raises_if_filter_pattern(): + if os.environ.get('TEST_SERVER_MODE', 'false').lower() == 'true': + raise SkipTest('Does not work in server mode due to error in Workzeug') conn = boto3.client('logs', 'us-west-2') log_group_name = 'dummy' log_stream_name = 'stream'