Skip to content

Commit e7b229a

Browse files
committed
Test individual features
- Convert package to 2021 edition. - Format imports. Signed-off-by: David Calavera <[email protected]>
1 parent e55d79f commit e7b229a

File tree

28 files changed

+462
-401
lines changed

28 files changed

+462
-401
lines changed

.github/workflows/build-events.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,12 @@ jobs:
2626
with:
2727
package: aws_lambda_events
2828
toolchain: ${{ matrix.toolchain}}
29+
check-event-features:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@v3
33+
- uses: dtolnay/rust-toolchain@stable
34+
- uses: Swatinem/rust-cache@v2
35+
36+
- name: Test individual event features
37+
run: make check-event-features

Makefile

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,44 @@ invoke-integration-api-%:
6060
curl -X POST -d '{"command": "hello"}' $(API_URL)/trait/post
6161
curl -X POST -d '{"command": "hello"}' $(API_URL)/al2/post
6262
curl -X POST -d '{"command": "hello"}' $(API_URL)/al2-trait/post
63+
64+
# Test individual event features to ensure optional dependencies
65+
# are correctly loaded when all default features are disabled.
66+
check-event-features:
67+
cargo test --package aws_lambda_events --no-default-features --features activemq
68+
cargo test --package aws_lambda_events --no-default-features --features alb
69+
cargo test --package aws_lambda_events --no-default-features --features apigw
70+
cargo test --package aws_lambda_events --no-default-features --features appsync
71+
cargo test --package aws_lambda_events --no-default-features --features autoscaling
72+
cargo test --package aws_lambda_events --no-default-features --features chime_bot
73+
cargo test --package aws_lambda_events --no-default-features --features clientvpn
74+
cargo test --package aws_lambda_events --no-default-features --features cloudwatch_events
75+
cargo test --package aws_lambda_events --no-default-features --features cloudwatch_logs
76+
cargo test --package aws_lambda_events --no-default-features --features code_commit
77+
cargo test --package aws_lambda_events --no-default-features --features codebuild
78+
cargo test --package aws_lambda_events --no-default-features --features codedeploy
79+
cargo test --package aws_lambda_events --no-default-features --features codepipeline_cloudwatch
80+
cargo test --package aws_lambda_events --no-default-features --features codepipeline_job
81+
cargo test --package aws_lambda_events --no-default-features --features cognito
82+
cargo test --package aws_lambda_events --no-default-features --features config
83+
cargo test --package aws_lambda_events --no-default-features --features connect
84+
cargo test --package aws_lambda_events --no-default-features --features dynamodb
85+
cargo test --package aws_lambda_events --no-default-features --features ecr_scan
86+
cargo test --package aws_lambda_events --no-default-features --features firehose
87+
cargo test --package aws_lambda_events --no-default-features --features iam
88+
cargo test --package aws_lambda_events --no-default-features --features iot
89+
cargo test --package aws_lambda_events --no-default-features --features iot_1_click
90+
cargo test --package aws_lambda_events --no-default-features --features iot_button
91+
cargo test --package aws_lambda_events --no-default-features --features iot_deprecated
92+
cargo test --package aws_lambda_events --no-default-features --features kafka
93+
cargo test --package aws_lambda_events --no-default-features --features kinesis
94+
cargo test --package aws_lambda_events --no-default-features --features kinesis_analytics
95+
cargo test --package aws_lambda_events --no-default-features --features lambda_function_urls
96+
cargo test --package aws_lambda_events --no-default-features --features lex
97+
cargo test --package aws_lambda_events --no-default-features --features rabbitmq
98+
cargo test --package aws_lambda_events --no-default-features --features s3
99+
cargo test --package aws_lambda_events --no-default-features --features s3_batch_job
100+
cargo test --package aws_lambda_events --no-default-features --features ses
101+
cargo test --package aws_lambda_events --no-default-features --features sns
102+
cargo test --package aws_lambda_events --no-default-features --features sqs
103+
cargo test --package aws_lambda_events --no-default-features --features streams

lambda-events/Cargo.toml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,19 @@ repository = "https://github.com/awslabs/aws-lambda-rust-runtime"
1313
readme = "README.md"
1414
keywords = ["lambda", "aws", "amazon", "events", "S3"]
1515
categories = ["api-bindings", "encoding", "web-programming"]
16+
edition = "2021"
1617

1718
[dependencies]
1819
base64 = "0.21"
19-
http = "0.2"
20-
http-body = "0.4"
21-
http-serde = "^1"
20+
http = { version = "0.2", optional = true }
21+
http-body = { version = "0.4", optional = true }
22+
http-serde = { version = "^1", optional = true }
2223
serde = "^1"
2324
serde_derive = "^1"
2425
serde_with = { version = "^3", features = ["json"], optional = true }
2526
serde_json = "^1"
2627
serde_dynamo = { version = "^4.1", optional = true }
27-
bytes = { version = "1", features = ["serde"] }
28+
bytes = { version = "1", features = ["serde"], optional = true }
2829
chrono = { version = "0.4.23", default-features = false, features = [
2930
"clock",
3031
"serde",
@@ -78,8 +79,8 @@ default = [
7879
]
7980

8081
activemq = []
81-
alb = ["query_map"]
82-
apigw = ["query_map"]
82+
alb = ["bytes", "http", "http-body", "http-serde", "query_map"]
83+
apigw = ["bytes", "http", "http-body", "http-serde", "query_map"]
8384
appsync = []
8485
autoscaling = ["chrono"]
8586
chime_bot = ["chrono"]
@@ -97,19 +98,19 @@ config = []
9798
connect = []
9899
dynamodb = ["chrono", "serde_dynamo", "streams"]
99100
ecr_scan = []
100-
firehose = []
101+
firehose = ["chrono"]
101102
iam = []
102-
iot = ["iam"]
103+
iot = ["bytes", "http", "http-body", "http-serde", "iam"]
103104
iot_1_click = []
104105
iot_button = []
105106
iot_deprecated = ["iot"]
106-
kafka = []
107-
kinesis = []
107+
kafka = ["chrono"]
108+
kinesis = ["chrono"]
108109
kinesis_analytics = ["kinesis"]
109-
lambda_function_urls = []
110+
lambda_function_urls = ["bytes", "http", "http-body", "http-serde"]
110111
lex = []
111112
rabbitmq = []
112-
s3 = ["chrono"]
113+
s3 = ["bytes", "chrono", "http", "http-body", "http-serde"]
113114
s3_batch_job = ["s3"]
114115
ses = ["chrono"]
115116
sns = ["chrono", "serde_with"]

lambda-events/src/custom_serde/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use base64::Engine;
2-
use serde;
32
use serde::de::{Deserialize, Deserializer, Error as DeError};
43
use serde::ser::Serializer;
54
use std::collections::HashMap;
@@ -80,6 +79,7 @@ where
8079
feature = "apigw",
8180
feature = "cloudwatch_events",
8281
feature = "code_commit",
82+
feature = "cognito",
8383
test
8484
))]
8585
pub(crate) fn deserialize_nullish_boolean<'de, D>(deserializer: D) -> Result<bool, D::Error>

0 commit comments

Comments
 (0)