Exemplo n.º 1
0
def test_target_generation_at_subdir(rule_runner: RuleRunner) -> None:
    rule_runner.write_files({
        "src/tf/BUILD": "terraform_modules()\n",
        "src/tf/versions.tf": "",
        "src/tf/foo/versions.tf": "",
    })

    generator_addr = Address("src/tf")
    generator = rule_runner.get_target(generator_addr)
    targets = rule_runner.request(
        GeneratedTargets, [GenerateTerraformModuleTargetsRequest(generator)])
    assert targets == GeneratedTargets(
        generator,
        [
            TerraformModuleTarget(
                {TerraformModuleSourcesField.alias: ("foo/versions.tf", )},
                generator_addr.create_generated("foo"),
                residence_dir="src/tf/foo",
            ),
            TerraformModuleTarget(
                {TerraformModuleSourcesField.alias: ("versions.tf", )},
                generator_addr.create_generated("."),
                residence_dir="src/tf",
            ),
        ],
    )
Exemplo n.º 2
0
def test_target_generation_at_build_root(rule_runner: RuleRunner) -> None:
    rule_runner.write_files({
        "BUILD":
        "terraform_modules(name='tf_mods')\n",
        "src/tf/versions.tf":
        "",
        "src/tf/outputs.tf":
        "",
        "src/tf/foo/versions.tf":
        "",
        "src/tf/not-terraform/README.md":
        "This should not trigger target generation.",
    })

    generator_addr = Address("", target_name="tf_mods")
    generator = rule_runner.get_target(generator_addr)
    targets = rule_runner.request(_TargetParametrizations, [generator.address])
    assert set(targets.parametrizations.values()) == {
        TerraformModuleTarget(
            {TerraformModuleSourcesField.alias: ("src/tf/foo/versions.tf", )},
            generator_addr.create_generated("src/tf/foo"),
            residence_dir="src/tf/foo",
        ),
        TerraformModuleTarget(
            {
                TerraformModuleSourcesField.alias:
                ("src/tf/outputs.tf", "src/tf/versions.tf")
            },
            generator_addr.create_generated("src/tf"),
            residence_dir="src/tf",
        ),
    }
Exemplo n.º 3
0
def test_target_generation_at_subdir(rule_runner: RuleRunner) -> None:
    rule_runner.write_files({
        "src/tf/BUILD": "terraform_modules()\n",
        "src/tf/versions.tf": "",
        "src/tf/foo/versions.tf": "",
    })

    generator_addr = Address("src/tf")
    generator = rule_runner.get_target(generator_addr)
    targets = rule_runner.request(_TargetParametrizations, [generator.address])
    assert set(targets.parametrizations.values()) == {
        TerraformModuleTarget(
            {TerraformModuleSourcesField.alias: ("foo/versions.tf", )},
            generator_addr.create_generated("foo"),
            residence_dir="src/tf/foo",
        ),
        TerraformModuleTarget(
            {TerraformModuleSourcesField.alias: ("versions.tf", )},
            generator_addr.create_generated("."),
            residence_dir="src/tf",
        ),
    }
Exemplo n.º 4
0
def test_target_generation(rule_runner: RuleRunner) -> None:
    rule_runner.write_files({
        "BUILD":
        "terraform_modules(name='tf_mods')\n",
        "src/tf/versions.tf":
        "",
        "src/tf/outputs.tf":
        "",
        "src/tf/foo/versions.tf":
        "",
        "src/tf/not-terraform/README.md":
        "This should not trigger target generation.",
    })

    generator_addr = Address("", target_name="tf_mods")
    generator = rule_runner.get_target(generator_addr)
    targets = rule_runner.request(
        GeneratedTargets, [GenerateTerraformModuleTargetsRequest(generator)])
    assert targets == GeneratedTargets(
        generator,
        [
            TerraformModule(
                {
                    TerraformModuleSources.alias: ("versions.tf", ),
                },
                generator_addr.create_generated("src/tf/foo"),
            ),
            TerraformModule(
                {
                    TerraformModuleSources.alias: (
                        "outputs.tf",
                        "versions.tf",
                    ),
                },
                generator_addr.create_generated("src/tf"),
            ),
        ],
    )