88 ObjectStorageACL ,
99 ObjectStorageBucket ,
1010 ObjectStorageCluster ,
11+ ObjectStorageEndpointType ,
1112 ObjectStorageKeyPermission ,
1213 ObjectStorageKeys ,
1314)
@@ -19,7 +20,14 @@ def region(test_linode_client: LinodeClient):
1920
2021
2122@pytest .fixture (scope = "session" )
22- def bucket (test_linode_client : LinodeClient , region : str ):
23+ def endpoints (test_linode_client : LinodeClient ):
24+ return test_linode_client .object_storage .endpoints ()
25+
26+
27+ @pytest .fixture (scope = "session" )
28+ def bucket (
29+ test_linode_client : LinodeClient , region : str
30+ ) -> ObjectStorageBucket :
2331 bucket = test_linode_client .object_storage .bucket_create (
2432 cluster_or_region = region ,
2533 label = "bucket-" + str (time .time_ns ()),
@@ -31,6 +39,31 @@ def bucket(test_linode_client: LinodeClient, region: str):
3139 bucket .delete ()
3240
3341
42+ @pytest .fixture (scope = "session" )
43+ def bucket_with_endpoint (
44+ test_linode_client : LinodeClient , endpoints
45+ ) -> ObjectStorageBucket :
46+ selected_endpoint = next (
47+ (
48+ e
49+ for e in endpoints
50+ if e .endpoint_type == ObjectStorageEndpointType .E1
51+ ),
52+ None ,
53+ )
54+
55+ bucket = test_linode_client .object_storage .bucket_create (
56+ cluster_or_region = selected_endpoint .region ,
57+ label = "bucket-" + str (time .time_ns ()),
58+ acl = ObjectStorageACL .PRIVATE ,
59+ cors_enabled = False ,
60+ endpoint_type = selected_endpoint .endpoint_type ,
61+ )
62+
63+ yield bucket
64+ bucket .delete ()
65+
66+
3467@pytest .fixture (scope = "session" )
3568def obj_key (test_linode_client : LinodeClient ):
3669 key = test_linode_client .object_storage .keys_create (
@@ -71,19 +104,39 @@ def test_keys(
71104
72105 assert loaded_key .label == obj_key .label
73106 assert loaded_limited_key .label == obj_limited_key .label
107+ assert (
108+ loaded_limited_key .regions [0 ].endpoint_type
109+ in ObjectStorageEndpointType .__members__ .values ()
110+ )
74111
75112
76- def test_bucket (
77- test_linode_client : LinodeClient ,
78- bucket : ObjectStorageBucket ,
79- ):
80- loaded_bucket = test_linode_client .load (ObjectStorageBucket , bucket .label )
113+ def test_bucket (test_linode_client : LinodeClient , bucket : ObjectStorageBucket ):
114+ loaded_bucket = test_linode_client .load (
115+ ObjectStorageBucket ,
116+ target_id = bucket .label ,
117+ target_parent_id = bucket .region ,
118+ )
81119
82120 assert loaded_bucket .label == bucket .label
83121 assert loaded_bucket .region == bucket .region
84122
85123
86- def test_bucket (
124+ def test_bucket_with_endpoint (
125+ test_linode_client : LinodeClient , bucket_with_endpoint : ObjectStorageBucket
126+ ):
127+ loaded_bucket = test_linode_client .load (
128+ ObjectStorageBucket ,
129+ target_id = bucket_with_endpoint .label ,
130+ target_parent_id = bucket_with_endpoint .region ,
131+ )
132+
133+ assert loaded_bucket .label == bucket_with_endpoint .label
134+ assert loaded_bucket .region == bucket_with_endpoint .region
135+ assert loaded_bucket .s3_endpoint is not None
136+ assert loaded_bucket .endpoint_type == "E1"
137+
138+
139+ def test_buckets_in_region (
87140 test_linode_client : LinodeClient ,
88141 bucket : ObjectStorageBucket ,
89142 region : str ,
@@ -103,6 +156,14 @@ def test_list_obj_storage_bucket(
103156 assert any (target_bucket_id == b .id for b in buckets )
104157
105158
159+ def test_bucket_access_get (bucket : ObjectStorageBucket ):
160+ access = bucket .access_get ()
161+
162+ assert access .acl is not None
163+ assert access .acl_xml is not None
164+ assert access .cors_enabled is not None
165+
166+
106167def test_bucket_access_modify (bucket : ObjectStorageBucket ):
107168 bucket .access_modify (ObjectStorageACL .PRIVATE , cors_enabled = True )
108169
0 commit comments