|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
3 | 3 | import json |
| 4 | +import sys |
| 5 | +import tempfile |
4 | 6 | import unittest |
| 7 | +from pathlib import Path |
5 | 8 |
|
6 | | -import aws_cdk as cdk |
7 | | -from aws_cdk.assertions import Template |
| 9 | +try: |
| 10 | + import aws_cdk as cdk |
| 11 | + from aws_cdk.assertions import Template |
| 12 | +except ModuleNotFoundError: |
| 13 | + cdk = None |
| 14 | + Template = None |
8 | 15 |
|
9 | | -from stacks import ComposeRunnerImageRepositoriesStack, ComposeRunnerStack |
| 16 | +sys.path.insert(0, str(Path(__file__).resolve().parents[1])) |
10 | 17 |
|
| 18 | +if cdk is not None: |
| 19 | + from stacks import ComposeRunnerImageRepositoriesStack, ComposeRunnerStack |
11 | 20 |
|
| 21 | + |
| 22 | +@unittest.skipIf(cdk is None, "aws_cdk is not installed in this test environment") |
12 | 23 | class ComposeRunnerStackImageConfigTest(unittest.TestCase): |
13 | 24 | def test_stack_uses_explicit_ecr_repositories(self) -> None: |
14 | 25 | app = cdk.App(context={"composeRunnerVersion": "0.7.8"}) |
@@ -42,6 +53,34 @@ def test_stack_uses_explicit_ecr_repositories(self) -> None: |
42 | 53 | self.assertNotIn("cdk-hnb659fds-container-assets", app_template_json) |
43 | 54 | self.assertNotIn("AssetParameters", app_template_json) |
44 | 55 |
|
| 56 | + def test_cloud_assembly_does_not_include_docker_image_assets(self) -> None: |
| 57 | + with tempfile.TemporaryDirectory() as output_dir: |
| 58 | + app = cdk.App( |
| 59 | + context={"composeRunnerVersion": "0.7.8"}, |
| 60 | + outdir=output_dir, |
| 61 | + ) |
| 62 | + |
| 63 | + image_repositories_stack = ComposeRunnerImageRepositoriesStack( |
| 64 | + app, |
| 65 | + "ComposeRunnerImageRepositoriesStack", |
| 66 | + env=cdk.Environment(account="631329474511", region="us-east-1"), |
| 67 | + ) |
| 68 | + |
| 69 | + ComposeRunnerStack( |
| 70 | + app, |
| 71 | + "ComposeRunnerStack", |
| 72 | + ecs_image_repository=image_repositories_stack.ecs_image_repository, |
| 73 | + lambda_image_repository=image_repositories_stack.lambda_image_repository, |
| 74 | + env=cdk.Environment(account="631329474511", region="us-east-1"), |
| 75 | + ) |
| 76 | + |
| 77 | + app.synth() |
| 78 | + |
| 79 | + with open(f"{output_dir}/ComposeRunnerStack.assets.json", encoding="utf-8") as manifest_file: |
| 80 | + assets_manifest = json.load(manifest_file) |
| 81 | + |
| 82 | + self.assertEqual(assets_manifest.get("dockerImages", {}), {}) |
| 83 | + |
45 | 84 |
|
46 | 85 | if __name__ == "__main__": |
47 | 86 | unittest.main() |
0 commit comments