cloud-radar 0.14.0a0__py3-none-any.whl → 0.14.0a2__py3-none-any.whl
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.
- cloud_radar/cf/unit/_template.py +17 -2
- {cloud_radar-0.14.0a0.dist-info → cloud_radar-0.14.0a2.dist-info}/METADATA +12 -15
- {cloud_radar-0.14.0a0.dist-info → cloud_radar-0.14.0a2.dist-info}/RECORD +5 -5
- {cloud_radar-0.14.0a0.dist-info → cloud_radar-0.14.0a2.dist-info}/WHEEL +1 -1
- {cloud_radar-0.14.0a0.dist-info → cloud_radar-0.14.0a2.dist-info}/LICENSE.txt +0 -0
cloud_radar/cf/unit/_template.py
CHANGED
@@ -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 = "" #
|
30
|
-
StackName: str = ""
|
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
|
|
@@ -1,13 +1,12 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: cloud-radar
|
3
|
-
Version: 0.14.
|
3
|
+
Version: 0.14.0a2
|
4
4
|
Summary: Run functional tests on cloudformation stacks.
|
5
|
-
Home-page: https://github.com/DontShaveTheYak/cloud-radar
|
6
5
|
License: Apache-2.0
|
7
6
|
Keywords: aws,cloudformation,cloud-radar,testing,taskcat,cloud,radar
|
8
7
|
Author: Levi Blaney
|
9
|
-
Author-email: shadycuz@gmail.com
|
10
|
-
Requires-Python: >=3.9,<
|
8
|
+
Author-email: shadycuz+dev@gmail.com
|
9
|
+
Requires-Python: >=3.9,<4.0
|
11
10
|
Classifier: Development Status :: 2 - Pre-Alpha
|
12
11
|
Classifier: License :: OSI Approved :: Apache Software License
|
13
12
|
Classifier: Operating System :: OS Independent
|
@@ -15,17 +14,15 @@ Classifier: Programming Language :: Python :: 3
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.9
|
16
15
|
Classifier: Programming Language :: Python :: 3.10
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
18
|
-
Classifier: Programming Language :: Python :: 3
|
19
|
-
Classifier: Programming Language :: Python :: 3.10
|
20
|
-
Classifier: Programming Language :: Python :: 3.11
|
21
17
|
Classifier: Programming Language :: Python :: 3.12
|
22
18
|
Classifier: Programming Language :: Python :: 3.13
|
23
|
-
Classifier: Programming Language :: Python :: 3.9
|
24
19
|
Classifier: Topic :: Software Development :: Libraries
|
25
20
|
Classifier: Topic :: Software Development :: Testing
|
26
|
-
Requires-Dist: botocore (>=1.35.36)
|
21
|
+
Requires-Dist: botocore (>=1.35.36,<2.0.0)
|
27
22
|
Requires-Dist: cfn-flip (>=1.3.0,<2.0.0)
|
28
|
-
Requires-Dist: taskcat (>=0.9.41,<0.
|
23
|
+
Requires-Dist: taskcat (>=0.9.41,<1.0.0)
|
24
|
+
Project-URL: Changelog, https://github.com/DontShaveTheYak/cloud-radar/releases
|
25
|
+
Project-URL: Issues, https://github.com/DontShaveTheYak/cloud-radar/issues
|
29
26
|
Project-URL: Repository, https://github.com/DontShaveTheYak/cloud-radar
|
30
27
|
Description-Content-Type: text/markdown
|
31
28
|
|
@@ -37,7 +34,7 @@ Description-Content-Type: text/markdown
|
|
37
34
|
*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.
|
38
35
|
*** https://www.markdownguide.org/basic-syntax/#reference-style-links
|
39
36
|
-->
|
40
|
-
[![Python][
|
37
|
+
[![Python][py-versions-shield]][pypi-url]
|
41
38
|
[![Latest][version-shield]][pypi-url]
|
42
39
|
[![Tests][test-shield]][test-url]
|
43
40
|
[![Coverage][codecov-shield]][codecov-url]
|
@@ -200,8 +197,8 @@ The default values for pseudo parameters:
|
|
200
197
|
| **NoValue** | "" |
|
201
198
|
| **Partition** | "aws" |
|
202
199
|
| Region | "us-east-1" |
|
203
|
-
|
|
204
|
-
|
|
200
|
+
| StackId | (generated based on other values) |
|
201
|
+
| StackName | "my-cloud-radar-stack" |
|
205
202
|
| **URLSuffix** | "amazonaws.com" |
|
206
203
|
_Note: Bold variables are not fully implemented yet see the [Roadmap](#roadmap)_
|
207
204
|
|
@@ -356,7 +353,6 @@ A real functional testing example using Pytest can be seen [here](./tests/test_c
|
|
356
353
|
### Unit
|
357
354
|
- Add full functionality to pseudo variables.
|
358
355
|
* Variables like `Partition`, `URLSuffix` should change if the region changes.
|
359
|
-
* Variables like `StackName` and `StackId` should have a better default than ""
|
360
356
|
- Handle References to resources that shouldn't exist.
|
361
357
|
* 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
358
|
|
@@ -397,6 +393,7 @@ Levi - [@shady_cuz](https://twitter.com/shady_cuz)
|
|
397
393
|
<!-- MARKDOWN LINKS & IMAGES -->
|
398
394
|
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
|
399
395
|
[python-shield]: https://img.shields.io/pypi/pyversions/cloud-radar?style=for-the-badge
|
396
|
+
[py-versions-shield]: https://img.shields.io/pypi/pyversions/cloud-radar?style=for-the-badge
|
400
397
|
[version-shield]: https://img.shields.io/pypi/v/cloud-radar?label=latest&style=for-the-badge
|
401
398
|
[pypi-url]: https://pypi.org/project/cloud-radar/
|
402
399
|
[test-shield]: https://img.shields.io/github/actions/workflow/status/DontShaveTheYak/cloud-radar/test.yml?label=Tests&style=for-the-badge
|
@@ -9,10 +9,10 @@ cloud_radar/cf/unit/_output.py,sha256=rhQQ4aJu06bxAoG7GOXkuOPzAmLCrTA2Ytb8rNXA4V
|
|
9
9
|
cloud_radar/cf/unit/_parameter.py,sha256=AdPIqc2ggSW1VR0USF30zjphX3z1HHbGKQt8n-Kzhfo,3199
|
10
10
|
cloud_radar/cf/unit/_resource.py,sha256=dWaR-5s6ea5mIu6Dhf1hY31Wd4WLHbHsbyxnu2Tz6QI,8512
|
11
11
|
cloud_radar/cf/unit/_stack.py,sha256=_S0L9O7Lw-QAJDKubClp2b6UYtYfyzg272_7WQkUdo8,5785
|
12
|
-
cloud_radar/cf/unit/_template.py,sha256=
|
12
|
+
cloud_radar/cf/unit/_template.py,sha256=ESpor5rputwtCKJuvlfp_M0VUuYrciRaLNE8TfdqhRU,32782
|
13
13
|
cloud_radar/cf/unit/functions.py,sha256=iWBhc9JmyObusAAZ2iAXf7dXof36mdqoHOLR4UzuC58,29234
|
14
14
|
cloud_radar/cf/unit/test__template.py,sha256=jVPMJTn6Q0sSZ8BjRGyutuR9-NjdHdwDTVsd2kvjQbs,1491
|
15
|
-
cloud_radar-0.14.
|
16
|
-
cloud_radar-0.14.
|
17
|
-
cloud_radar-0.14.
|
18
|
-
cloud_radar-0.14.
|
15
|
+
cloud_radar-0.14.0a2.dist-info/LICENSE.txt,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
16
|
+
cloud_radar-0.14.0a2.dist-info/METADATA,sha256=YYrRVrs7kpB3BIting_ZAY7L-a4TTbjF8ivfNjcLQkw,16733
|
17
|
+
cloud_radar-0.14.0a2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
18
|
+
cloud_radar-0.14.0a2.dist-info/RECORD,,
|
File without changes
|