@@ -489,6 +489,23 @@ def test_get_metadata_none_set_defaultObjectAcl_miss_clear_default(self):
489489 kw = connection ._requested
490490 self .assertEqual (len (kw ), 0 )
491491
492+ def test_get_metadata_lifecycle_no_default (self ):
493+ NAME = 'name'
494+ connection = _Connection ()
495+ bucket = self ._makeOne (connection , NAME )
496+ self .assertRaises (KeyError , bucket .get_metadata , 'lifecycle' )
497+ kw = connection ._requested
498+ self .assertEqual (len (kw ), 0 )
499+
500+ def test_get_metadata_lifecycle_w_default (self ):
501+ NAME = 'name'
502+ connection = _Connection ()
503+ bucket = self ._makeOne (connection , NAME )
504+ default = object ()
505+ self .assertRaises (KeyError , bucket .get_metadata , 'lifecycle' , default )
506+ kw = connection ._requested
507+ self .assertEqual (len (kw ), 0 )
508+
492509 def test_get_metadata_miss (self ):
493510 NAME = 'name'
494511 before = {'bar' : 'Bar' }
@@ -713,6 +730,53 @@ def get_items_from_response(self, response):
713730 self .assertEqual (kw [1 ]['path' ], '/b/%s/o' % NAME )
714731 self .assertEqual (kw [1 ]['query_params' ], None )
715732
733+ def test_get_lifecycle_eager (self ):
734+ NAME = 'name'
735+ LC_RULE = {'action' : {'type' : 'Delete' }, 'condition' : {'age' : 42 }}
736+ before = {'lifecycle' : {'rule' : [LC_RULE ]}}
737+ connection = _Connection ()
738+ bucket = self ._makeOne (connection , NAME , before )
739+ entries = bucket .get_lifecycle ()
740+ self .assertEqual (len (entries ), 1 )
741+ self .assertEqual (entries [0 ]['action' ]['type' ], 'Delete' )
742+ self .assertEqual (entries [0 ]['condition' ]['age' ], 42 )
743+ kw = connection ._requested
744+ self .assertEqual (len (kw ), 0 )
745+
746+ def test_get_lifecycle_lazy (self ):
747+ NAME = 'name'
748+ LC_RULE = {'action' : {'type' : 'Delete' }, 'condition' : {'age' : 42 }}
749+ after = {'lifecycle' : {'rule' : [LC_RULE ]}}
750+ connection = _Connection (after )
751+ bucket = self ._makeOne (connection , NAME )
752+ entries = bucket .get_lifecycle ()
753+ self .assertEqual (len (entries ), 1 )
754+ self .assertEqual (entries [0 ]['action' ]['type' ], 'Delete' )
755+ self .assertEqual (entries [0 ]['condition' ]['age' ], 42 )
756+ kw = connection ._requested
757+ self .assertEqual (len (kw ), 1 )
758+ self .assertEqual (kw [0 ]['method' ], 'GET' )
759+ self .assertEqual (kw [0 ]['path' ], '/b/%s' % NAME )
760+ self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'noAcl' })
761+
762+ def test_update_lifecycle (self ):
763+ NAME = 'name'
764+ LC_RULE = {'action' : {'type' : 'Delete' }, 'condition' : {'age' : 42 }}
765+ after = {'lifecycle' : {'rule' : [LC_RULE ]}}
766+ connection = _Connection (after )
767+ bucket = self ._makeOne (connection , NAME )
768+ bucket .update_lifecycle ([LC_RULE ])
769+ kw = connection ._requested
770+ self .assertEqual (len (kw ), 1 )
771+ self .assertEqual (kw [0 ]['method' ], 'PATCH' )
772+ self .assertEqual (kw [0 ]['path' ], '/b/%s' % NAME )
773+ self .assertEqual (kw [0 ]['data' ], after )
774+ self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'full' })
775+ entries = bucket .get_lifecycle ()
776+ self .assertEqual (len (entries ), 1 )
777+ self .assertEqual (entries [0 ]['action' ]['type' ], 'Delete' )
778+ self .assertEqual (entries [0 ]['condition' ]['age' ], 42 )
779+
716780
717781class TestBucketIterator (unittest2 .TestCase ):
718782
0 commit comments