Ejemplo n.º 1
0
    def test_execute_fails_for_inter_cloud_copy(self):
        source_resource = test_resources.from_url_string('s3://b/o1.txt')
        destination_resource = test_resources.from_url_string('gs://b/o2.txt')

        with self.assertRaises(ValueError):
            intra_cloud_copy_task.IntraCloudCopyTask(source_resource,
                                                     destination_resource)
Ejemplo n.º 2
0
    def SetUp(self):

        self.messages = apis.GetMessagesModule('storage', 'v1')

        # Test resources tree structure:
        # bucket1:
        #   dir1
        #     b/c/d.txt
        #     b.txt
        #   dir2/
        #     b/c/d.txt
        #     b/e.txt
        #   dirobj.txt
        #   foo/
        #     b/c/d.txt
        #     b/e.txt

        self.dir1 = test_resources.from_url_string('gs://bucket/dir1/')
        self.dir2 = test_resources.from_url_string('gs://bucket/dir2/')
        self.foo_dir = test_resources.from_url_string('gs://bucket/foo/')
        self.dirobj = test_resources.from_url_string('gs://bucket/dirobj.txt')
        self.objects_with_dir_prefix = [self.dir1, self.dir2, self.dirobj]
        self.dir1_objects = [
            test_resources.from_url_string('gs://bucket/dir1/b/c/d.txt'),
            test_resources.from_url_string('gs://bucket/dir1/b.txt')
        ]
        self.dir2_objects = [
            test_resources.from_url_string('gs://bucket/dir2/b/c/d.txt'),
            test_resources.from_url_string('gs://bucket/dir2/b/e.txt'),
        ]

        self.foo_dir_objects = [
            test_resources.from_url_string('gs://bucket/foo/b/c/d.txt'),
            test_resources.from_url_string('gs://bucket/foo/b/e.txt'),
        ]
Ejemplo n.º 3
0
 def test_equality(self):
     object1 = name_expansion.NameExpansionResult(
         test_resources.from_url_string('gs://bucket/dir1/obj1.txt'),
         storage_url.storage_url_from_string('gs://bucket/dir1/'))
     object2 = name_expansion.NameExpansionResult(
         test_resources.from_url_string('gs://bucket/dir1/obj1.txt'),
         storage_url.storage_url_from_string('gs://bucket/dir1/'))
     self.assertEqual(object1, object2)
Ejemplo n.º 4
0
 def test_non_equality_with_different_expanded_urls(self):
     """Test with same resources but different expanded URLs."""
     object1 = name_expansion.NameExpansionResult(
         test_resources.from_url_string('gs://bucket/dir1/obj1.txt'),
         storage_url.storage_url_from_string('gs://bucket/dir1/'))
     object2 = name_expansion.NameExpansionResult(
         test_resources.from_url_string('gs://bucket/dir1/obj1.txt'),
         storage_url.storage_url_from_string('gs://bucket/dir2/'))
     self.assertNotEqual(object1, object2)
Ejemplo n.º 5
0
    def test_execute_copies_file(self, mock_client):
        source_resource = test_resources.from_url_string('gs://b/o1.txt')
        destination_resource = test_resources.from_url_string('gs://b/o2.txt')

        task = intra_cloud_copy_task.IntraCloudCopyTask(
            source_resource, destination_resource)
        task.execute()

        mock_client.copy_object.assert_called_once_with(
            source_resource, destination_resource)
    def test_gets_unknown_resource(self):
        # Create URL test_resources.from_url_string will categorize as unknown.
        url_string = 'gs://'
        parsed_url = storage_url.storage_url_from_string(url_string)

        resource = resource_reference.UnknownResource(parsed_url)
        self.assertEqual(test_resources.from_url_string(url_string), resource)
Ejemplo n.º 7
0
    def test_creates_missing_bucket_metadata(self):
        expected_metadata = self.messages.Bucket(name='b')
        self.apitools_client.buckets.Insert.Expect(
            self.messages.StorageBucketsInsertRequest(
                bucket=expected_metadata,
                project=TEST_PROJECT,
                projection=self.default_projection),
            response=expected_metadata)

        expected_resource = gcs_api._bucket_resource_from_metadata(
            expected_metadata)
        observed_resource = self.gcs_client.create_bucket(
            test_resources.from_url_string('gs://b'))
        self.assertEqual(observed_resource, expected_resource)
Ejemplo n.º 8
0
    def test_patch_object_metadata_populates_missing_metadata(self):
        return_metadata = self.messages.Object(name='o', bucket='b')
        request = self.messages.StorageObjectsPatchRequest(
            bucket=TEST_BUCKET,
            object=TEST_OBJECT,
            objectResource=return_metadata,
            projection=self.default_projection)
        self.apitools_client.objects.Patch.Expect(request,
                                                  response=return_metadata)

        expected_resource = gcs_api._object_resource_from_metadata(
            return_metadata)
        patch_resource = test_resources.from_url_string('gs://b/o')
        observed_resource = self.gcs_client.patch_object_metadata(
            TEST_BUCKET, TEST_OBJECT, patch_resource)
        self.assertEqual(observed_resource, expected_resource)
Ejemplo n.º 9
0
 def test_str_method(self):
     expanded_result = name_expansion.NameExpansionResult(
         test_resources.from_url_string('gs://bucket/dir1/obj1.txt'),
         storage_url.storage_url_from_string('gs://bucket/dir1/'))
     self.assertEqual(str(expanded_result), 'gs://bucket/dir1/obj1.txt')
Ejemplo n.º 10
0
  def SetUp(self):
    properties.VALUES.core.project.Set(TEST_PROJECT)
    self.stdout_seek_position = 0
    self.messages = core_apis.GetMessagesModule('storage', 'v1')

    # bucket1:
    #   object1
    #   dir1/object2
    #   dir1/subdir1/object3
    #   dir1/subdir2/object4
    #   dir2/subdir3/object5
    # bucket2:
    #   dir_object
    #   dir_object/object6

    self.bucket1 = test_resources.from_url_string('gs://bucket1')
    self.bucket2 = test_resources.from_url_string('gs://bucket2')

    self.object1 = resource_reference.ObjectResource(
        storage_url.storage_url_from_string('gs://bucket1/object1#1'),
        creation_time=DATETIME, size=0)
    self.object2 = test_resources.from_url_string(
        'gs://bucket1/dir1/object2')
    self.object3 = test_resources.from_url_string(
        'gs://bucket1/dir1/subdir1/object3')
    self.object4 = test_resources.from_url_string(
        'gs://bucket1/dir1/subdir2/object4')
    self.object5 = test_resources.from_url_string(
        'gs://bucket1/dir2/subdir3/object5')
    self.object6 = test_resources.from_url_string(
        'gs://bucket2/dir_object/object6')
    self.object_duplicate_of_dir = test_resources.from_url_string(
        'gs://bucket2/dir_object')

    self.dir1 = test_resources.from_url_string('gs://bucket1/dir1/')
    self.dir2 = test_resources.from_url_string('gs://bucket1/dir2/')
    self.subdir1 = test_resources.from_url_string('gs://bucket1/dir1/subdir1/')
    self.subdir2 = test_resources.from_url_string('gs://bucket1/dir1/subdir2/')
    self.subdir3 = test_resources.from_url_string('gs://bucket1/dir2/subdir3/')
    self.dir_duplicate_of_object = test_resources.from_url_string(
        'gs://bucket2/dir_object/')

    self.bucket_resources = [self.bucket1, self.bucket2]
    self.bucket1_top_level_resources = [self.object1, self.dir1, self.dir2]
    self.bucket1_dir1_resources = [self.object2, self.subdir1, self.subdir2]
    self.bucket1_dir1_subdir1_resources = [self.object3]
    self.bucket1_dir1_subdir2_resources = [self.object4]
    self.bucket1_dir2_resources = [self.subdir3]
    self.bucket1_dir2_subdir3_resources = [self.object5]
    self.bucket1_all_objects = [self.object1, self.object2, self.object3,
                                self.object4, self.object5]
    self.bucket2_top_level_resources = [self.object_duplicate_of_dir,
                                        self.dir_duplicate_of_object]
    self.bucket2_dir_object_resources = [self.object6]
 def test_gets_prefix_resource(self):
     url_string = 'gs://bucket/prefix/'
     parsed_url = storage_url.storage_url_from_string(url_string)
     resource = resource_reference.PrefixResource(parsed_url, 'prefix/')
     self.assertEqual(test_resources.from_url_string(url_string), resource)
 def test_gets_object_resource(self):
     url_string = 'gs://bucket/object#1'
     parsed_url = storage_url.storage_url_from_string(url_string)
     resource = resource_reference.ObjectResource(parsed_url)
     self.assertEqual(test_resources.from_url_string(url_string), resource)
 def test_gets_bucket_resource(self):
     url_string = 'gs://bucket'
     cloud_url = storage_url.storage_url_from_string(url_string)
     resource = resource_reference.BucketResource(cloud_url)
     self.assertEqual(test_resources.from_url_string(url_string), resource)
 def test_gets_file_object_resource(self):
     url_string = 'hi.txt'
     parsed_url = storage_url.storage_url_from_string(url_string)
     resource = resource_reference.FileObjectResource(parsed_url)
     self.assertEqual(test_resources.from_url_string(url_string), resource)
 def test_gets_file_directory_resource(self):
     url_string = 'hi' + os.path.sep
     parsed_url = storage_url.storage_url_from_string(url_string)
     resource = resource_reference.FileDirectoryResource(parsed_url)
     self.assertEqual(test_resources.from_url_string(url_string), resource)