You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.1 KiB
86 lines
3.1 KiB
#!/usr/bin/env python
|
|
#
|
|
# Copyright (C) 2018 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import mock
|
|
import unittest
|
|
|
|
from vts.utils.python.gcs import gcs_utils
|
|
|
|
|
|
def simple_GetGcloudPath():
|
|
"""mock function created for _GetGcloudPath"""
|
|
return "gcloud"
|
|
|
|
|
|
def simple_ExecuteOneShellCommand(input_string):
|
|
"""mock function created for ExecuteOneShellCommand"""
|
|
std_out = "this is standard output"
|
|
std_err = "this is standard error"
|
|
return_code = 0
|
|
return std_out, std_err, return_code
|
|
|
|
|
|
class GcsUtilsTest(unittest.TestCase):
|
|
"""Unit tests for gcs_utils module"""
|
|
|
|
def SetUp(self):
|
|
"""Setup tasks"""
|
|
self.category = "category_default"
|
|
self.name = "name_default"
|
|
|
|
def testInitialization(self):
|
|
"""Tests the initilization of a GcsUtils object"""
|
|
user_params = {"service_key_json_path": "key.json"}
|
|
_gcs_utils = gcs_utils.GcsUtils(user_params)
|
|
self.assertEqual(_gcs_utils.service_key_json_path, "key.json")
|
|
|
|
@mock.patch(
|
|
'vts.utils.python.gcs.gcs_utils.GcsUtils.GetGcloudPath',
|
|
side_effect=simple_GetGcloudPath)
|
|
@mock.patch(
|
|
'vts.utils.python.common.cmd_utils.ExecuteOneShellCommand',
|
|
side_effect=simple_ExecuteOneShellCommand)
|
|
def testGetGcloudAuth(self, simple_ExecuteOneShellCommand,
|
|
simeple_GetGCloudPath):
|
|
"""Tests the GetGcloudAuth function"""
|
|
user_params = {"service_key_json_path": "key.json"}
|
|
_gcs_utils = gcs_utils.GcsUtils(user_params)
|
|
_gcs_utils.GetGcloudAuth()
|
|
simple_ExecuteOneShellCommand.assert_called_with(
|
|
"gcloud auth activate-service-account --key-file key.json")
|
|
|
|
@mock.patch(
|
|
'vts.utils.python.common.cmd_utils.ExecuteOneShellCommand',
|
|
side_effect=simple_ExecuteOneShellCommand)
|
|
def testGetGcloudPath(self, simple_ExecuteOneShellCommand):
|
|
"""Tests the GetGcloudPath static function"""
|
|
result = gcs_utils.GcsUtils.GetGcloudPath()
|
|
simple_ExecuteOneShellCommand.assert_called_with("which gcloud")
|
|
self.assertEqual(result, "this is standard output")
|
|
|
|
@mock.patch(
|
|
'vts.utils.python.common.cmd_utils.ExecuteOneShellCommand',
|
|
side_effect=simple_ExecuteOneShellCommand)
|
|
def testGetGsutilPath(self, simple_ExecuteOneShellCommand):
|
|
"""Tests the GetGsutilPath static function"""
|
|
result = gcs_utils.GcsUtils.GetGsutilPath()
|
|
simple_ExecuteOneShellCommand.assert_called_with("which gsutil")
|
|
self.assertEqual(result, "this is standard output")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|