@@ -16,7 +16,7 @@ def test_ctor_defaults(self):
1616 self .assertEqual (key .connection , None )
1717 self .assertEqual (key .name , None )
1818 self .assertEqual (key .metadata , {})
19- self .assertEqual (key .acl , None )
19+ self .assertTrue (key ._acl is None )
2020
2121 def test_ctor_explicit (self ):
2222 KEY = 'key'
@@ -28,7 +28,7 @@ def test_ctor_explicit(self):
2828 self .assertTrue (key .connection is connection )
2929 self .assertEqual (key .name , KEY )
3030 self .assertEqual (key .metadata , metadata )
31- self .assertEqual (key .acl , None )
31+ self .assertTrue (key ._acl is None )
3232
3333 def test_from_dict_defaults (self ):
3434 KEY = 'key'
@@ -39,7 +39,7 @@ def test_from_dict_defaults(self):
3939 self .assertEqual (key .connection , None )
4040 self .assertEqual (key .name , KEY )
4141 self .assertEqual (key .metadata , metadata )
42- self .assertEqual (key .acl , None )
42+ self .assertTrue (key ._acl is None )
4343
4444 def test_from_dict_explicit (self ):
4545 KEY = 'key'
@@ -52,7 +52,14 @@ def test_from_dict_explicit(self):
5252 self .assertTrue (key .connection is connection )
5353 self .assertEqual (key .name , KEY )
5454 self .assertEqual (key .metadata , metadata )
55- self .assertEqual (key .acl , None )
55+ self .assertTrue (key ._acl is None )
56+
57+ def test_acl_property (self ):
58+ from gcloud .storage .acl import ObjectACL
59+ key = self ._makeOne ()
60+ acl = key .acl
61+ self .assertTrue (isinstance (acl , ObjectACL ))
62+ self .assertTrue (acl is key ._acl )
5663
5764 def test_path_no_bucket (self ):
5865 key = self ._makeOne ()
@@ -461,27 +468,39 @@ def test_patch_metadata(self):
461468
462469 def test_reload_acl_eager_empty (self ):
463470 from gcloud .storage .acl import ObjectACL
464- metadata = {'acl' : []}
465- key = self ._makeOne (metadata = metadata )
471+ KEY = 'key'
472+ ROLE = 'role'
473+ after = {'items' : [{'entity' : 'allUsers' , 'role' : ROLE }]}
474+ connection = _Connection (after )
475+ bucket = _Bucket (connection )
476+ key = self ._makeOne (bucket , KEY )
477+ key .acl .loaded = True
466478 self .assertTrue (key .reload_acl () is key )
467479 self .assertTrue (isinstance (key .acl , ObjectACL ))
468- self .assertEqual (list (key .acl ), [])
480+ self .assertEqual (list (key .acl ), after ['items' ])
481+ kw = connection ._requested
482+ self .assertEqual (len (kw ), 1 )
483+ self .assertEqual (kw [0 ]['method' ], 'GET' )
484+ self .assertEqual (kw [0 ]['path' ], '/b/name/o/%s/acl' % KEY )
469485
470486 def test_reload_acl_eager_nonempty (self ):
471487 from gcloud .storage .acl import ObjectACL
488+ KEY = 'key'
472489 ROLE = 'role'
473- metadata = {'acl' : [{'entity' : 'allUsers' , 'role' : ROLE }]}
474- key = self ._makeOne (metadata = metadata )
490+ after = {'items' : []}
491+ connection = _Connection (after )
492+ bucket = _Bucket (connection )
493+ key = self ._makeOne (bucket , KEY )
494+ key .acl .entity ('allUsers' , ROLE )
475495 self .assertTrue (key .reload_acl () is key )
476496 self .assertTrue (isinstance (key .acl , ObjectACL ))
477- self .assertEqual (list (key .acl ),
478- [{'entity' : 'allUsers' , 'role' : ROLE }])
497+ self .assertEqual (list (key .acl ), [])
479498
480499 def test_reload_acl_lazy (self ):
481500 from gcloud .storage .acl import ObjectACL
482501 KEY = 'key'
483502 ROLE = 'role'
484- after = {'acl ' : [{'entity' : 'allUsers' , 'role' : ROLE }]}
503+ after = {'items ' : [{'entity' : 'allUsers' , 'role' : ROLE }]}
485504 connection = _Connection (after )
486505 bucket = _Bucket (connection )
487506 key = self ._makeOne (bucket , KEY )
@@ -492,22 +511,23 @@ def test_reload_acl_lazy(self):
492511 kw = connection ._requested
493512 self .assertEqual (len (kw ), 1 )
494513 self .assertEqual (kw [0 ]['method' ], 'GET' )
495- self .assertEqual (kw [0 ]['path' ], '/b/name/o/%s' % KEY )
496- self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'full' })
514+ self .assertEqual (kw [0 ]['path' ], '/b/name/o/%s/acl' % KEY )
497515
498516 def test_get_acl_lazy (self ):
499517 from gcloud .storage .acl import ObjectACL
500- metadata = {'acl' : []}
501- key = self ._makeOne (metadata = metadata )
518+ KEY = 'key'
519+ connection = _Connection ({'items' : []})
520+ bucket = _Bucket (connection )
521+ key = self ._makeOne (bucket , KEY )
502522 acl = key .get_acl ()
503523 self .assertTrue (acl is key .acl )
504524 self .assertTrue (isinstance (acl , ObjectACL ))
505525 self .assertEqual (list (key .acl ), [])
506526
507527 def test_get_acl_eager (self ):
508- from gcloud .storage .acl import ObjectACL
509528 key = self ._makeOne ()
510- preset = key .acl = ObjectACL (key )
529+ preset = key .acl
530+ preset .loaded = True
511531 acl = key .get_acl ()
512532 self .assertTrue (acl is preset )
513533
@@ -524,71 +544,62 @@ def test_save_acl_existing_set_none_passed(self):
524544 KEY = 'key'
525545 connection = _Connection ({'foo' : 'Foo' , 'acl' : []})
526546 bucket = _Bucket (connection )
527- metadata = {'acl' : []}
528- key = self ._makeOne (bucket , KEY , metadata )
529- key .reload_acl ()
547+ key = self ._makeOne (bucket , KEY )
548+ key .acl .loaded = True
530549 self .assertTrue (key .save_acl () is key )
531550 kw = connection ._requested
532551 self .assertEqual (len (kw ), 1 )
533552 self .assertEqual (kw [0 ]['method' ], 'PATCH' )
534553 self .assertEqual (kw [0 ]['path' ], '/b/name/o/%s' % KEY )
535- self .assertEqual (kw [0 ]['data' ], metadata )
536- self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'full' })
554+ self .assertEqual (kw [0 ]['data' ], {'acl' : []})
537555
538556 def test_save_acl_existing_set_new_passed (self ):
539557 KEY = 'key'
540558 ROLE = 'role'
541559 new_acl = [{'entity' : 'allUsers' , 'role' : ROLE }]
542560 connection = _Connection ({'foo' : 'Foo' , 'acl' : new_acl })
543561 bucket = _Bucket (connection )
544- metadata = {'acl' : []}
545- key = self ._makeOne (bucket , KEY , metadata )
546- key .reload_acl ()
562+ key = self ._makeOne (bucket , KEY )
563+ key .acl .entity ('allUsers' , 'other-role' )
547564 self .assertTrue (key .save_acl (new_acl ) is key )
548565 self .assertEqual (list (key .acl ), new_acl )
549566 kw = connection ._requested
550567 self .assertEqual (len (kw ), 1 )
551568 self .assertEqual (kw [0 ]['method' ], 'PATCH' )
552569 self .assertEqual (kw [0 ]['path' ], '/b/name/o/%s' % KEY )
553570 self .assertEqual (kw [0 ]['data' ], {'acl' : new_acl })
554- self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'full' })
555571
556572 def test_clear_acl (self ):
557573 KEY = 'key'
558574 ROLE = 'role'
559- old_acl = [{'entity' : 'allUsers' , 'role' : ROLE }]
560575 connection = _Connection ({'foo' : 'Foo' , 'acl' : []})
561576 bucket = _Bucket (connection )
562- metadata = {'acl' : old_acl }
563- key = self ._makeOne (bucket , KEY , metadata )
564- key .reload_acl ()
577+ key = self ._makeOne (bucket , KEY )
578+ key .acl .entity ('allUsers' , ROLE )
565579 self .assertTrue (key .clear_acl () is key )
566580 self .assertEqual (list (key .acl ), [])
567581 kw = connection ._requested
568582 self .assertEqual (len (kw ), 1 )
569583 self .assertEqual (kw [0 ]['method' ], 'PATCH' )
570584 self .assertEqual (kw [0 ]['path' ], '/b/name/o/%s' % KEY )
571585 self .assertEqual (kw [0 ]['data' ], {'acl' : []})
572- self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'full' })
573586
574587 def test_make_public (self ):
575588 from gcloud .storage .acl import _ACLEntity
576589 KEY = 'key'
577- before = {'acl' : []}
578590 permissive = [{'entity' : 'allUsers' , 'role' : _ACLEntity .READER_ROLE }]
579591 after = {'acl' : permissive }
580592 connection = _Connection (after )
581593 bucket = _Bucket (connection )
582- key = self ._makeOne (bucket , KEY , before )
594+ key = self ._makeOne (bucket , KEY )
595+ key .acl .loaded = True
583596 key .make_public ()
584- self .assertEqual (key .metadata , after )
585- self .assertEqual (list (key .acl ), after ['acl' ])
597+ self .assertEqual (list (key .acl ), permissive )
586598 kw = connection ._requested
587599 self .assertEqual (len (kw ), 1 )
588600 self .assertEqual (kw [0 ]['method' ], 'PATCH' )
589601 self .assertEqual (kw [0 ]['path' ], '/b/name/o/%s' % KEY )
590- self .assertEqual (kw [0 ]['data' ], {'acl' : after ['acl' ]})
591- self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'full' })
602+ self .assertEqual (kw [0 ]['data' ], {'acl' : permissive })
592603
593604
594605class TestKeyIterator (unittest2 .TestCase ):
0 commit comments