Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aws
GitHub Repository: aws/aws-cli
Path: blob/develop/tests/functional/logs/test_startlivetail.py
1567 views
1
# Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
#
3
# Licensed under the Apache License, Version 2.0 (the "License"). You
4
# may not use this file except in compliance with the License. A copy of
5
# the License is located at
6
#
7
# http://aws.amazon.com/apache2.0/
8
#
9
# or in the "license" file accompanying this file. This file is
10
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
# ANY KIND, either express or implied. See the License for the specific
12
# language governing permissions and limitations under the License.
13
from awscli.testutils import mock, BaseAWSCommandParamsTest
14
15
16
class TestStartLiveTailCommand(BaseAWSCommandParamsTest):
17
def setUp(self):
18
super(TestStartLiveTailCommand, self).setUp()
19
self.log_group_identifiers = [
20
"arn:aws:logs:us-east-1:123456789012:log-group:mygroup"
21
]
22
self.log_stream_names = ["mystream"]
23
self.log_stream_name_prefixes = ["mystream"]
24
self.log_event_filter_pattern = "filterPattern"
25
26
self.raw_stream = mock.Mock()
27
self.raw_stream.stream = mock.MagicMock(return_value=[])
28
self.event_stream = mock.Mock()
29
self.updates = iter(
30
[
31
{"sessionStart": "The session is started"},
32
{
33
"sessionUpdate": {
34
"sessionMetadata": {"sampled": False},
35
"sessionResults": [
36
{"message": "LogEvent1"},
37
{"message": "LogEvent2"},
38
],
39
}
40
},
41
]
42
)
43
self.parsed_responses = [{"responseStream": self.event_stream}]
44
45
def tearDown(self):
46
super(TestStartLiveTailCommand, self).tearDown()
47
48
def test_start_live_tail(self):
49
self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)
50
51
stdout, _, _ = self.assert_params_for_cmd(
52
"logs start-live-tail --log-group-identifiers {}".format(
53
" ".join(self.log_group_identifiers)
54
),
55
params={"logGroupIdentifiers": self.log_group_identifiers},
56
)
57
self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")
58
59
def test_start_live_tail_with_log_stream_names(self):
60
self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)
61
62
stdout, _, _ = self.assert_params_for_cmd(
63
"logs start-live-tail --log-group-identifiers {} --log-stream-names {}".format(
64
" ".join(self.log_group_identifiers), " ".join(self.log_stream_names)
65
),
66
params={
67
"logGroupIdentifiers": self.log_group_identifiers,
68
"logStreamNames": self.log_stream_names,
69
},
70
)
71
self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")
72
73
def test_start_live_tail_with_log_stream_name_prefixes(self):
74
self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)
75
76
stdout, _, _ = self.assert_params_for_cmd(
77
"logs start-live-tail --log-group-identifiers {} --log-stream-name-prefixes {}".format(
78
" ".join(self.log_group_identifiers),
79
" ".join(self.log_stream_name_prefixes),
80
),
81
params={
82
"logGroupIdentifiers": self.log_group_identifiers,
83
"logStreamNamePrefixes": self.log_stream_name_prefixes,
84
},
85
)
86
self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")
87
88
def test_start_live_tail_with_filter_pattern(self):
89
self.event_stream.__iter__ = mock.MagicMock(return_value=self.updates)
90
91
stdout, _, _ = self.assert_params_for_cmd(
92
"logs start-live-tail --log-group-identifiers {} --log-event-filter-pattern {}".format(
93
" ".join(self.log_group_identifiers), self.log_event_filter_pattern
94
),
95
params={
96
"logGroupIdentifiers": self.log_group_identifiers,
97
"logEventFilterPattern": self.log_event_filter_pattern,
98
},
99
)
100
self.assertEqual(stdout, "LogEvent1\nLogEvent2\n")
101
102