Ejemplo n.º 1
0
def test_publish_publishes_to_pypi_by_default(fixture_dir: "FixtureDirGetter",
                                              mocker: "MockerFixture",
                                              config: "Config"):
    uploader_auth = mocker.patch("poetry.publishing.uploader.Uploader.auth")
    uploader_upload = mocker.patch(
        "poetry.publishing.uploader.Uploader.upload")
    poetry = Factory().create_poetry(fixture_dir("sample_project"))
    poetry._config = config
    poetry.config.merge(
        {"http-basic": {
            "pypi": {
                "username": "******",
                "password": "******"
            }
        }})
    publisher = Publisher(poetry, NullIO())

    publisher.publish(None, None, None)

    assert [("foo", "bar")] == uploader_auth.call_args
    assert [
        ("https://upload.pypi.org/legacy/", ),
        {
            "cert": None,
            "client_cert": None,
            "dry_run": False
        },
    ] == uploader_upload.call_args
Ejemplo n.º 2
0
def test_publish_uses_client_cert(fixture_dir: "FixtureDirGetter",
                                  mocker: "MockerFixture", config: "Config"):
    client_cert = "path/to/client.pem"
    uploader_upload = mocker.patch(
        "poetry.publishing.uploader.Uploader.upload")
    poetry = Factory().create_poetry(fixture_dir("sample_project"))
    poetry._config = config
    poetry.config.merge({
        "repositories": {
            "foo": {
                "url": "https://foo.bar"
            }
        },
        "certificates": {
            "foo": {
                "client-cert": client_cert
            }
        },
    })
    publisher = Publisher(poetry, NullIO())

    publisher.publish("foo", None, None)

    assert [
        ("https://foo.bar", ),
        {
            "cert": None,
            "client_cert": Path(client_cert),
            "dry_run": False
        },
    ] == uploader_upload.call_args
def test_publish_can_publish_to_given_repository(fixture_dir, mocker, config):
    uploader_auth = mocker.patch(
        "poetry.masonry.publishing.uploader.Uploader.auth")
    uploader_upload = mocker.patch(
        "poetry.masonry.publishing.uploader.Uploader.upload")
    poetry = Factory().create_poetry(fixture_dir("sample_project"))
    poetry._config = config
    poetry.config.merge({
        "repositories": {
            "my-repo": {
                "url": "http://foo.bar"
            }
        },
        "http-basic": {
            "my-repo": {
                "username": "******",
                "password": "******"
            }
        },
    })
    publisher = Publisher(poetry, NullIO())

    publisher.publish("my-repo", None, None)

    assert [("foo", "bar")] == uploader_auth.call_args
    assert [
        ("http://foo.bar", ),
        {
            "cert": None,
            "client_cert": None
        },
    ] == uploader_upload.call_args
Ejemplo n.º 4
0
def test_publish_uses_cert(
    fixture_dir: FixtureDirGetter, mocker: MockerFixture, config: Config
):
    cert = "path/to/ca.pem"
    uploader_auth = mocker.patch("poetry.publishing.uploader.Uploader.auth")
    uploader_upload = mocker.patch("poetry.publishing.uploader.Uploader.upload")
    poetry = Factory().create_poetry(fixture_dir("sample_project"))
    poetry._config = config
    poetry.config.merge(
        {
            "repositories": {"foo": {"url": "https://foo.bar"}},
            "http-basic": {"foo": {"username": "******", "password": "******"}},
            "certificates": {"foo": {"cert": cert}},
        }
    )
    publisher = Publisher(poetry, NullIO())

    publisher.publish("foo", None, None)

    assert [("foo", "bar")] == uploader_auth.call_args
    assert [
        ("https://foo.bar",),
        {
            "cert": Path(cert),
            "client_cert": None,
            "dry_run": False,
            "skip_existing": False,
        },
    ] == uploader_upload.call_args
Ejemplo n.º 5
0
def test_publish_raises_error_for_undefined_repository(fixture_dir, mocker, config):
    poetry = Factory().create_poetry(fixture_dir("sample_project"))
    poetry._config = config
    poetry.config.merge(
        {"http-basic": {"my-repo": {"username": "******", "password": "******"}}}
    )
    publisher = Publisher(poetry, NullIO())

    with pytest.raises(RuntimeError):
        publisher.publish("my-repo", None, None)
Ejemplo n.º 6
0
def test_publish_uses_token_if_it_exists(fixture_dir, mocker, config):
    uploader_auth = mocker.patch("poetry.publishing.uploader.Uploader.auth")
    uploader_upload = mocker.patch("poetry.publishing.uploader.Uploader.upload")
    poetry = Factory().create_poetry(fixture_dir("sample_project"))
    poetry._config = config
    poetry.config.merge({"pypi-token": {"pypi": "my-token"}})
    publisher = Publisher(poetry, NullIO())

    publisher.publish(None, None, None)

    assert [("__token__", "my-token")] == uploader_auth.call_args
    assert [
        ("https://upload.pypi.org/legacy/",),
        {"cert": None, "client_cert": None, "dry_run": False},
    ] == uploader_upload.call_args
Ejemplo n.º 7
0
def test_publish_can_publish_to_given_repository(fixture_dir, mocker, config):
    uploader_auth = mocker.patch("poetry.publishing.uploader.Uploader.auth")
    uploader_upload = mocker.patch("poetry.publishing.uploader.Uploader.upload")
    poetry = Factory().create_poetry(fixture_dir("sample_project"))
    poetry._config = config
    poetry.config.merge(
        {
            "repositories": {"my-repo": {"url": "http://foo.bar"}},
            "http-basic": {"my-repo": {"username": "******", "password": "******"}},
        }
    )
    io = BufferedIO()
    publisher = Publisher(poetry, io)

    publisher.publish("my-repo", None, None)

    assert [("foo", "bar")] == uploader_auth.call_args
    assert [
        ("http://foo.bar",),
        {"cert": None, "client_cert": None, "dry_run": False},
    ] == uploader_upload.call_args
    assert "Publishing my-package (1.2.3) to my-repo" in io.fetch_output()