def test_create_properties(self, resource_group, location, storage_account, storage_account_key): # # Arrange ts = TableServiceClient(self.account_url(storage_account, "table"), storage_account_key) table_name = self._get_table_reference() # Act created = ts.create_table(table_name) # Assert assert created.table_name == table_name properties = ts.get_service_properties() print(properties) ts.set_service_properties(analytics_logging=TableAnalyticsLogging( write=True)) # have to wait for return to service p = ts.get_service_properties() # have to wait for return to service ts.set_service_properties(minute_metrics=Metrics( enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5))) ps = ts.get_service_properties() print(ps) print(p) ts.delete_table(table_name)
def test_create_properties(self, tables_storage_account_name, tables_primary_storage_account_key): # # Arrange account_url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(credential=tables_primary_storage_account_key, endpoint=account_url) table_name = self._get_table_reference() # Act created = ts.create_table(table_name) # Assert assert created.table_name == table_name properties = ts.get_service_properties() ts.set_service_properties(analytics_logging=TableAnalyticsLogging(write=True)) # have to wait for return to service p = ts.get_service_properties() # have to wait for return to service ts.set_service_properties( minute_metrics=TableMetrics( enabled=True, include_apis=True, retention_policy=TableRetentionPolicy(enabled=True, days=5) ) ) ps = ts.get_service_properties() ts.delete_table(table_name)
def test_create_properties(self, tables_cosmos_account_name, tables_primary_cosmos_account_key): # # Arrange ts = TableServiceClient( self.account_url(tables_cosmos_account_name, "cosmos"), tables_primary_cosmos_account_key) table_name = self._get_table_reference() # Act created = ts.create_table(table_name) # Assert assert created.table_name == table_name # properties = ts.get_service_properties() ts.set_service_properties(analytics_logging=TableAnalyticsLogging( write=True)) p = ts.get_service_properties() ts.set_service_properties(minute_metrics=Metrics( enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5))) ps = ts.get_service_properties() ts.delete_table(table_name) if self.is_live: sleep(SLEEP_DELAY)
def test_retention_too_long(self, tables_cosmos_account_name, tables_primary_cosmos_account_key): tsc = TableServiceClient(self.account_url(tables_cosmos_account_name, "cosmos"), tables_primary_cosmos_account_key) minute_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=366)) with pytest.raises(HttpResponseError): tsc.set_service_properties(None, None, minute_metrics) self.sleep(SLEEP_DELAY)
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)
def test_set_cors(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange url = self.account_url(tables_storage_account_name, "table") tsc = TableServiceClient(url, credential=tables_primary_storage_account_key) cors_rule1 = TableCorsRule(['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 = TableCorsRule(allowed_origins, allowed_methods) cors_rule2.max_age_in_seconds = max_age_in_seconds cors_rule2.exposed_headers = exposed_headers cors_rule2.allowed_headers = allowed_headers cors = [cors_rule1, cors_rule2] # Act tsc.set_service_properties(cors=cors) # Assert if self.is_live: time.sleep(45) received_props = tsc.get_service_properties() self._assert_cors_equal(received_props['cors'], cors)
def test_too_many_cors_rules(self, tables_cosmos_account_name, tables_primary_cosmos_account_key): tsc = TableServiceClient(self.account_url(tables_cosmos_account_name, "cosmos"), credential=tables_primary_cosmos_account_key) cors = [] for i in range(0, 6): cors.append(TableCorsRule(['www.xyz.com'], ['GET'])) with pytest.raises(HttpResponseError): tsc.set_service_properties(cors=cors)
def test_set_logging(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) logging = TableAnalyticsLogging(read=True, write=True, delete=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act tsc.set_service_properties(analytics_logging=logging) # Assert received_props = tsc.get_service_properties() self._assert_logging_equal(received_props['analytics_logging'], logging) if self.is_live: time.sleep(30)
def test_set_hour_metrics(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) hour_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act tsc.set_service_properties(hour_metrics=hour_metrics) # Assert received_props = tsc.get_service_properties() self._assert_metrics_equal(received_props['hour_metrics'], hour_metrics) if self.is_live: sleep(SLEEP_DELAY)
def test_set_minute_metrics(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange url = self.account_url(tables_storage_account_name, "table") tsc = TableServiceClient(url, tables_primary_storage_account_key) minute_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act tsc.set_service_properties(minute_metrics=minute_metrics) # Assert if self.is_live: time.sleep(30) received_props = tsc.get_service_properties() self._assert_metrics_equal(received_props['minute_metrics'], minute_metrics)
def test_set_hour_metrics(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) hour_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act tsc.set_service_properties(hour_metrics=hour_metrics) # Assert if self.is_live: time.sleep(30) received_props = tsc.get_service_properties() self._assert_metrics_equal(received_props['hour_metrics'], hour_metrics)
def test_set_logging(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) logging = TableAnalyticsLogging(read=True, write=True, delete=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act tsc.set_service_properties(analytics_logging=logging) # Assert if self.is_live: time.sleep(30) received_props = tsc.get_service_properties() self._assert_logging_equal(received_props['analytics_logging'], logging)
def test_set_minute_metrics(self, resource_group, location, storage_account, storage_account_key): # Arrange url = self.account_url(storage_account, "cosmos") tsc = TableServiceClient(url, storage_account_key) minute_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5)) # Act tsc.set_service_properties(minute_metrics=minute_metrics) # Assert received_props = tsc.get_service_properties() self._assert_metrics_equal(received_props['minute_metrics'], minute_metrics) if self.is_live: sleep(SLEEP_DELAY)
def test_table_service_properties(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange url = self.account_url(tables_storage_account_name, "table") tsc = TableServiceClient(url, tables_primary_storage_account_key) # Act resp = tsc.set_service_properties( analytics_logging=TableAnalyticsLogging(), hour_metrics=Metrics(), minute_metrics=Metrics(), cors=list()) # Assert assert resp is None if self.is_live: time.sleep(30) self._assert_properties_default(tsc.get_service_properties())
def test_table_service_properties(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) # Act resp = tsc.set_service_properties( analytics_logging=TableAnalyticsLogging(), hour_metrics=Metrics(), minute_metrics=Metrics(), cors=list()) # Assert assert resp is None self._assert_properties_default(tsc.get_service_properties()) if self.is_live: sleep(SLEEP_DELAY)
def test_table_service_properties(self, resource_group, location, storage_account, storage_account_key): # Arrange url = self.account_url(storage_account, "cosmos") tsc = TableServiceClient(url, storage_account_key) # Act resp = tsc.set_service_properties( analytics_logging=TableAnalyticsLogging(), hour_metrics=Metrics(), minute_metrics=Metrics(), cors=list()) # Assert assert resp is None self._assert_properties_default(tsc.get_service_properties()) if self.is_live: sleep(SLEEP_DELAY)
def test_table_service_properties(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) # Act resp = tsc.set_service_properties( analytics_logging=TableAnalyticsLogging(), hour_metrics=Metrics(), minute_metrics=Metrics(), cors=list()) # Assert self.assertIsNone(resp) if self.is_live: time.sleep(30) self._assert_properties_default(tsc.get_service_properties())