示例#1
0
    async def test_ls_repositories(self, aiohttp_server: _TestServerFactory,
                                   make_client: _MakeClient) -> None:
        JSON = {"repositories": ["bob/alpine", "jill/bananas"]}

        async def handler(request: web.Request) -> web.Response:
            return web.json_response(JSON)

        app = web.Application()
        app.router.add_get("/v2/_catalog", handler)

        srv = await aiohttp_server(app)
        url = "http://platform"
        registry_url = srv.make_url("/v2/")

        async with make_client(url, registry_url=registry_url) as client:
            ret = await client.images.ls()

        registry = _get_url_authority(registry_url)
        assert registry is not None
        assert set(ret) == {
            RemoteImage.new_neuro_image(
                "alpine",
                tag=None,
                owner="bob",
                cluster_name="default",
                registry=registry,
            ),
            RemoteImage.new_neuro_image(
                "bananas",
                tag=None,
                owner="jill",
                cluster_name="default",
                registry=registry,
            ),
        }
def test_get_url_authority_without_host() -> None:
    url = URL("scheme://")
    assert _get_url_authority(url) is None
def test_get_url_authority_without_port() -> None:
    url = URL("scheme://example.com/")  # here `url.port is None`
    assert _get_url_authority(url) == "example.com"
def test_get_url_authority_with_implicit_port() -> None:
    url = URL("http://example.com/")  # here `url.port == 80`
    assert _get_url_authority(url) == "example.com"
def test_get_url_authority_with_explicit_port() -> None:
    url = URL("http://example.com:8080/")
    assert _get_url_authority(url) == "example.com:8080"