Пример #1
0
    def check(dirname):
        with fake_server(monkeypatch, expected_basename='foo.zip'):
            project = project_ops.create(dirname)
            archivefile = os.path.join(dirname, "tmp.zip")
            project_ops.archive(project, archivefile)

            status = _upload(project, archivefile, "foo.zip", site='unit_test')
            assert status
Пример #2
0
    def check(dirname):
        with fake_server(monkeypatch, expected_basename='foo.zip', fail_these=('stage', )):
            project = project_ops.create(dirname)
            archivefile = os.path.join(dirname, "tmp.zip")
            project_ops.archive(project, archivefile)

            status = _upload(project, archivefile, "foo.zip", site='unit_test')
            assert not status
            assert '501' in status.errors[0]
Пример #3
0
def upload(project, site=None, username=None, token=None, log_level=None):
    """Upload the project to the Anaconda server.

    The returned status; if successful, has a 'url' attribute with the project URL.

    Args:
        project (``Project``): the project
        site (str): site alias from Anaconda config
        username (str): Anaconda username
        token (str): Anaconda auth token
        log_level (str): Anaconda log level

    Returns:
        a ``Status``, if failed has ``errors``
    """
    failed = project.problems_status()
    if failed is not None:
        return failed

    suffix = ".tar.bz2"

    # delete=True breaks on windows if you use tmp_tarfile.name to re-open the file,
    # so don't use delete=True.
    tmp_tarfile = tempfile.NamedTemporaryFile(delete=False,
                                              prefix="anaconda_upload_",
                                              suffix=suffix)
    tmp_tarfile.close(
    )  # immediately un-use it to avoid file-in-use errors on Windows
    try:
        status = archive(project, tmp_tarfile.name)
        if not status:
            return status
        status = client._upload(project,
                                tmp_tarfile.name,
                                uploaded_basename=(project.name + suffix),
                                site=site,
                                username=username,
                                token=token,
                                log_level=log_level)
        return status
    finally:
        os.remove(tmp_tarfile.name)