Path: blob/develop/tests/functional/logs/test_startlivetail.py
1567 views
# Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.1#2# Licensed under the Apache License, Version 2.0 (the "License"). You3# may not use this file except in compliance with the License. A copy of4# the License is located at5#6# http://aws.amazon.com/apache2.0/7#8# or in the "license" file accompanying this file. This file is9# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF10# ANY KIND, either express or implied. See the License for the specific11# language governing permissions and limitations under the License.12from awscli.testutils import mock, BaseAWSCommandParamsTest131415class TestStartLiveTailCommand(BaseAWSCommandParamsTest):16def setUp(self):17super(TestStartLiveTailCommand, self).setUp()18self.log_group_identifiers = [19"arn:aws:logs:us-east-1:123456789012:log-group:mygroup"20]21self.log_stream_names = ["mystream"]22self.log_stream_name_prefixes = ["mystream"]23self.log_event_filter_pattern = "filterPattern"2425self.raw_stream = mock.Mock()26self.raw_stream.stream = mock.MagicMock(return_value=[])27self.event_stream = mock.Mock()28self.updates = iter(29[30{"sessionStart": "The session is started"},31{32"sessionUpdate": {33"sessionMetadata": {"sampled": False},34"sessionResults": [35{"message": "LogEvent1"},36{"message": "LogEvent2"},37],38}39},40]41)42self.parsed_responses = [{"responseStream": self.event_stream}]4344def tearDown(self):45super(TestStartLiveTailCommand, self).tearDown()4647def test_start_live_tail(self):48self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)4950stdout, _, _ = self.assert_params_for_cmd(51"logs start-live-tail --log-group-identifiers {}".format(52" ".join(self.log_group_identifiers)53),54params={"logGroupIdentifiers": self.log_group_identifiers},55)56self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")5758def test_start_live_tail_with_log_stream_names(self):59self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)6061stdout, _, _ = self.assert_params_for_cmd(62"logs start-live-tail --log-group-identifiers {} --log-stream-names {}".format(63" ".join(self.log_group_identifiers), " ".join(self.log_stream_names)64),65params={66"logGroupIdentifiers": self.log_group_identifiers,67"logStreamNames": self.log_stream_names,68},69)70self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")7172def test_start_live_tail_with_log_stream_name_prefixes(self):73self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)7475stdout, _, _ = self.assert_params_for_cmd(76"logs start-live-tail --log-group-identifiers {} --log-stream-name-prefixes {}".format(77" ".join(self.log_group_identifiers),78" ".join(self.log_stream_name_prefixes),79),80params={81"logGroupIdentifiers": self.log_group_identifiers,82"logStreamNamePrefixes": self.log_stream_name_prefixes,83},84)85self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")8687def test_start_live_tail_with_filter_pattern(self):88self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)8990stdout, _, _ = self.assert_params_for_cmd(91"logs start-live-tail --log-group-identifiers {} --log-event-filter-pattern {}".format(92" ".join(self.log_group_identifiers), self.log_event_filter_pattern93),94params={95"logGroupIdentifiers": self.log_group_identifiers,96"logEventFilterPattern": self.log_event_filter_pattern,97},98)99self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")100101102