def test_set_cors(self, resource_group, location, storage_account, storage_account_key): # Arrange url = self.account_url(storage_account, "table") if 'cosmos' in url: pytest.skip("Cosmos Tables does not yet support service properties") tsc = TableServiceClient(url, storage_account_key) cors_rule1 = CorsRule(['www.xyz.com'], ['GET']) allowed_origins = ['www.xyz.com', "www.ab.com", "www.bc.com"] allowed_methods = ['GET', 'PUT'] max_age_in_seconds = 500 exposed_headers = ["x-ms-meta-data*", "x-ms-meta-source*", "x-ms-meta-abc", "x-ms-meta-bcd"] allowed_headers = ["x-ms-meta-data*", "x-ms-meta-target*", "x-ms-meta-xyz", "x-ms-meta-foo"] cors_rule2 = CorsRule( allowed_origins, allowed_methods, max_age_in_seconds=max_age_in_seconds, exposed_headers=exposed_headers, allowed_headers=allowed_headers) cors = [cors_rule1, cors_rule2] # Act tsc.set_service_properties(cors=cors) # Assert if self.is_live: time.sleep(30) received_props = tsc.get_service_properties() self._assert_cors_equal(received_props['cors'], cors)
async def test_set_cors_async(self, tables_cosmos_account_name, tables_primary_cosmos_account_key): # Arrange url = self.account_url(tables_cosmos_account_name, "cosmos") tsc = TableServiceClient(url, tables_primary_cosmos_account_key) cors_rule1 = CorsRule(['www.xyz.com'], ['GET']) allowed_origins = ['www.xyz.com', "www.ab.com", "www.bc.com"] allowed_methods = ['GET', 'PUT'] max_age_in_seconds = 500 exposed_headers = ["x-ms-meta-data*", "x-ms-meta-source*", "x-ms-meta-abc", "x-ms-meta-bcd"] allowed_headers = ["x-ms-meta-data*", "x-ms-meta-target*", "x-ms-meta-xyz", "x-ms-meta-foo"] cors_rule2 = CorsRule( allowed_origins, allowed_methods, max_age_in_seconds=max_age_in_seconds, exposed_headers=exposed_headers, allowed_headers=allowed_headers) cors = [cors_rule1, cors_rule2] # Act await tsc.set_service_properties(cors=cors) # Assert received_props = await tsc.get_service_properties() self._assert_cors_equal(received_props['cors'], cors) if self.is_live: sleep(SLEEP_DELAY)
def test_too_many_cors_rules(self, resource_group, location, storage_account, storage_account_key): # Arrange tsc = TableServiceClient(self.account_url(storage_account, "table"), storage_account_key) cors = [] for i in range(0, 6): cors.append(CorsRule(['www.xyz.com'], ['GET'])) # Assert self.assertRaises(HttpResponseError, tsc.set_service_properties, None, None, None, cors)
async def test_too_many_cors_rules_async(self, tables_cosmos_account_name, tables_primary_cosmos_account_key): # Arrange tsc = TableServiceClient(self.account_url(tables_cosmos_account_name, "cosmos"), tables_primary_cosmos_account_key) cors = [] for i in range(0, 6): cors.append(CorsRule(['www.xyz.com'], ['GET'])) # Assert with pytest.raises(HttpResponseError): await tsc.set_service_properties(None, None, None, cors) if self.is_live: sleep(SLEEP_DELAY)
async def test_too_many_cors_rules_async(self, resource_group, location, cosmos_account, cosmos_account_key): # Arrange tsc = TableServiceClient(self.account_url(cosmos_account, "cosmos"), cosmos_account_key) cors = [] for i in range(0, 6): cors.append(CorsRule(['www.xyz.com'], ['GET'])) # Assert pytest.raises(HttpResponseError, tsc.set_service_properties, None, None, None, cors) if self.is_live: sleep(SLEEP_DELAY)
def test_too_many_cors_rules(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange tsc = TableServiceClient( self.account_url(tables_storage_account_name, "table"), tables_primary_storage_account_key) cors = [] for i in range(0, 6): cors.append(CorsRule(['www.xyz.com'], ['GET'])) # Assert pytest.raises(HttpResponseError, tsc.set_service_properties, None, None, None, cors)