diff --git a/conda-solver-tests/basic.yaml b/conda-solver-tests/basic.yaml index f477e06..626c1e2 100644 --- a/conda-solver-tests/basic.yaml +++ b/conda-solver-tests/basic.yaml @@ -1249,6 +1249,198 @@ tests: link_precs: - channel-4/${{ arch }}::flask-0.12.2-py36hb24657c_0 + - name: test_freeze_deps_1_1 + id: B046 + provenance: tests/core/test_solve.py::test_freeze_deps_1::1 + kind: solve + description: "Installs six=1.7 into an empty env. This establishes the baseline prefix (final_state_1) used by all subsequent steps." + input: + channels: channel-2 + specs_to_add: six=1.7 + output: + final_state: + - channel-2/${{ arch }}::openssl-1.0.2l-0 + - channel-2/${{ arch }}::readline-6.2-2 + - channel-2/${{ arch }}::sqlite-3.13.0-0 + - channel-2/${{ arch }}::tk-8.5.18-0 + - channel-2/${{ arch }}::xz-5.2.3-0 + - channel-2/${{ arch }}::zlib-1.2.11-0 + - channel-2/${{ arch }}::python-3.4.5-0 + - channel-2/${{ arch }}::six-1.7.3-py34_0 + + - name: test_freeze_deps_1_2 + id: B047 + provenance: tests/core/test_solve.py::test_freeze_deps_1::2 + kind: solve_for_diff + description: "Adds bokeh to the prefix. six stays at 1.7 because it's pinned by the history spec. Python stays at 3.4, so we get bokeh 0.12.4 (not 0.12.5)." + input: + channels: channel-2 + specs_to_add: bokeh + prefix: + - channel-2/${{ arch }}::openssl-1.0.2l-0 + - channel-2/${{ arch }}::readline-6.2-2 + - channel-2/${{ arch }}::sqlite-3.13.0-0 + - channel-2/${{ arch }}::tk-8.5.18-0 + - channel-2/${{ arch }}::xz-5.2.3-0 + - channel-2/${{ arch }}::zlib-1.2.11-0 + - channel-2/${{ arch }}::python-3.4.5-0 + - channel-2/${{ arch }}::six-1.7.3-py34_0 + history_specs: six=1.7 + output: + unlink_precs: [] + link_precs: + - channel-2/${{ arch }}::mkl-2017.0.3-0 + - channel-2/${{ arch }}::yaml-0.1.6-0 + - channel-2/${{ arch }}::backports_abc-0.5-py34_0 + - channel-2/${{ arch }}::markupsafe-1.0-py34_0 + - channel-2/${{ arch }}::numpy-1.13.0-py34_0 + - channel-2/${{ arch }}::pyyaml-3.12-py34_0 + - channel-2/${{ arch }}::requests-2.14.2-py34_0 + - channel-2/${{ arch }}::setuptools-27.2.0-py34_0 + - channel-2/${{ arch }}::jinja2-2.9.6-py34_0 + - channel-2/${{ arch }}::python-dateutil-2.6.1-py34_0 + - channel-2/${{ arch }}::tornado-4.4.2-py34_0 + - channel-2/${{ arch }}::bokeh-0.12.4-py34_0 + + - name: test_freeze_deps_1_3 + id: B048 + provenance: tests/core/test_solve.py::test_freeze_deps_1::3 + kind: solve_for_diff + description: "Here we get bokeh=0.12.4 instead of 0.12.5 because we have python=3.4" + input: + channels: channel-2 + specs_to_add: bokeh + prefix: + - channel-2/${{ arch }}::openssl-1.0.2l-0 + - channel-2/${{ arch }}::readline-6.2-2 + - channel-2/${{ arch }}::sqlite-3.13.0-0 + - channel-2/${{ arch }}::tk-8.5.18-0 + - channel-2/${{ arch }}::xz-5.2.3-0 + - channel-2/${{ arch }}::zlib-1.2.11-0 + - channel-2/${{ arch }}::python-3.4.5-0 + - channel-2/${{ arch }}::six-1.7.3-py34_0 + history_specs: + - six=1.7 + - python=3.4 + output: + unlink_precs: [] + link_precs: + - channel-2/${{ arch }}::mkl-2017.0.3-0 + - channel-2/${{ arch }}::yaml-0.1.6-0 + - channel-2/${{ arch }}::backports_abc-0.5-py34_0 + - channel-2/${{ arch }}::markupsafe-1.0-py34_0 + - channel-2/${{ arch }}::numpy-1.13.0-py34_0 + - channel-2/${{ arch }}::pyyaml-3.12-py34_0 + - channel-2/${{ arch }}::requests-2.14.2-py34_0 + - channel-2/${{ arch }}::setuptools-27.2.0-py34_0 + - channel-2/${{ arch }}::jinja2-2.9.6-py34_0 + - channel-2/${{ arch }}::python-dateutil-2.6.1-py34_0 + - channel-2/${{ arch }}::tornado-4.4.2-py34_0 + - channel-2/${{ arch }}::bokeh-0.12.4-py34_0 + + - name: test_freeze_deps_1_4 + id: B049 + provenance: tests/core/test_solve.py::test_freeze_deps_1::4 + kind: unsatisfiable + description: "Here we get unsatisfiability because bokeh=0.12.5 is not compatible with python=3.4" + input: + channels: channel-2 + specs_to_add: bokeh=0.12.5 + prefix: + - channel-2/${{ arch }}::openssl-1.0.2l-0 + - channel-2/${{ arch }}::readline-6.2-2 + - channel-2/${{ arch }}::sqlite-3.13.0-0 + - channel-2/${{ arch }}::tk-8.5.18-0 + - channel-2/${{ arch }}::xz-5.2.3-0 + - channel-2/${{ arch }}::zlib-1.2.11-0 + - channel-2/${{ arch }}::python-3.4.5-0 + - channel-2/${{ arch }}::six-1.7.3-py34_0 + history_specs: + - six=1.7 + - python=3.4 + error: + exception: UnsatisfiableError + entries: [] + + - name: test_freeze_deps_1_5 + id: B050 + provenance: tests/core/test_solve.py::test_freeze_deps_1::5 + kind: solve_for_diff + description: | + Now adding the explicit python spec allows conda to change the python version. One possible outcome + is that this updates to python 3.6. That is not desirable because of the explicit "six=1.7" request + in the history. It should only neuter that spec if there's no way to solve it with that spec. + input: + channels: channel-2 + specs_to_add: + - bokeh=0.12.5 + - python + prefix: + - channel-2/${{ arch }}::openssl-1.0.2l-0 + - channel-2/${{ arch }}::readline-6.2-2 + - channel-2/${{ arch }}::sqlite-3.13.0-0 + - channel-2/${{ arch }}::tk-8.5.18-0 + - channel-2/${{ arch }}::xz-5.2.3-0 + - channel-2/${{ arch }}::zlib-1.2.11-0 + - channel-2/${{ arch }}::python-3.4.5-0 + - channel-2/${{ arch }}::six-1.7.3-py34_0 + history_specs: + - six=1.7 + - python=3.4 + output: + unlink_precs: + - channel-2/${{ arch }}::six-1.7.3-py34_0 + - channel-2/${{ arch }}::python-3.4.5-0 + - channel-2/${{ arch }}::xz-5.2.3-0 + link_precs: + - channel-2/${{ arch }}::mkl-2017.0.3-0 + - channel-2/${{ arch }}::yaml-0.1.6-0 + - channel-2/${{ arch }}::python-2.7.13-0 + - channel-2/${{ arch }}::backports-1.0-py27_0 + - channel-2/${{ arch }}::backports_abc-0.5-py27_0 + - channel-2/${{ arch }}::certifi-2016.2.28-py27_0 + - channel-2/${{ arch }}::futures-3.1.1-py27_0 + - channel-2/${{ arch }}::markupsafe-1.0-py27_0 + - channel-2/${{ arch }}::numpy-1.13.1-py27_0 + - channel-2/${{ arch }}::pyyaml-3.12-py27_0 + - channel-2/${{ arch }}::requests-2.14.2-py27_0 + - channel-2/${{ arch }}::six-1.7.3-py27_0 + - channel-2/${{ arch }}::python-dateutil-2.6.1-py27_0 + - channel-2/${{ arch }}::setuptools-36.4.0-py27_1 + - channel-2/${{ arch }}::singledispatch-3.4.0.3-py27_0 + - channel-2/${{ arch }}::ssl_match_hostname-3.5.0.1-py27_0 + - channel-2/${{ arch }}::jinja2-2.9.6-py27_0 + - channel-2/${{ arch }}::tornado-4.5.2-py27_0 + - channel-2/${{ arch }}::bokeh-0.12.5-py27_1 + + - name: test_freeze_deps_1_6 + id: B051 + provenance: tests/core/test_solve.py::test_freeze_deps_1::6 + kind: unsatisfiable + description: >- + Same as B049 but with update_modifier set to freeze_installed. With frozen + installed packages, conda cannot downgrade python from 3.4 to 2.7, so + bokeh=0.12.5 (which requires python<3.0) is unsatisfiable. + input: + channels: channel-2 + specs_to_add: bokeh=0.12.5 + prefix: + - channel-2/${{ arch }}::openssl-1.0.2l-0 + - channel-2/${{ arch }}::readline-6.2-2 + - channel-2/${{ arch }}::sqlite-3.13.0-0 + - channel-2/${{ arch }}::tk-8.5.18-0 + - channel-2/${{ arch }}::xz-5.2.3-0 + - channel-2/${{ arch }}::zlib-1.2.11-0 + - channel-2/${{ arch }}::python-3.4.5-0 + - channel-2/${{ arch }}::six-1.7.3-py34_0 + history_specs: + - six=1.7 + - python=3.4 + update_modifier: freeze_installed + error: + exception: UnsatisfiableError + entries: [] + - name: test_update_deps_2_3 id: B035 provenance: tests/core/test_solve.py::test_update_deps_2::3