@@ -298,6 +298,45 @@ def test_small_file_write_from_filename(self):
298298 md5_hash = md5_hash .encode ('utf-8' )
299299 self .assertEqual (md5_hash , file_data ['hash' ])
300300
301+ @unittest .skipUnless (USER_PROJECT , 'USER_PROJECT not set in environment.' )
302+ def test_crud_blob_w_user_project (self ):
303+ with_user_project = Config .CLIENT .bucket (
304+ self .bucket .name , user_project = USER_PROJECT )
305+ blob = with_user_project .blob ('SmallFile' )
306+
307+ file_data = self .FILES ['simple' ]
308+ with open (file_data ['path' ], mode = 'rb' ) as to_read :
309+ file_contents = to_read .read ()
310+
311+ # Exercise 'objects.insert' w/ userProject.
312+ blob .upload_from_filename (file_data ['path' ])
313+
314+ try :
315+ # Exercise 'objects.get' (metadata) w/ userProject.
316+ self .assertTrue (blob .exists ())
317+ blob .reload ()
318+
319+ # Exercise 'objects.get' (media) w/ userProject.
320+ downloaded = blob .download_as_string ()
321+ self .assertEqual (downloaded , file_contents )
322+
323+ # Exercise 'objects.patch' w/ userProject.
324+ blob .content_language = 'en'
325+ blob .patch ()
326+ self .assertEqual (blob .content_language , 'en' )
327+
328+ # Exercise 'objects.update' w/ userProject.
329+ metadata = {
330+ 'foo' : 'Foo' ,
331+ 'bar' : 'Bar' ,
332+ }
333+ blob .metadata = metadata
334+ blob .update ()
335+ self .assertEqual (blob .metadata , metadata )
336+ finally :
337+ # Exercise 'objects.delete' (metadata) w/ userProject.
338+ blob .delete ()
339+
301340 def test_write_metadata (self ):
302341 filename = self .FILES ['logo' ]['path' ]
303342 blob_name = os .path .basename (filename )
0 commit comments