@@ -510,6 +510,23 @@ def test_get_metadata_lifecycle_w_default(self):
510510 kw = connection ._requested
511511 self .assertEqual (len (kw ), 0 )
512512
513+ def test_get_metadata_cors_no_default (self ):
514+ NAME = 'name'
515+ connection = _Connection ()
516+ bucket = self ._makeOne (connection , NAME )
517+ self .assertRaises (KeyError , bucket .get_metadata , 'cors' )
518+ kw = connection ._requested
519+ self .assertEqual (len (kw ), 0 )
520+
521+ def test_get_metadata_none_set_cors_w_default (self ):
522+ NAME = 'name'
523+ connection = _Connection ()
524+ bucket = self ._makeOne (connection , NAME )
525+ default = object ()
526+ self .assertRaises (KeyError , bucket .get_metadata , 'cors' , default )
527+ kw = connection ._requested
528+ self .assertEqual (len (kw ), 0 )
529+
513530 def test_get_metadata_miss (self ):
514531 NAME = 'name'
515532 before = {'bar' : 'Bar' }
@@ -781,6 +798,77 @@ def test_update_lifecycle(self):
781798 self .assertEqual (entries [0 ]['action' ]['type' ], 'Delete' )
782799 self .assertEqual (entries [0 ]['condition' ]['age' ], 42 )
783800
801+ def test_get_cors_eager (self ):
802+ NAME = 'name'
803+ CORS_ENTRY = {
804+ 'maxAgeSeconds' : 1234 ,
805+ 'method' : ['OPTIONS' , 'GET' ],
806+ 'origin' : ['127.0.0.1' ],
807+ 'responseHeader' : ['Content-Type' ],
808+ }
809+ before = {'cors' : [CORS_ENTRY , {}]}
810+ connection = _Connection ()
811+ bucket = self ._makeOne (connection , NAME , before )
812+ entries = bucket .get_cors ()
813+ self .assertEqual (len (entries ), 2 )
814+ self .assertEqual (entries [0 ]['max_age' ], CORS_ENTRY ['maxAgeSeconds' ])
815+ self .assertEqual (entries [0 ]['methods' ], CORS_ENTRY ['method' ])
816+ self .assertEqual (entries [0 ]['origins' ], CORS_ENTRY ['origin' ])
817+ self .assertEqual (entries [0 ]['headers' ], CORS_ENTRY ['responseHeader' ])
818+ self .assertEqual (entries [1 ], {})
819+ kw = connection ._requested
820+ self .assertEqual (len (kw ), 0 )
821+
822+ def test_get_cors_lazy (self ):
823+ NAME = 'name'
824+ CORS_ENTRY = {
825+ 'maxAgeSeconds' : 1234 ,
826+ 'method' : ['OPTIONS' , 'GET' ],
827+ 'origin' : ['127.0.0.1' ],
828+ 'responseHeader' : ['Content-Type' ],
829+ }
830+ after = {'cors' : [CORS_ENTRY ]}
831+ connection = _Connection (after )
832+ bucket = self ._makeOne (connection , NAME )
833+ entries = bucket .get_cors ()
834+ self .assertEqual (len (entries ), 1 )
835+ self .assertEqual (entries [0 ]['max_age' ], CORS_ENTRY ['maxAgeSeconds' ])
836+ self .assertEqual (entries [0 ]['methods' ], CORS_ENTRY ['method' ])
837+ self .assertEqual (entries [0 ]['origins' ], CORS_ENTRY ['origin' ])
838+ self .assertEqual (entries [0 ]['headers' ], CORS_ENTRY ['responseHeader' ])
839+ kw = connection ._requested
840+ self .assertEqual (len (kw ), 1 )
841+ self .assertEqual (kw [0 ]['method' ], 'GET' )
842+ self .assertEqual (kw [0 ]['path' ], '/b/%s' % NAME )
843+ self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'noAcl' })
844+
845+ def test_update_cors (self ):
846+ NAME = 'name'
847+ CORS_ENTRY = {
848+ 'maxAgeSeconds' : 1234 ,
849+ 'method' : ['OPTIONS' , 'GET' ],
850+ 'origin' : ['127.0.0.1' ],
851+ 'responseHeader' : ['Content-Type' ],
852+ }
853+ MAPPED = {
854+ 'max_age' : 1234 ,
855+ 'methods' : ['OPTIONS' , 'GET' ],
856+ 'origins' : ['127.0.0.1' ],
857+ 'headers' : ['Content-Type' ],
858+ }
859+ after = {'cors' : [CORS_ENTRY , {}]}
860+ connection = _Connection (after )
861+ bucket = self ._makeOne (connection , NAME )
862+ bucket .update_cors ([MAPPED , {}])
863+ kw = connection ._requested
864+ self .assertEqual (len (kw ), 1 )
865+ self .assertEqual (kw [0 ]['method' ], 'PATCH' )
866+ self .assertEqual (kw [0 ]['path' ], '/b/%s' % NAME )
867+ self .assertEqual (kw [0 ]['data' ], after )
868+ self .assertEqual (kw [0 ]['query_params' ], {'projection' : 'full' })
869+ entries = bucket .get_cors ()
870+ self .assertEqual (entries , [MAPPED , {}])
871+
784872
785873class TestBucketIterator (unittest2 .TestCase ):
786874
0 commit comments