def test_cp_with_error_and_warning(self): command = "s3 cp %s s3://bucket/foo.txt" self.parsed_responses = [{ 'Error': { 'Code': 'NoSuchBucket', 'Message': 'The specified bucket does not exist', 'BucketName': 'bucket' } }] self.http_response.status_code = 404 full_path = self.files.create_file('foo.txt', 'bar') set_invalid_utime(full_path) _, stderr, rc = self.run_cmd(command % full_path, expected_rc=1) self.assertIn('upload failed', stderr) self.assertIn('warning: File has an invalid timestamp.', stderr)
def test_warning_on_invalid_timestamp(self): full_path = self.files.create_file('foo.txt', 'mycontent') # Set the update time to a value that will raise a ValueError when # converting to datetime set_invalid_utime(full_path) cmdline = '%s %s s3://bucket/key.txt' % \ (self.prefix, self.files.rootdir) self.parsed_responses = [ {"CommonPrefixes": [], "Contents": []}, {'ETag': '"c8afdb36c52cf4727836669019e69222"'} ] self.run_cmd(cmdline, expected_rc=2) # We should still have put the object self.assertEqual(len(self.operations_called), 2, self.operations_called) self.assertEqual(self.operations_called[0][0].name, 'ListObjectsV2') self.assertEqual(self.operations_called[1][0].name, 'PutObject')
def test_warning_on_invalid_timestamp(self): full_path = self.files.create_file('foo.txt', 'mycontent') # Set the update time to a value that will raise a ValueError when # converting to datetime set_invalid_utime(full_path) cmdline = '%s %s s3://bucket/key.txt' % \ (self.prefix, self.files.rootdir) self.parsed_responses = [ {"CommonPrefixes": [], "Contents": []}, {'ETag': '"c8afdb36c52cf4727836669019e69222"'} ] self.run_cmd(cmdline, expected_rc=2) # We should still have put the object self.assertEqual(len(self.operations_called), 2, self.operations_called) self.assertEqual(self.operations_called[0][0].name, 'ListObjects') self.assertEqual(self.operations_called[1][0].name, 'PutObject')