| #!/usr/bin/env vpython3 |
| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # TODO(crbug.com/1496426): Remove this file. |
| |
| import unittest |
| from unittest import mock |
| |
| from parameterized import parameterized |
| |
| from update_images import _GetImageOverrideInfo |
| from update_images import GetImageLocationInfo |
| |
| |
| @mock.patch('update_images.GetSDKOverrideGCSPath') |
| class TestGetImageOverrideInfo(unittest.TestCase): |
| def testLocationIsNone(self, mock_sdk_loc): |
| mock_sdk_loc.return_value = None |
| |
| actual = _GetImageOverrideInfo() |
| self.assertIsNone(actual) |
| |
| def testBadLocationStr(self, mock_sdk_loc): |
| mock_sdk_loc.return_value = 'bad-format-string' |
| |
| with self.assertRaises(Exception): |
| _GetImageOverrideInfo() |
| |
| @parameterized.expand([ |
| ('gs://my-bucket/development/my-hash/sdk', { |
| 'bucket': 'my-bucket', |
| 'image_hash': 'my-hash' |
| }), |
| ('gs://my-bucket/development/my-hash', { |
| 'bucket': 'my-bucket', |
| 'image_hash': 'my-hash' |
| }), |
| ('gs://my-bucket/development/my-hash/', { |
| 'bucket': 'my-bucket', |
| 'image_hash': 'my-hash' |
| }), |
| ]) |
| def testValidLocation(self, mock_sdk_loc, in_path, expected): |
| mock_sdk_loc.return_value = in_path |
| |
| actual = _GetImageOverrideInfo() |
| self.assertEqual(actual, expected) |
| |
| |
| @mock.patch('update_images.GetImageHash') |
| @mock.patch('update_images.GetOverrideCloudStorageBucket') |
| @mock.patch('update_images._GetImageOverrideInfo') |
| class TestGetImageLocationInfo(unittest.TestCase): |
| def testNoOverride(self, mock_image_override, mock_override_bucket, |
| mock_image_hash): |
| mock_image_override.return_value = None |
| mock_override_bucket.return_value = None |
| mock_image_hash.return_value = 'image-hash' |
| |
| actual = GetImageLocationInfo('my-bucket') |
| self.assertEqual(actual, { |
| 'bucket': 'my-bucket', |
| 'image_hash': 'image-hash', |
| }) |
| |
| def testOverride(self, mock_image_override, mock_override_bucket, |
| mock_image_hash): |
| override_info = { |
| 'bucket': 'override-bucket', |
| 'image_hash': 'override-hash', |
| } |
| mock_image_override.return_value = override_info |
| mock_override_bucket.return_value = None |
| mock_image_hash.return_value = 'image-hash' |
| |
| actual = GetImageLocationInfo('my-bucket') |
| self.assertEqual(actual, override_info) |
| |
| def testNoAllowOverride(self, mock_image_override, mock_override_bucket, |
| mock_image_hash): |
| override_info = { |
| 'bucket': 'override-bucket', |
| 'image_hash': 'override-hash', |
| } |
| mock_image_override.return_value = override_info |
| mock_override_bucket.return_value = None |
| mock_image_hash.return_value = 'image-hash' |
| |
| actual = GetImageLocationInfo('my-bucket', allow_override=False) |
| self.assertEqual(actual, { |
| 'bucket': 'my-bucket', |
| 'image_hash': 'image-hash', |
| }) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |