File: C:/Users/fred/anaconda3/Lib/site-packages/anaconda_project/internal/cli/test/test_upload.py
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# Copyright (c) 2016, Anaconda, Inc. All rights reserved.
#
# Licensed under the terms of the BSD 3-Clause License.
# The full license is in the file LICENSE.txt, distributed with this software.
# -----------------------------------------------------------------------------
from __future__ import absolute_import, print_function
from anaconda_project.internal.cli.main import _parse_args_and_run_subcommand
from anaconda_project.internal.test.tmpfile_utils import with_directory_contents_completing_project_file
from anaconda_project.internal.simple_status import SimpleStatus
from anaconda_project.project_file import DEFAULT_PROJECT_FILENAME
def _monkeypatch_upload(monkeypatch):
params = {}
def mock_upload(*args, **kwargs):
params['args'] = args
params['kwargs'] = kwargs
args[0].frontend.info('Hello')
return SimpleStatus(success=True, description="Yay")
monkeypatch.setattr('anaconda_project.project_ops.upload', mock_upload)
return params
def test_upload_command_on_empty_project(capsys, monkeypatch):
_monkeypatch_upload(monkeypatch)
def check(dirname):
code = _parse_args_and_run_subcommand(['anaconda-project', 'upload', '--directory', dirname])
assert code == 0
out, err = capsys.readouterr()
assert 'Hello\nYay\n' == out
assert '' == err
with_directory_contents_completing_project_file(dict(), check)
def test_upload_command_on_invalid_project(capsys):
def check(dirname):
code = _parse_args_and_run_subcommand(['anaconda-project', 'upload', '--directory', dirname])
assert code == 1
out, err = capsys.readouterr()
assert '' == out
assert ('variables section contains wrong value type 42,' + ' should be dict or list of requirements\n' +
'Unable to load the project.\n') in err
with_directory_contents_completing_project_file({DEFAULT_PROJECT_FILENAME: "variables:\n 42"}, check)
def test_upload_command_with_token_and_user(capsys, monkeypatch):
params = _monkeypatch_upload(monkeypatch)
def check(dirname):
code = _parse_args_and_run_subcommand(
['anaconda-project', 'upload', '--directory', dirname, '--user=foo', '--token=bar'])
assert code == 0
out, err = capsys.readouterr()
assert 'Hello\nYay\n' == out
assert '' == err
assert params['kwargs']['token'] == 'bar'
assert params['kwargs']['username'] == 'foo'
with_directory_contents_completing_project_file(dict(), check)
def test_upload_command_with_suffix_zip(capsys, monkeypatch):
params = _monkeypatch_upload(monkeypatch)
def check(dirname):
code = _parse_args_and_run_subcommand(
['anaconda-project', 'upload', '--directory', dirname, '--suffix', '.zip'])
assert code == 0
out, err = capsys.readouterr()
assert 'Hello\nYay\n' == out
assert '' == err
assert params['kwargs']['suffix'] == '.zip'
with_directory_contents_completing_project_file(dict(), check)
def test_upload_command_with_suffix_tarbz2(capsys, monkeypatch):
params = _monkeypatch_upload(monkeypatch)
def check(dirname):
code = _parse_args_and_run_subcommand(
['anaconda-project', 'upload', '--directory', dirname, '--suffix', '.tar.bz2'])
assert code == 0
out, err = capsys.readouterr()
assert 'Hello\nYay\n' == out
assert '' == err
assert params['kwargs']['suffix'] == '.tar.bz2'
with_directory_contents_completing_project_file(dict(), check)
def test_upload_command_with_suffix_targz(capsys, monkeypatch):
params = _monkeypatch_upload(monkeypatch)
def check(dirname):
code = _parse_args_and_run_subcommand(
['anaconda-project', 'upload', '--directory', dirname, '--suffix', '.tar.gz'])
assert code == 0
out, err = capsys.readouterr()
assert 'Hello\nYay\n' == out
assert '' == err
assert params['kwargs']['suffix'] == '.tar.gz'
with_directory_contents_completing_project_file(dict(), check)