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 |