From 661791dcb7eedbc6e4f929fcbb0f18973c77d06b Mon Sep 17 00:00:00 2001 From: Lujeni Date: Fri, 14 Jul 2017 11:54:04 +0200 Subject: [PATCH] Fix the editable condition into pip module (#19028) (#19688) * Fix the editable condition into pip module (#19028) * Add editable to tests Default changed to False, so now editable: True is needed explicitly in tests --- lib/ansible/modules/packaging/language/pip.py | 23 +++++++------------ test/integration/targets/pip/tasks/pip.yml | 14 ++++++----- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/lib/ansible/modules/packaging/language/pip.py b/lib/ansible/modules/packaging/language/pip.py index fc0dab40885..0af800bd2c4 100644 --- a/lib/ansible/modules/packaging/language/pip.py +++ b/lib/ansible/modules/packaging/language/pip.py @@ -104,9 +104,9 @@ options: version_added: "1.0" editable: description: - - Pass the editable flag for versioning URLs. + - Pass the editable flag. required: false - default: yes + default: false version_added: "2.0" chdir: description: @@ -161,10 +161,9 @@ EXAMPLES = ''' - pip: name: svn+http://myrepo/svn/MyApp#egg=MyApp -# Install MyApp using one of the remote protocols (bzr+,hg+,git+) in a non editable way. +# Install MyApp using one of the remote protocols (bzr+,hg+,git+). - pip: name: git+http://myrepo/app/MyApp - editable: false # Install (MyApp) from local tarball - pip: @@ -401,7 +400,7 @@ def main(): virtualenv_python=dict(type='str'), use_mirrors=dict(default=True, type='bool'), extra_args=dict(), - editable=dict(default=True, type='bool'), + editable=dict(default=False, type='bool'), chdir=dict(type='path'), executable=dict(type='path'), umask=dict(), @@ -511,7 +510,7 @@ def main(): has_vcs = True break - if has_vcs and module.params['editable']: + if module.params['editable']: args_list = [] # used if extra_args is not used at all if extra_args: args_list = extra_args.split(' ') @@ -533,8 +532,6 @@ def main(): if module.check_mode: if extra_args or requirements or state == 'latest' or not name: module.exit_json(changed=True) - elif has_vcs: - module.exit_json(changed=True) pkg_cmd, out_pip, err_pip = _get_packages(module, pip, chdir) @@ -563,10 +560,9 @@ def main(): break module.exit_json(changed=changed, cmd=pkg_cmd, stdout=out, stderr=err) + out_freeze_before = None if requirements or has_vcs: _, out_freeze_before, _ = _get_packages(module, pip, chdir) - else: - out_freeze_before = None rc, out_pip, err_pip = module.run_command(cmd, path_prefix=path_prefix, cwd=chdir) out += out_pip @@ -583,11 +579,8 @@ def main(): if out_freeze_before is None: changed = 'Successfully installed' in out_pip else: - if out_freeze_before is None: - changed = 'Successfully installed' in out_pip - else: - _, out_freeze_after, _ = _get_packages(module, pip, chdir) - changed = out_freeze_before != out_freeze_after + _, out_freeze_after, _ = _get_packages(module, pip, chdir) + changed = out_freeze_before != out_freeze_after module.exit_json(changed=changed, cmd=cmd, name=name, version=version, state=state, requirements=requirements, virtualenv=env, diff --git a/test/integration/targets/pip/tasks/pip.yml b/test/integration/targets/pip/tasks/pip.yml index b6df5ec297a..fe7c7da0804 100644 --- a/test/integration/targets/pip/tasks/pip.yml +++ b/test/integration/targets/pip/tasks/pip.yml @@ -80,7 +80,7 @@ # Test virtualenv installations -- name: make sure the test env doesn't exist +- name: "make sure the test env doesn't exist" file: state=absent name={{ output_dir }}/pipenv - name: install a working version of setuptools in the virtualenv @@ -100,22 +100,24 @@ that: - "req_installed.changed" -- name: repeat installation to check status didn't change +- name: "repeat installation to check status didn't change" pip: requirements={{ output_dir}}/pipreq.txt virtualenv={{ output_dir }}/pipenv register: req_installed -- name: check that a change didn't occurr this time (bug ansible#1705) +- name: "check that a change didn't occurr this time (bug ansible#1705)" assert: that: - "not req_installed.changed" - name: install the same module from url - pip: name="git+https://github.com/dvarrazzo/pyiso8601#egg=pyiso8601" - virtualenv={{ output_dir }}/pipenv + pip: + name: "git+https://github.com/dvarrazzo/pyiso8601#egg=pyiso8601" + virtualenv: "{{ output_dir }}/pipenv" + editable: True register: url_installed -- name: check that a change didn't occurr (bug ansible-modules-core#1645) +- name: "check that a change didn't occurr (bug ansible-modules-core#1645)" assert: that: - "not url_installed.changed"