Skip to content

Commit 2d48f9a

Browse files
authored
delete_database must DELETE, not GET, the database (#471)
* Use separate databases for separate tests * Sort headers on serialisation in mock transport tests So that future diffs are easier to review * delete_database() must DELETE, not GET, the database
1 parent c6f94bc commit 2d48f9a

25 files changed

+353
-254
lines changed

sdk/core/src/bytes_response.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ mod mock_transport {
2020
use crate::{collect_pinned_stream, BytesStream, Response};
2121
use http::{header, HeaderMap, StatusCode};
2222
use serde::{Deserialize, Serialize};
23-
use std::collections::HashMap;
23+
use std::collections::BTreeMap;
2424

2525
impl BytesResponse {
2626
pub(crate) fn new(status: StatusCode, headers: HeaderMap, body: Bytes) -> Self {
@@ -74,7 +74,7 @@ mod mock_transport {
7474
where
7575
S: serde::ser::Serializer,
7676
{
77-
let mut headers = HashMap::new();
77+
let mut headers = BTreeMap::new();
7878
for (h, v) in self.headers.iter() {
7979
headers.insert(h.as_str().into(), v.to_str().unwrap().into());
8080
}
@@ -92,7 +92,7 @@ mod mock_transport {
9292
#[derive(Serialize, Deserialize)]
9393
pub(crate) struct SerializedBytesResponse {
9494
status: u16,
95-
headers: HashMap<String, String>,
95+
headers: BTreeMap<String, String>,
9696
body: String,
9797
}
9898
}

sdk/core/src/request.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl Serialize for Request {
5151
where
5252
S: Serializer,
5353
{
54-
let mut hm = std::collections::HashMap::new();
54+
let mut hm = std::collections::BTreeMap::new();
5555
for (h, v) in self.headers().iter() {
5656
if h.as_str().to_lowercase() == "authorization" {
5757
hm.insert(h.to_string(), "<<STRIPPED>>");

sdk/cosmos/src/clients/database_client.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,10 @@ impl DatabaseClient {
8383
ctx: Context,
8484
options: DeleteDatabaseOptions,
8585
) -> crate::Result<DeleteDatabaseResponse> {
86-
let mut request = self
87-
.cosmos_client()
88-
.prepare_request_pipeline(&format!("dbs/{}", self.database_name()), http::Method::GET);
86+
let mut request = self.cosmos_client().prepare_request_pipeline(
87+
&format!("dbs/{}", self.database_name()),
88+
http::Method::DELETE,
89+
);
8990
let mut pipeline_context = PipelineContext::new(ctx, ResourceType::Databases.into());
9091

9192
options.decorate_request(&mut request)?;

sdk/cosmos/tests/collection_operations.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@ async fn collection_operations() -> Result<(), BoxedError> {
1414
env_logger::init();
1515

1616
let client = setup::initialize("collection_operations")?;
17-
let database_name = "sample";
17+
let database_name = "test-collection-operations";
1818
let context = Context::new();
1919

20+
client
21+
.create_database(context.clone(), database_name, CreateDatabaseOptions::new())
22+
.await?;
23+
2024
// create collection!
2125
let db_client = client.clone().into_database_client(database_name.clone());
2226

@@ -120,5 +124,10 @@ async fn collection_operations() -> Result<(), BoxedError> {
120124
delete_collection_response
121125
);
122126

127+
db_client
128+
.delete_database(Context::new(), DeleteDatabaseOptions::new())
129+
.await
130+
.unwrap();
131+
123132
Ok(())
124133
}

sdk/cosmos/tests/create_database_and_collection.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ async fn create_database_and_collection() -> Result<(), BoxedError> {
1414
env_logger::init();
1515

1616
let client = setup::initialize("create_database_and_collection")?;
17-
let database_name = "sample";
17+
let database_name = "test-create-database-and-collection";
1818
let context = Context::new();
1919

2020
// create database!
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2-
"uri": "/dbs/sample/colls",
2+
"uri": "/dbs",
33
"method": "POST",
44
"headers": {
5-
"x-ms-date": "Tue, 12 Oct 2021 18:09:07 GMT",
6-
"x-ms-version": "2018-12-31",
75
"authorization": "<<STRIPPED>>",
8-
"user-agent": "azsdk-rust-cosmos/0.1.0 (1.55.0; windows; x86_64)"
6+
"user-agent": "azsdk-rust-cosmos/0.1.0 (1.56.0; linux; x86_64)",
7+
"x-ms-date": "Sun, 31 Oct 2021 13:13:41 GMT",
8+
"x-ms-version": "2018-12-31"
99
},
10-
"body": "eyJpZCI6InNhbXBsZV9jb2xsZWN0aW9uIiwicGFydGl0aW9uS2V5Ijp7InBhdGhzIjpbIi9pZCJdLCJraW5kIjoiSGFzaCJ9fQ=="
10+
"body": "eyJpZCI6InRlc3QtY29sbGVjdGlvbi1vcGVyYXRpb25zIn0="
1111
}
Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,34 @@
11
{
22
"status": 201,
33
"headers": {
4-
"x-ms-serviceversion": "version=2.14.0.0",
5-
"date": "Tue, 12 Oct 2021 18:09:10 GMT",
6-
"x-ms-current-replica-set-size": "4",
7-
"x-ms-last-state-change-utc": "Tue, 12 Oct 2021 15:25:07.722 GMT",
8-
"x-ms-current-write-quorum": "3",
9-
"x-ms-documentdb-partitionkeyrangeid": "0",
10-
"x-ms-transport-request-id": "9",
114
"cache-control": "no-store, no-cache",
12-
"x-ms-cosmos-quorum-acked-llsn": "6",
135
"content-type": "application/json",
14-
"x-ms-schemaversion": "1.12",
15-
"x-ms-item-lsn": "6",
6+
"date": "Sun, 31 Oct 2021 13:13:43 GMT",
7+
"etag": "\"00003801-0000-1100-0000-617e96880000\"",
8+
"lsn": "734",
9+
"pragma": "no-cache",
1610
"server": "Microsoft-HTTPAPI/2.0",
17-
"x-ms-session-token": "0:-1#6",
18-
"x-ms-request-duration-ms": "0.638",
19-
"x-ms-global-committed-lsn": "6",
20-
"lsn": "6",
21-
"collection-partition-index": "0",
22-
"etag": "\"00009d0b-0000-0800-0000-6165cf450000\"",
23-
"x-ms-alt-content-path": "dbs/sample",
24-
"x-ms-cosmos-item-llsn": "6",
25-
"x-ms-cosmos-llsn": "6",
26-
"x-ms-activity-id": "6e032fad-6539-43a0-a848-119188833e7c",
11+
"strict-transport-security": "max-age=31536000",
2712
"transfer-encoding": "chunked",
13+
"x-ms-activity-id": "69e9ce96-a6ef-472e-a608-9f5c366abec8",
14+
"x-ms-cosmos-llsn": "734",
15+
"x-ms-cosmos-quorum-acked-llsn": "733",
16+
"x-ms-current-replica-set-size": "4",
17+
"x-ms-current-write-quorum": "3",
2818
"x-ms-gatewayversion": "version=2.14.0",
29-
"pragma": "no-cache",
19+
"x-ms-global-committed-lsn": "733",
20+
"x-ms-last-state-change-utc": "Thu, 28 Oct 2021 11:52:54.494 GMT",
3021
"x-ms-number-of-read-regions": "0",
31-
"x-ms-share-throughput": "true",
32-
"x-ms-quorum-acked-lsn": "6",
33-
"x-ms-xp-role": "1",
34-
"collection-service-index": "0",
35-
"x-ms-request-charge": "1",
36-
"strict-transport-security": "max-age=31536000"
22+
"x-ms-quorum-acked-lsn": "733",
23+
"x-ms-request-charge": "4.95",
24+
"x-ms-request-duration-ms": "26.6",
25+
"x-ms-resource-quota": "databases=1000;",
26+
"x-ms-resource-usage": "databases=1;",
27+
"x-ms-schemaversion": "1.12",
28+
"x-ms-serviceversion": "version=2.14.0.0",
29+
"x-ms-session-token": "0:-1#734",
30+
"x-ms-transport-request-id": "736068",
31+
"x-ms-xp-role": "1"
3732
},
38-
"body": "eyJpZCI6InNhbXBsZV9jb2xsZWN0aW9uIiwiaW5kZXhpbmdQb2xpY3kiOnsiaW5kZXhpbmdNb2RlIjoiY29uc2lzdGVudCIsImF1dG9tYXRpYyI6dHJ1ZSwiaW5jbHVkZWRQYXRocyI6W3sicGF0aCI6IlwvKiJ9XSwiZXhjbHVkZWRQYXRocyI6W3sicGF0aCI6IlwvXCJfZXRhZ1wiXC8/In1dfSwicGFydGl0aW9uS2V5Ijp7InBhdGhzIjpbIlwvaWQiXSwia2luZCI6Ikhhc2gifSwiY29uZmxpY3RSZXNvbHV0aW9uUG9saWN5Ijp7Im1vZGUiOiJMYXN0V3JpdGVyV2lucyIsImNvbmZsaWN0UmVzb2x1dGlvblBhdGgiOiJcL190cyIsImNvbmZsaWN0UmVzb2x1dGlvblByb2NlZHVyZSI6IiJ9LCJnZW9zcGF0aWFsQ29uZmlnIjp7InR5cGUiOiJHZW9ncmFwaHkifSwiX3JpZCI6InRib0FBTzNWTjhnPSIsIl90cyI6MTYzNDA2MjE0OSwiX3NlbGYiOiJkYnNcL3Rib0FBQT09XC9jb2xsc1wvdGJvQUFPM1ZOOGc9XC8iLCJfZXRhZyI6IlwiMDAwMDlkMGItMDAwMC0wODAwLTAwMDAtNjE2NWNmNDUwMDAwXCIiLCJfZG9jcyI6ImRvY3NcLyIsIl9zcHJvY3MiOiJzcHJvY3NcLyIsIl90cmlnZ2VycyI6InRyaWdnZXJzXC8iLCJfdWRmcyI6InVkZnNcLyIsIl9jb25mbGljdHMiOiJjb25mbGljdHNcLyJ9"
33+
"body": "eyJpZCI6InRlc3QtY29sbGVjdGlvbi1vcGVyYXRpb25zIiwiX3JpZCI6IitMeDNBQT09IiwiX3NlbGYiOiJkYnNcLytMeDNBQT09XC8iLCJfZXRhZyI6IlwiMDAwMDM4MDEtMDAwMC0xMTAwLTAwMDAtNjE3ZTk2ODgwMDAwXCIiLCJfY29sbHMiOiJjb2xsc1wvIiwiX3VzZXJzIjoidXNlcnNcLyIsIl90cyI6MTYzNTY4NjAyNH0="
3934
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2-
"uri": "/dbs/sample/colls/sample_collection",
3-
"method": "GET",
2+
"uri": "/dbs/test-collection-operations/colls",
3+
"method": "POST",
44
"headers": {
55
"authorization": "<<STRIPPED>>",
6-
"user-agent": "azsdk-rust-cosmos/0.1.0 (1.55.0; windows; x86_64)",
7-
"x-ms-date": "Tue, 12 Oct 2021 18:09:10 GMT",
6+
"user-agent": "azsdk-rust-cosmos/0.1.0 (1.56.0; linux; x86_64)",
7+
"x-ms-date": "Sun, 31 Oct 2021 13:13:42 GMT",
88
"x-ms-version": "2018-12-31"
99
},
10-
"body": ""
10+
"body": "eyJpZCI6InNhbXBsZV9jb2xsZWN0aW9uIiwicGFydGl0aW9uS2V5Ijp7InBhdGhzIjpbIi9pZCJdLCJraW5kIjoiSGFzaCJ9fQ=="
1111
}
Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,38 @@
11
{
2-
"status": 200,
2+
"status": 201,
33
"headers": {
4-
"x-ms-share-throughput": "true",
5-
"x-ms-xp-role": "1",
6-
"x-ms-alt-content-path": "dbs/sample",
7-
"x-ms-gatewayversion": "version=2.14.0",
8-
"transfer-encoding": "chunked",
9-
"x-ms-content-path": "tboAAA==",
10-
"x-ms-item-lsn": "6",
11-
"lsn": "6",
124
"cache-control": "no-store, no-cache",
135
"collection-partition-index": "0",
14-
"x-ms-number-of-read-regions": "0",
15-
"x-ms-transport-request-id": "1",
16-
"x-ms-documentdb-partitionkeyrangeid": "0",
17-
"x-ms-request-duration-ms": "0.573",
18-
"content-location": "https://cosmos-azure-sdk-test.documents.azure.com/dbs/sample/colls/sample_collection",
19-
"x-ms-activity-id": "a0d68769-f517-4dd0-8bd1-00c075ef4069",
20-
"x-ms-global-committed-lsn": "5",
21-
"x-ms-serviceversion": "version=2.14.0.0",
22-
"date": "Tue, 12 Oct 2021 18:09:10 GMT",
23-
"server": "Microsoft-HTTPAPI/2.0",
24-
"x-ms-schemaversion": "1.12",
25-
"x-ms-last-state-change-utc": "Tue, 12 Oct 2021 15:25:21.039 GMT",
26-
"x-ms-request-charge": "1",
27-
"x-ms-cosmos-item-llsn": "6",
28-
"x-ms-session-token": "0:-1#6",
6+
"collection-service-index": "0",
297
"content-type": "application/json",
30-
"strict-transport-security": "max-age=31536000",
8+
"date": "Sun, 31 Oct 2021 13:13:44 GMT",
9+
"etag": "\"00003a01-0000-1100-0000-617e96880000\"",
10+
"lsn": "1",
3111
"pragma": "no-cache",
32-
"collection-service-index": "0",
33-
"etag": "\"00009d0b-0000-0800-0000-6165cf450000\"",
34-
"x-ms-cosmos-llsn": "6"
12+
"server": "Microsoft-HTTPAPI/2.0",
13+
"strict-transport-security": "max-age=31536000",
14+
"transfer-encoding": "chunked",
15+
"x-ms-activity-id": "553499be-55b7-4165-a7ae-e6b1c57e8637",
16+
"x-ms-alt-content-path": "dbs/test-collection-operations",
17+
"x-ms-cosmos-item-llsn": "1",
18+
"x-ms-cosmos-llsn": "1",
19+
"x-ms-cosmos-quorum-acked-llsn": "1",
20+
"x-ms-current-replica-set-size": "4",
21+
"x-ms-current-write-quorum": "3",
22+
"x-ms-documentdb-partitionkeyrangeid": "0",
23+
"x-ms-gatewayversion": "version=2.14.0",
24+
"x-ms-global-committed-lsn": "1",
25+
"x-ms-item-lsn": "1",
26+
"x-ms-last-state-change-utc": "Sun, 31 Oct 2021 11:10:04.588 GMT",
27+
"x-ms-number-of-read-regions": "0",
28+
"x-ms-quorum-acked-lsn": "1",
29+
"x-ms-request-charge": "1",
30+
"x-ms-request-duration-ms": "0.497",
31+
"x-ms-schemaversion": "1.12",
32+
"x-ms-serviceversion": "version=2.14.0.0",
33+
"x-ms-session-token": "0:-1#1",
34+
"x-ms-transport-request-id": "12",
35+
"x-ms-xp-role": "1"
3536
},
36-
"body": "eyJpZCI6InNhbXBsZV9jb2xsZWN0aW9uIiwiaW5kZXhpbmdQb2xpY3kiOnsiaW5kZXhpbmdNb2RlIjoiY29uc2lzdGVudCIsImF1dG9tYXRpYyI6dHJ1ZSwiaW5jbHVkZWRQYXRocyI6W3sicGF0aCI6IlwvKiJ9XSwiZXhjbHVkZWRQYXRocyI6W3sicGF0aCI6IlwvXCJfZXRhZ1wiXC8/In1dfSwicGFydGl0aW9uS2V5Ijp7InBhdGhzIjpbIlwvaWQiXSwia2luZCI6Ikhhc2gifSwiY29uZmxpY3RSZXNvbHV0aW9uUG9saWN5Ijp7Im1vZGUiOiJMYXN0V3JpdGVyV2lucyIsImNvbmZsaWN0UmVzb2x1dGlvblBhdGgiOiJcL190cyIsImNvbmZsaWN0UmVzb2x1dGlvblByb2NlZHVyZSI6IiJ9LCJnZW9zcGF0aWFsQ29uZmlnIjp7InR5cGUiOiJHZW9ncmFwaHkifSwiX3JpZCI6InRib0FBTzNWTjhnPSIsIl90cyI6MTYzNDA2MjE0OSwiX3NlbGYiOiJkYnNcL3Rib0FBQT09XC9jb2xsc1wvdGJvQUFPM1ZOOGc9XC8iLCJfZXRhZyI6IlwiMDAwMDlkMGItMDAwMC0wODAwLTAwMDAtNjE2NWNmNDUwMDAwXCIiLCJfZG9jcyI6ImRvY3NcLyIsIl9zcHJvY3MiOiJzcHJvY3NcLyIsIl90cmlnZ2VycyI6InRyaWdnZXJzXC8iLCJfdWRmcyI6InVkZnNcLyIsIl9jb25mbGljdHMiOiJjb25mbGljdHNcLyJ9"
37+
"body": "eyJpZCI6InNhbXBsZV9jb2xsZWN0aW9uIiwiaW5kZXhpbmdQb2xpY3kiOnsiaW5kZXhpbmdNb2RlIjoiY29uc2lzdGVudCIsImF1dG9tYXRpYyI6dHJ1ZSwiaW5jbHVkZWRQYXRocyI6W3sicGF0aCI6IlwvKiJ9XSwiZXhjbHVkZWRQYXRocyI6W3sicGF0aCI6IlwvXCJfZXRhZ1wiXC8/In1dfSwicGFydGl0aW9uS2V5Ijp7InBhdGhzIjpbIlwvaWQiXSwia2luZCI6Ikhhc2gifSwiY29uZmxpY3RSZXNvbHV0aW9uUG9saWN5Ijp7Im1vZGUiOiJMYXN0V3JpdGVyV2lucyIsImNvbmZsaWN0UmVzb2x1dGlvblBhdGgiOiJcL190cyIsImNvbmZsaWN0UmVzb2x1dGlvblByb2NlZHVyZSI6IiJ9LCJnZW9zcGF0aWFsQ29uZmlnIjp7InR5cGUiOiJHZW9ncmFwaHkifSwiX3JpZCI6IitMeDNBSU5VZkgwPSIsIl90cyI6MTYzNTY4NjAyNCwiX3NlbGYiOiJkYnNcLytMeDNBQT09XC9jb2xsc1wvK0x4M0FJTlVmSDA9XC8iLCJfZXRhZyI6IlwiMDAwMDNhMDEtMDAwMC0xMTAwLTAwMDAtNjE3ZTk2ODgwMDAwXCIiLCJfZG9jcyI6ImRvY3NcLyIsIl9zcHJvY3MiOiJzcHJvY3NcLyIsIl90cmlnZ2VycyI6InRyaWdnZXJzXC8iLCJfdWRmcyI6InVkZnNcLyIsIl9jb25mbGljdHMiOiJjb25mbGljdHNcLyJ9"
3738
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2-
"uri": "/dbs/sample/colls/sample_collection",
3-
"method": "PUT",
2+
"uri": "/dbs/test-collection-operations/colls/sample_collection",
3+
"method": "GET",
44
"headers": {
55
"authorization": "<<STRIPPED>>",
6-
"user-agent": "azsdk-rust-cosmos/0.1.0 (1.55.0; windows; x86_64)",
7-
"x-ms-date": "Tue, 12 Oct 2021 18:09:10 GMT",
6+
"user-agent": "azsdk-rust-cosmos/0.1.0 (1.56.0; linux; x86_64)",
7+
"x-ms-date": "Sun, 31 Oct 2021 13:13:43 GMT",
88
"x-ms-version": "2018-12-31"
99
},
10-
"body": "eyJpZCI6InNhbXBsZV9jb2xsZWN0aW9uIiwiaW5kZXhpbmdQb2xpY3kiOnsiYXV0b21hdGljIjp0cnVlLCJpbmRleGluZ01vZGUiOiJjb25zaXN0ZW50IiwiaW5jbHVkZWRQYXRocyI6W3sicGF0aCI6Ii8qIiwiaW5kZXhlcyI6W3siZGF0YVR5cGUiOiJTdHJpbmciLCJwcmVjaXNpb24iOjMsImtpbmQiOiJIYXNoIn1dfV0sImV4Y2x1ZGVkUGF0aHMiOlt7InBhdGgiOiIvXCJleGNsdWRlbWVcIi8/In1dfSwicGFydGl0aW9uS2V5Ijp7InBhdGhzIjpbIi9pZCJdLCJraW5kIjoiSGFzaCJ9fQ=="
10+
"body": ""
1111
}

0 commit comments

Comments
 (0)