From 9fc10d11ad74fbf013d15c49c2bdaeada087a69f Mon Sep 17 00:00:00 2001 From: epolon Date: Fri, 5 Nov 2021 12:26:05 +0200 Subject: [PATCH 1/4] python app template to include basic test --- .../%name.PythonModule%_stack.template.py | 7 ----- .../v1/app/python/requirements.template.txt | 4 +-- ...test_%name.PythonModule%_stack.template.py | 26 +++++++++---------- 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py b/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py index 9c5de032e839d..4b16593b89640 100644 --- a/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +++ b/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py @@ -1,6 +1,5 @@ from aws_cdk import ( core as cdk - # aws_sqs as sqs, ) # For consistency with other languages, `cdk` is the preferred import name for @@ -16,9 +15,3 @@ def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # The code that defines your stack goes here - - # example resource - # queue = sqs.Queue( - # self, "%name.PascalCased%Queue", - # visibility_timeout=cdk.Duration.seconds(300), - # ) diff --git a/packages/aws-cdk/lib/init-templates/v1/app/python/requirements.template.txt b/packages/aws-cdk/lib/init-templates/v1/app/python/requirements.template.txt index e14ce6e77e499..87cbb00cfac55 100644 --- a/packages/aws-cdk/lib/init-templates/v1/app/python/requirements.template.txt +++ b/packages/aws-cdk/lib/init-templates/v1/app/python/requirements.template.txt @@ -1,2 +1,2 @@ -aws-cdk.core>=%cdk-version%, -aws-cdk.assertions>=%cdk-version%, +aws-cdk.core>=%cdk-version% +aws-cdk.assertions>=%cdk-version% diff --git a/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py b/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py index 94f2234e02aa6..ee263819cfd1a 100644 --- a/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py +++ b/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py @@ -1,18 +1,16 @@ -# from aws_cdk import ( -# core, -# assertions -# ) +from aws_cdk import ( + core, + assertions + ) -# from %name.PythonModule%.%name.PythonModule%_stack import %name.PascalCased%Stack +from %name.PythonModule%.%name.PythonModule%_stack import %name.PascalCased%Stack -# example tests. To run these tests, uncomment this file along with the example -# resource in %name.PythonModule%/%name.PythonModule%_stack.py -# def test_sqs_queue_created(): -# app = core.App() -# stack = %name.PascalCased%Stack(app, "%name.StackName%") -# template = assertions.Template.from_stack(stack) +# example test. full snaphost validation of the stack +def test_stack(): + app = core.App() + stack = %name.PascalCased%Stack(app, "%name.StackName%") + template = assertions.Template.from_stack(stack) -# template.has_resource_properties("AWS::SQS::Queue", { -# "VisibilityTimeout": 300 -# }) + expected_template = {} + template.template_matches(expected_template) From 9f6b938b156eae6a119f39346b9a1ff9627eded9 Mon Sep 17 00:00:00 2001 From: epolon Date: Fri, 5 Nov 2021 12:33:50 +0200 Subject: [PATCH 2/4] python app template to include basic test --- .../%name.PythonModule%_stack.template.py | 7 +++++ ...test_%name.PythonModule%_stack.template.py | 27 ++++++++++--------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py b/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py index 4b16593b89640..9c5de032e839d 100644 --- a/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +++ b/packages/aws-cdk/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py @@ -1,5 +1,6 @@ from aws_cdk import ( core as cdk + # aws_sqs as sqs, ) # For consistency with other languages, `cdk` is the preferred import name for @@ -15,3 +16,9 @@ def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # The code that defines your stack goes here + + # example resource + # queue = sqs.Queue( + # self, "%name.PascalCased%Queue", + # visibility_timeout=cdk.Duration.seconds(300), + # ) diff --git a/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py b/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py index ee263819cfd1a..1b0e4b66e9aaa 100644 --- a/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py +++ b/packages/aws-cdk/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py @@ -1,16 +1,19 @@ -from aws_cdk import ( - core, - assertions - ) +# from aws_cdk import ( +# core, +# assertions +# ) -from %name.PythonModule%.%name.PythonModule%_stack import %name.PascalCased%Stack +# from %name.PythonModule%.%name.PythonModule%_stack import %name.PascalCased%Stack -# example test. full snaphost validation of the stack -def test_stack(): - app = core.App() - stack = %name.PascalCased%Stack(app, "%name.StackName%") - template = assertions.Template.from_stack(stack) +# example tests. To run these tests, uncomment this file along with the example +# resource in %name.PythonModule%/%name.PythonModule%_stack.py +def test_sqs_queue_created(): +# app = core.App() +# stack = %name.PascalCased%Stack(app, "%name.StackName%") +# template = assertions.Template.from_stack(stack) - expected_template = {} - template.template_matches(expected_template) +# template.has_resource_properties("AWS::SQS::Queue", { +# "VisibilityTimeout": 300 +# }) + pass From 7c5674286be34a79f9d4079245e55c2c6c84f62b Mon Sep 17 00:00:00 2001 From: epolon Date: Fri, 5 Nov 2021 12:45:02 +0200 Subject: [PATCH 3/4] replace Map.of with HashMap init to support java 8 --- .../java/com/myorg/%name.PascalCased%Test.template.java | 8 ++++---- .../com/myorg/%name.PascalCased%StackTest.template.java | 8 ++++---- .../java/com/myorg/%name.PascalCased%Test.template.java | 8 ++++---- .../com/myorg/%name.PascalCased%StackTest.template.java | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/aws-cdk/lib/init-templates/v1/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java b/packages/aws-cdk/lib/init-templates/v1/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java index f96ca04987f31..e095565be7920 100644 --- a/packages/aws-cdk/lib/init-templates/v1/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java +++ b/packages/aws-cdk/lib/init-templates/v1/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java @@ -4,7 +4,7 @@ // import software.amazon.awscdk.assertions.Template; // import java.io.IOException; -// import java.util.Map; +// import java.util.HashMap; // import org.junit.jupiter.api.Test; @@ -19,8 +19,8 @@ // Template template = Template.fromStack(stack); -// template.hasResourceProperties("AWS::SQS::Queue", Map.of( -// "VisibilityTimeout", 300 -// )); +// template.hasResourceProperties("AWS::SQS::Queue", new HashMap() {{ +// put("VisibilityTimeout", 300); +// }}); // } // } diff --git a/packages/aws-cdk/lib/init-templates/v1/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java b/packages/aws-cdk/lib/init-templates/v1/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java index b648a3a72dc46..5cbbe8a127e4f 100644 --- a/packages/aws-cdk/lib/init-templates/v1/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java +++ b/packages/aws-cdk/lib/init-templates/v1/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java @@ -5,7 +5,7 @@ import software.amazon.awscdk.assertions.Match; import java.io.IOException; -import java.util.Map; +import java.util.HashMap; import org.junit.jupiter.api.Test; @@ -18,9 +18,9 @@ public void testStack() throws IOException { Template template = Template.fromStack(stack); - template.hasResourceProperties("AWS::SQS::Queue", Map.of( - "VisibilityTimeout", 300 - )); + template.hasResourceProperties("AWS::SQS::Queue", new HashMap() {{ + put("VisibilityTimeout", 300); + }}); template.resourceCountIs("AWS::SNS::Topic", 1); } } diff --git a/packages/aws-cdk/lib/init-templates/v2/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java b/packages/aws-cdk/lib/init-templates/v2/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java index 5e9d7806654d0..564b1682848ca 100644 --- a/packages/aws-cdk/lib/init-templates/v2/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java +++ b/packages/aws-cdk/lib/init-templates/v2/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java @@ -4,7 +4,7 @@ // import software.amazon.awscdk.assertions.alpha.Template; // import java.io.IOException; -// import java.util.Map; +// import java.util.HashMap; // import org.junit.jupiter.api.Test; @@ -19,8 +19,8 @@ // Template template = Template.fromStack(stack); -// template.hasResourceProperties("AWS::SQS::Queue", Map.of( -// "VisibilityTimeout", 300 -// )); +// template.hasResourceProperties("AWS::SQS::Queue", new HashMap() {{ +// put("VisibilityTimeout", 300); +// }}); // } // } diff --git a/packages/aws-cdk/lib/init-templates/v2/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java b/packages/aws-cdk/lib/init-templates/v2/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java index c728c6eb6323c..1cd39ad8da3bb 100644 --- a/packages/aws-cdk/lib/init-templates/v2/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java +++ b/packages/aws-cdk/lib/init-templates/v2/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java @@ -5,7 +5,7 @@ import software.amazon.awscdk.assertions.alpha.Match; import java.io.IOException; -import java.util.Map; +import java.util.HashMap; import org.junit.jupiter.api.Test; @@ -18,9 +18,9 @@ public void testStack() throws IOException { Template template = Template.fromStack(stack); - template.hasResourceProperties("AWS::SQS::Queue", Map.of( - "VisibilityTimeout", 300 - )); + template.hasResourceProperties("AWS::SQS::Queue", new HashMap() {{ + put("VisibilityTimeout", 300); + }}); template.resourceCountIs("AWS::SNS::Topic", 1); } From 6b67d56bee628e2068f606a3ab618c7abbf8efef Mon Sep 17 00:00:00 2001 From: Eli Polonsky Date: Fri, 5 Nov 2021 17:45:50 +0200 Subject: [PATCH 4/4] Update CONTRIBUTING.md --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5af7da4ecc25a..dca9ebdce5f06 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -978,3 +978,4 @@ $ node --inspect-brk /path/to/aws-cdk/node_modules/.bin/jest -i -t 'TESTNAME' * [Workshop](https://github.com/aws-samples/aws-cdk-intro-workshop): source for https://cdkworkshop.com * [Developer Guide](https://github.com/awsdocs/aws-cdk-guide): markdown source for developer guide * [jsii](https://github.com/aws/jsii): the technology we use for multi-language support. If you are looking to help us support new languages, start there. +