OLD | NEW |
(Empty) | |
| 1 # -*- coding: utf-8 -*- |
| 2 # Copyright 2015 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 """Unit tests for tracker_file.""" |
| 16 |
| 17 from gslib.tests.testcase.unit_testcase import GsUtilUnitTestCase |
| 18 from gslib.third_party.storage_apitools import storage_v1_messages as apitools_m
essages |
| 19 from gslib.tracker_file import _HashFilename |
| 20 from gslib.tracker_file import DeleteTrackerFile |
| 21 from gslib.tracker_file import GetRewriteTrackerFilePath |
| 22 from gslib.tracker_file import HashRewriteParameters |
| 23 from gslib.tracker_file import ReadRewriteTrackerFile |
| 24 from gslib.tracker_file import WriteRewriteTrackerFile |
| 25 |
| 26 |
| 27 class TestTrackerFile(GsUtilUnitTestCase): |
| 28 """Unit tests for parallel upload functions in cp command.""" |
| 29 |
| 30 def test_HashFilename(self): |
| 31 # Tests that _HashFilename function works for both string and unicode |
| 32 # filenames (without raising any Unicode encode/decode errors). |
| 33 _HashFilename('file1') |
| 34 _HashFilename(u'file1') |
| 35 |
| 36 def test_RewriteTrackerFile(self): |
| 37 """Tests Rewrite tracker file functions.""" |
| 38 tracker_file_name = GetRewriteTrackerFilePath('bk1', 'obj1', 'bk2', 'obj2', |
| 39 self.test_api) |
| 40 # Should succeed regardless of whether it exists. |
| 41 DeleteTrackerFile(tracker_file_name) |
| 42 src_obj_metadata = apitools_messages.Object( |
| 43 bucket='bk1', name='obj1', etag='etag1', md5Hash='12345') |
| 44 src_obj2_metadata = apitools_messages.Object( |
| 45 bucket='bk1', name='obj1', etag='etag2', md5Hash='67890') |
| 46 dst_obj_metadata = apitools_messages.Object( |
| 47 bucket='bk2', name='obj2') |
| 48 rewrite_token = 'token1' |
| 49 self.assertIsNone(ReadRewriteTrackerFile(tracker_file_name, |
| 50 src_obj_metadata)) |
| 51 rewrite_params_hash = HashRewriteParameters( |
| 52 src_obj_metadata, dst_obj_metadata, 'full') |
| 53 WriteRewriteTrackerFile(tracker_file_name, rewrite_params_hash, |
| 54 rewrite_token) |
| 55 self.assertEqual( |
| 56 ReadRewriteTrackerFile(tracker_file_name, rewrite_params_hash), |
| 57 rewrite_token) |
| 58 |
| 59 # Tracker file for an updated source object (with non-matching etag/md5) |
| 60 # should return None. |
| 61 rewrite_params_hash2 = HashRewriteParameters( |
| 62 src_obj2_metadata, dst_obj_metadata, 'full') |
| 63 |
| 64 self.assertIsNone(ReadRewriteTrackerFile(tracker_file_name, |
| 65 rewrite_params_hash2)) |
| 66 DeleteTrackerFile(tracker_file_name) |
| 67 |
OLD | NEW |