Skip to content

Commit 29f3688

Browse files
committed
Record README tests
1 parent ec9da22 commit 29f3688

File tree

3 files changed

+44
-10
lines changed

3 files changed

+44
-10
lines changed

sdk/keyvault/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "rust",
44
"TagPrefix": "rust/keyvault",
5-
"Tag": "rust/keyvault_7e75eabce0"
5+
"Tag": "rust/keyvault_68d9c85985"
66
}

sdk/keyvault/azure_security_keyvault_secrets/tests/readme.rs

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,72 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
use azure_identity::DeveloperToolsCredential;
4+
use azure_core::{
5+
error::{ErrorKind, Result},
6+
http::StatusCode,
7+
time::Duration,
8+
};
9+
use azure_core_test::{recorded, TestContext};
510
use azure_security_keyvault_secrets::SecretClient;
611
use include_file::include_markdown;
712

8-
#[ignore = "only ensures README code snippets compile"]
9-
#[tokio::test]
10-
async fn readme() -> Result<(), Box<dyn std::error::Error>> {
11-
let credential = DeveloperToolsCredential::new(None)?;
12-
let client = SecretClient::new("https://my-vault.vault.azure.net", credential.clone(), None)?;
13+
#[recorded::test]
14+
async fn readme(ctx: TestContext) -> Result<()> {
15+
use azure_security_keyvault_secrets::SecretClientOptions;
16+
17+
let recording = ctx.recording();
18+
19+
let mut options = SecretClientOptions::default();
20+
recording.instrument(&mut options.client_options);
21+
22+
let client = SecretClient::new(
23+
recording.var("AZURE_KEYVAULT_URL", None).as_str(),
24+
recording.credential(),
25+
Some(options),
26+
)?;
1327

1428
// Each macro invocation is in its own block to prevent errors with duplicate imports.
1529
{
30+
println!("Create a secret");
1631
include_markdown!("README.md", "create_secret");
1732
}
1833

1934
{
35+
println!("Get a secret");
2036
include_markdown!("README.md", "get_secret");
2137
}
2238

2339
{
40+
println!("Update a secret");
2441
include_markdown!("README.md", "update_secret");
2542
}
2643

2744
{
28-
include_markdown!("README.md", "delete_secret");
45+
println!("List secrets");
46+
include_markdown!("README.md", "list_secrets");
2947
}
3048

3149
{
32-
include_markdown!("README.md", "list_secrets");
50+
println!("Handle errors");
51+
include_markdown!("README.md", "errors");
3352
}
3453

3554
{
36-
include_markdown!("README.md", "errors");
55+
println!("Delete a secret");
56+
include_markdown!("README.md", "delete_secret");
57+
58+
// Make sure the secret gets purged (may not take immediate effect).
59+
println!("Purge a secret");
60+
for _ in 0..5 {
61+
match client.purge_deleted_secret("secret-name", None).await {
62+
Ok(_) => break,
63+
Err(err) if matches!(err.kind(), ErrorKind::HttpResponse { status, .. } if *status == StatusCode::Conflict) =>
64+
{
65+
azure_core::sleep(Duration::seconds(1)).await;
66+
}
67+
Err(err) => return Err(err),
68+
}
69+
}
3770
}
3871

3972
Ok(())

sdk/keyvault/azure_security_keyvault_secrets/tests/secret_client.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ async fn round_trip_secret_verify_telemetry(ctx: TestContext) -> Result<()> {
292292
}
293293

294294
#[recorded::test]
295+
#[ignore = "The number of pages is not stable enough to assert an expected number of child spans"]
295296
async fn list_secrets_verify_telemetry(ctx: TestContext) -> Result<()> {
296297
use azure_core_test::tracing::ExpectedRestApiSpan;
297298

0 commit comments

Comments
 (0)