def test_main__buries_error(capfd):
    """PyPICloud should only be updated on success."""

    bucket = mock.Mock()
    settings = mock.Mock()
    settings.items = ["faked"]

    with mock.patch.object(upload, "get_settings", return_value=settings):
        with mock.patch.object(upload, "get_bucket_conn", return_value=bucket):
            with mock.patch.object(upload, "upload_file", side_effect=IOError):
                with mock.patch.object(upload, "update_cloud") as cloud_patch:
                    upload.main()

    out, err = capfd.readouterr()
    assert "Error uploading faked: " in err
    assert not out
    assert not cloud_patch.called
Exemple #2
0
def test_main(capfd):
    """Mock all calls, ensure the command line entry point flow."""

    bucket = mock.Mock()
    settings = mock.Mock()
    settings.items = ["faked"]

    with mock.patch.object(upload, "get_settings", return_value=settings) as settings_patch:
        with mock.patch.object(upload, "get_bucket_conn", return_value=bucket) as bucket_patch:
            with mock.patch.object(upload, "upload_file") as upload_patch:
                with mock.patch.object(upload, "update_cloud") as cloud_patch:
                    upload.main()

    settings_patch.assert_called_once_with(upload=True)
    bucket_patch.assert_called_once_with(settings.s3)
    cloud_patch.assert_called_once_with(settings.pypi)
    upload_patch.assert_called_once_with("faked", bucket, settings.s3)
    out, err = capfd.readouterr()
    assert not err
    assert "PyPICloud server at {} updated".format(settings.pypi.server) in out