Esempio n. 1
0
def test_docker_registries() -> None:
    registries = DockerRegistries.from_dict(
        {
            "reg1": {"address": "myregistry1domain:port"},
            "reg2": {"address": "myregistry2domain:port"},
        }
    )

    assert registries.default == ()
    assert list(registries.get()) == []
    assert len(list(registries.get("@reg1"))) == 1
    assert len(list(registries.get("@reg2"))) == 1
    assert len(list(registries.get("@reg1", "@reg2"))) == 2
    assert next(registries.get("@reg1")).address == "myregistry1domain:port"
    assert next(registries.get("@reg2")).address == "myregistry2domain:port"
    assert next(registries.get("@reg2")).default is False
    assert [r.address for r in registries.get("@reg1", "@reg2")] == [
        "myregistry1domain:port",
        "myregistry2domain:port",
    ]

    with pytest.raises(DockerRegistryOptionsNotFoundError):
        list(registries.get("@reg3"))

    assert list(registries.get("myregistry3domain:port")) == [
        DockerRegistryOptions(address="myregistry3domain:port")
    ]

    # Test defaults.
    registries = DockerRegistries.from_dict(
        {
            "reg1": {"address": "myregistry1domain:port", "default": "false"},
            "reg2": {"address": "myregistry2domain:port", "default": "true"},
            "reg3": {"address": "myregistry3domain:port", "default": "true"},
        }
    )

    assert next(registries.get("@reg2")).default is True
    assert [r.address for r in registries.default] == [
        "myregistry2domain:port",
        "myregistry3domain:port",
    ]

    # Implicit registry options from address.
    assert next(registries.get("myunregistereddomain:port")) == DockerRegistryOptions(
        address="myunregistereddomain:port"
    )
Esempio n. 2
0
 def assert_tags(name: str, *expect_tags: str) -> None:
     tgt = rule_runner.get_target(Address("docker/test", target_name=name))
     fs = DockerFieldSet.create(tgt)
     tags = fs.image_refs(
         "image",
         DockerRegistries.from_dict({}),
         version_context,
     )
     assert expect_tags == tags
Esempio n. 3
0
def test_image_ref_formatting(raw_values: dict, expect_raises: ContextManager,
                              image_refs: tuple[str, ...]) -> None:
    address = Address("test", target_name=raw_values.pop("name", "image"))
    tgt = DockerImageTarget(raw_values, address)
    field_set = DockerFieldSet.create(tgt)
    default_repository = "{name}"
    registries = DockerRegistries.from_dict({})
    interpolation_context = DockerInterpolationContext.from_dict({})
    with expect_raises:
        assert (field_set.image_refs(default_repository, registries,
                                     interpolation_context) == image_refs)
Esempio n. 4
0
def test_skip_push() -> None:
    registries = DockerRegistries.from_dict(
        {
            "reg1": {"address": "registry1"},
            "reg2": {"address": "registry2", "skip_push": True},
            "reg3": {"address": "registry3", "skip_push": "false"},
        }
    )

    reg1, reg2, reg3 = registries.get("@reg1", "@reg2", "@reg3")
    assert reg1.skip_push is False
    assert reg2.skip_push is True
    assert reg3.skip_push is False
Esempio n. 5
0
def test_extra_image_tags() -> None:
    registries = DockerRegistries.from_dict(
        {
            "reg1": {"address": "registry1"},
            "reg2": {
                "address": "registry2",
                "extra_image_tags": ["latest", "v{build_args.VERSION}"],
            },
        }
    )

    reg1, reg2 = registries.get("@reg1", "@reg2")
    assert reg1.extra_image_tags == ()
    assert reg2.extra_image_tags == ("latest", "v{build_args.VERSION}")
Esempio n. 6
0
 def registries(self) -> DockerRegistries:
     return DockerRegistries.from_dict(self._registries)
Esempio n. 7
0
 def registries(self) -> DockerRegistries:
     return DockerRegistries.from_dict(self.options.registries)