• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# -*- coding: utf-8 -*-
2# Copyright 2013 Google Inc. All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15"""Integration tests for logging command."""
16
17from __future__ import absolute_import
18
19import gslib.tests.testcase as testcase
20from gslib.tests.testcase.integration_testcase import SkipForS3
21from gslib.tests.util import ObjectToURI as suri
22
23
24@SkipForS3('Logging command requires S3 ACL configuration on target bucket.')
25class TestLogging(testcase.GsUtilIntegrationTestCase):
26  """Integration tests for logging command."""
27
28  _enable_log_cmd = ['logging', 'set', 'on']
29  _disable_log_cmd = ['logging', 'set', 'off']
30  _get_log_cmd = ['logging', 'get']
31
32  def testLogging(self):
33    """Tests enabling and disabling logging."""
34    bucket_uri = self.CreateBucket()
35    bucket_suri = suri(bucket_uri)
36    stderr = self.RunGsUtil(
37        self._enable_log_cmd + ['-b', bucket_suri, bucket_suri],
38        return_stderr=True)
39    self.assertIn('Enabling logging', stderr)
40
41    stdout = self.RunGsUtil(self._get_log_cmd + [bucket_suri],
42                            return_stdout=True)
43    self.assertIn('LogObjectPrefix'.lower(), stdout.lower())
44
45    stderr = self.RunGsUtil(self._disable_log_cmd + [bucket_suri],
46                            return_stderr=True)
47    self.assertIn('Disabling logging', stderr)
48
49  def testTooFewArgumentsFails(self):
50    """Ensures logging commands fail with too few arguments."""
51    # No arguments for enable, but valid subcommand.
52    stderr = self.RunGsUtil(self._enable_log_cmd, return_stderr=True,
53                            expected_status=1)
54    self.assertIn('command requires at least', stderr)
55
56    # No arguments for disable, but valid subcommand.
57    stderr = self.RunGsUtil(self._disable_log_cmd, return_stderr=True,
58                            expected_status=1)
59    self.assertIn('command requires at least', stderr)
60
61    # No arguments for get, but valid subcommand.
62    stderr = self.RunGsUtil(self._get_log_cmd, return_stderr=True,
63                            expected_status=1)
64    self.assertIn('command requires at least', stderr)
65
66    # Neither arguments nor subcommand.
67    stderr = self.RunGsUtil(['logging'], return_stderr=True, expected_status=1)
68    self.assertIn('command requires at least', stderr)
69
70
71class TestLoggingOldAlias(TestLogging):
72  _enable_log_cmd = ['enablelogging']
73  _disable_log_cmd = ['disablelogging']
74  _get_log_cmd = ['getlogging']
75