def test_get_save_delete_state(self): dapr = DaprGrpcClient(f'localhost:{self.server_port}') key = "key_1" value = "value_1" options = StateOptions( consistency=Consistency.eventual, concurrency=Concurrency.first_write, ) dapr.save_state(store_name="statestore", key=key, value=value, etag='fake_etag', options=options, state_metadata={"capitalize": "1"}) resp = dapr.get_state(store_name="statestore", key=key) self.assertEqual(resp.data, to_bytes(value.capitalize())) self.assertEqual(resp.etag, "fake_etag") resp = dapr.get_state(store_name="statestore", key=key, state_metadata={"upper": "1"}) self.assertEqual(resp.data, to_bytes(value.upper())) self.assertEqual(resp.etag, "fake_etag") resp = dapr.get_state(store_name="statestore", key="NotValidKey") self.assertEqual(resp.data, b'') self.assertEqual(resp.etag, '') dapr.delete_state(store_name="statestore", key=key) resp = dapr.get_state(store_name="statestore", key=key) self.assertEqual(resp.data, b'') self.assertEqual(resp.etag, '') with self.assertRaises(Exception) as context: dapr.delete_state(store_name="statestore", key=key, state_metadata={"must_delete": "1"}) print(context.exception) self.assertTrue('delete failed' in str(context.exception))
def test_get_save_state_etag_none(self): dapr = DaprGrpcClient(f'localhost:{self.server_port}') value = 'test' no_etag_key = 'no_etag' empty_etag_key = 'empty_etag' dapr.save_state( store_name="statestore", key=no_etag_key, value=value, ) dapr.save_state(store_name="statestore", key=empty_etag_key, value=value, etag="") resp = dapr.get_state(store_name="statestore", key=no_etag_key) self.assertEqual(resp.data, to_bytes(value)) self.assertEqual(resp.etag, "ETAG_WAS_NONE") resp = dapr.get_state(store_name="statestore", key=empty_etag_key) self.assertEqual(resp.data, to_bytes(value)) self.assertEqual(resp.etag, "")