@@ -247,6 +247,50 @@ def test_delete_keys_miss(self):
247247 self .assertEqual (kw [1 ]['method' ], 'DELETE' )
248248 self .assertEqual (kw [1 ]['path' ], '/b/%s/o/%s' % (NAME , NONESUCH ))
249249
250+ def test_copy_keys_wo_name (self ):
251+ SOURCE = 'source'
252+ DEST = 'dest'
253+ KEY = 'key'
254+
255+ class _Key (object ):
256+ name = KEY
257+ path = '/b/%s/o/%s' % (SOURCE , KEY )
258+
259+ connection = _Connection ({})
260+ source = self ._makeOne (connection , SOURCE )
261+ dest = self ._makeOne (connection , DEST )
262+ key = _Key ()
263+ new_key = source .copy_key (key , dest )
264+ self .assertTrue (new_key .bucket is dest )
265+ self .assertEqual (new_key .name , KEY )
266+ kw , = connection ._requested
267+ COPY_PATH = '/b/%s/o/%s/copyTo/b/%s/o/%s' % (SOURCE , KEY , DEST , KEY )
268+ self .assertEqual (kw ['method' ], 'POST' )
269+ self .assertEqual (kw ['path' ], COPY_PATH )
270+
271+ def test_copy_keys_w_name (self ):
272+ SOURCE = 'source'
273+ DEST = 'dest'
274+ KEY = 'key'
275+ NEW_NAME = 'new_name'
276+
277+ class _Key (object ):
278+ name = KEY
279+ path = '/b/%s/o/%s' % (SOURCE , KEY )
280+
281+ connection = _Connection ({})
282+ source = self ._makeOne (connection , SOURCE )
283+ dest = self ._makeOne (connection , DEST )
284+ key = _Key ()
285+ new_key = source .copy_key (key , dest , NEW_NAME )
286+ self .assertTrue (new_key .bucket is dest )
287+ self .assertEqual (new_key .name , NEW_NAME )
288+ kw , = connection ._requested
289+ COPY_PATH = (
290+ '/b/%s/o/%s/copyTo/b/%s/o/%s' % (SOURCE , KEY , DEST , NEW_NAME ))
291+ self .assertEqual (kw ['method' ], 'POST' )
292+ self .assertEqual (kw ['path' ], COPY_PATH )
293+
250294 def test_upload_file_default_key (self ):
251295 from gcloud .test_credentials import _Monkey
252296 from gcloud .storage import bucket as MUT
0 commit comments