cloud-radar 0.14.0a0__tar.gz → 0.14.0a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/PKG-INFO +3 -4
  2. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/README.md +2 -3
  3. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/pyproject.toml +1 -1
  4. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/_template.py +17 -2
  5. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/LICENSE.txt +0 -0
  6. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/__init__.py +0 -0
  7. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/__init__.py +0 -0
  8. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/e2e/__init__.py +0 -0
  9. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/e2e/_stack.py +0 -0
  10. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/__init__.py +0 -0
  11. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/_condition.py +0 -0
  12. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/_hooks.py +0 -0
  13. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/_output.py +0 -0
  14. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/_parameter.py +0 -0
  15. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/_resource.py +0 -0
  16. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/_stack.py +0 -0
  17. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/functions.py +0 -0
  18. {cloud_radar-0.14.0a0 → cloud_radar-0.14.0a1}/src/cloud_radar/cf/unit/test__template.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloud-radar
3
- Version: 0.14.0a0
3
+ Version: 0.14.0a1
4
4
  Summary: Run functional tests on cloudformation stacks.
5
5
  Home-page: https://github.com/DontShaveTheYak/cloud-radar
6
6
  License: Apache-2.0
@@ -200,8 +200,8 @@ The default values for pseudo parameters:
200
200
  | **NoValue** | "" |
201
201
  | **Partition** | "aws" |
202
202
  | Region | "us-east-1" |
203
- | **StackId** | "" |
204
- | **StackName** | "" |
203
+ | StackId | (generated based on other values) |
204
+ | StackName | "my-cloud-radar-stack" |
205
205
  | **URLSuffix** | "amazonaws.com" |
206
206
  _Note: Bold variables are not fully implemented yet see the [Roadmap](#roadmap)_
207
207
 
@@ -356,7 +356,6 @@ A real functional testing example using Pytest can be seen [here](./tests/test_c
356
356
  ### Unit
357
357
  - Add full functionality to pseudo variables.
358
358
  * Variables like `Partition`, `URLSuffix` should change if the region changes.
359
- * Variables like `StackName` and `StackId` should have a better default than ""
360
359
  - Handle References to resources that shouldn't exist.
361
360
  * It's currently possible that a `!Ref` to a Resource stays in the final template even if that resource is later removed because of a conditional.
362
361
 
@@ -169,8 +169,8 @@ The default values for pseudo parameters:
169
169
  | **NoValue** | "" |
170
170
  | **Partition** | "aws" |
171
171
  | Region | "us-east-1" |
172
- | **StackId** | "" |
173
- | **StackName** | "" |
172
+ | StackId | (generated based on other values) |
173
+ | StackName | "my-cloud-radar-stack" |
174
174
  | **URLSuffix** | "amazonaws.com" |
175
175
  _Note: Bold variables are not fully implemented yet see the [Roadmap](#roadmap)_
176
176
 
@@ -325,7 +325,6 @@ A real functional testing example using Pytest can be seen [here](./tests/test_c
325
325
  ### Unit
326
326
  - Add full functionality to pseudo variables.
327
327
  * Variables like `Partition`, `URLSuffix` should change if the region changes.
328
- * Variables like `StackName` and `StackId` should have a better default than ""
329
328
  - Handle References to resources that shouldn't exist.
330
329
  * It's currently possible that a `!Ref` to a Resource stays in the final template even if that resource is later removed because of a conditional.
331
330
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cloud-radar"
3
- version = "0.14.0a0"
3
+ version = "0.14.0a1"
4
4
  description = "Run functional tests on cloudformation stacks."
5
5
  readme = "README.md"
6
6
  authors = ["Levi Blaney <shadycuz@gmail.com>"]
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import json
4
4
  import re
5
+ import uuid
5
6
  from pathlib import Path
6
7
  from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Union
7
8
 
@@ -26,8 +27,8 @@ class Template:
26
27
  NoValue: str = "" # Not yet implemented
27
28
  Partition: str = "aws" # Other regions not implemented
28
29
  Region: str = "us-east-1"
29
- StackId: str = "" # Not yet implemented
30
- StackName: str = "" # Not yet implemented
30
+ StackId: str = "" # If left blank this will be generated
31
+ StackName: str = "my-cloud-radar-stack"
31
32
  URLSuffix: str = "amazonaws.com" # Other regions not implemented
32
33
 
33
34
  def __init__(
@@ -310,6 +311,19 @@ class Template:
310
311
 
311
312
  return template
312
313
 
314
+ # If the StackId variable is not set, generate a value for it
315
+ def _get_populated_stack_id(self) -> str:
316
+ if not Template.StackId:
317
+ # Not explicitly set, generate a value
318
+ unique_uuid = uuid.uuid4()
319
+
320
+ return (
321
+ f"arn:{Template.Partition}:cloudformation:{self.Region}:"
322
+ f"{Template.AccountId}:stack/{Template.StackName}/{unique_uuid}"
323
+ )
324
+
325
+ return Template.StackId
326
+
313
327
  def create_stack(
314
328
  self,
315
329
  params: Optional[Dict[str, str]] = None,
@@ -318,6 +332,7 @@ class Template:
318
332
  ):
319
333
  if region:
320
334
  self.Region = region
335
+ self.StackId = self._get_populated_stack_id()
321
336
 
322
337
  self.render(params, parameters_file=parameters_file)
323
338