def test_init_default_stdout(self): options = argparse.Namespace() command = commands.Command(options) assert command.options == options assert command.stdout == sys.stdout
def test_upload_files(self): options = argparse.Namespace() stdout = StdOutIO() command = commands.Command(options, stdout=stdout) uploader = mock.create_autospec(upload.PackageUploader, host='http://localhost:8000') upload_results = [None, exceptions.PackageConflictError('foo')] def upload_side_effect(*args): result = upload_results.pop() if isinstance(result, Exception): raise result return result uploader.upload.side_effect = upload_side_effect command._upload_files( uploader, ['packages/mock-1.0.1.tar.gz', 'packages/coverage-3.7.1.tar.gz']) stdout.seek(0) assert uploader.upload.call_args_list == [ mock.call('packages/mock-1.0.1.tar.gz'), mock.call('packages/coverage-3.7.1.tar.gz'), ] assert stdout.read() == ( 'Uploading packages to http://localhost:8000\n' 'Uploading packages/mock-1.0.1.tar.gz... already uploaded.\n' 'Uploading packages/coverage-3.7.1.tar.gz... success.\n')
def test_print(self): options = argparse.Namespace() stdout = StdOutIO() command = commands.Command(options, stdout=stdout) command._print('Foo bar\n') command._print('baz\n') stdout.seek(0) assert stdout.read() == 'Foo bar\nbaz\n'
def test_init(self): options = argparse.Namespace(command='requirements', index='internal', requirements_file='requirements.txt') stdout = StdOutIO() command = commands.Command(options, stdout=stdout) assert command.options == options assert command.stdout == stdout
def test_upload_file(self): options = argparse.Namespace() stdout = StdOutIO() command = commands.Command(options, stdout=stdout) uploader = mock.create_autospec(upload.PackageUploader) command._upload_file(uploader, 'mock-1.0.1.tar.gz') stdout.seek(0) assert uploader.upload.call_args == mock.call('mock-1.0.1.tar.gz') assert stdout.read() == 'Uploading mock-1.0.1.tar.gz... success.\n'
def test_get_filenames_for_files_command(self, download_mock): files = [ 'packages/coverage-3.7.1.tar.gz', 'packages/mock-1.0.1.tar.gz', ] options = argparse.Namespace(command='files', files=files) command = commands.Command(options) filenames = command._get_filenames() assert not download_mock.called assert filenames == files
def test_get_filenames_for_requirements_command(self, download_mock): download_return_value = [ 'packages/coverage-3.7.1.tar.gz', 'packages/mock-1.0.1.tar.gz', ] download_mock.return_value = download_return_value options = argparse.Namespace(command='requirements') command = commands.Command(options) filenames = command._get_filenames() assert filenames == download_return_value
def test_make_uploader(self, from_file_mock): from_file_mock.side_effect = exceptions.ConfigFileError options = argparse.Namespace(index='http://localhost:8000', username='******', password='******') command = commands.Command(options) uploader = command._make_uploader() assert uploader.host == 'http://localhost:8000' assert uploader.username == 'foo' assert uploader.password == 'bar'
def test_upload_file_conflict(self): options = argparse.Namespace() stdout = StdOutIO() command = commands.Command(options, stdout=stdout) uploader = mock.create_autospec(upload.PackageUploader) uploader.upload.side_effect = exceptions.PackageConflictError('foo') command._upload_file(uploader, 'mock-1.0.1.tar.gz') stdout.seek(0) assert uploader.upload.call_args == mock.call('mock-1.0.1.tar.gz') assert stdout.read() == ( 'Uploading mock-1.0.1.tar.gz... already uploaded.\n')
def test_download_requirements_file_no_use_wheel(self, download_mock): options = argparse.Namespace(requirements_file='requirements.txt', download_dir=None, no_use_wheel=True) command = commands.Command(options) command._download() assert len(download_mock.call_args_list) == 1 downloader = download_mock.call_args[0][0] expected_call = mock.call(downloader, requirements=None, requirements_file='requirements.txt', no_use_wheel=True) assert download_mock.call_args == expected_call
def test_run(self, make_uploader_mock, get_filenames_mock, upload_files_mock): uploader = mock.create_autospec(upload.PackageUploader) filenames = [ 'packages/coverage-3.7.1.tar.gz', 'packages/mock-1.0.1.tar.gz', ] make_uploader_mock.return_value = uploader get_filenames_mock.return_value = filenames options = argparse.Namespace() command = commands.Command(options) command.run() expected_call = mock.call(command, uploader, filenames) assert make_uploader_mock.called assert get_filenames_mock.called assert upload_files_mock.call_args == expected_call
def test_download_requirements_file(self, download_mock): download_return_value = [ 'packages/coverage-3.7.1.tar.gz', 'packages/mock-1.0.1.tar.gz', ] download_mock.return_value = download_return_value options = argparse.Namespace(download_dir='~/packages', requirements_file='requirements.txt', no_use_wheel=False) command = commands.Command(options) filenames = command._download() assert filenames == download_return_value assert len(download_mock.call_args_list) == 1 downloader = download_mock.call_args[0][0] assert downloader.download_path == '~/packages' expected_call = mock.call(downloader, requirements=None, requirements_file='requirements.txt', no_use_wheel=False) assert download_mock.call_args == expected_call