def test_install_conda_csh(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'etc', 'profile.d', 'conda.csh') result = install_conda_csh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, second_line, third_line, remainder = created_file_contents.split('\n', 3) if on_win: assert first_line == 'setenv CONDA_EXE `cygpath %s`' % join(conda_prefix, 'Scripts', 'conda.exe') assert second_line == 'setenv _CONDA_ROOT `cygpath %s`' % conda_prefix assert third_line == 'setenv _CONDA_EXE `cygpath %s`' % join(conda_prefix, 'Scripts', 'conda.exe') else: assert first_line == 'setenv CONDA_EXE "%s"' % join(conda_prefix, 'bin', 'conda') assert second_line == 'setenv _CONDA_ROOT "%s"' % conda_prefix assert third_line == 'setenv _CONDA_EXE "%s"' % join(conda_prefix, 'bin', 'conda') with open(join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.csh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_csh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_sh(self): with tempdir() as conda_prefix: target_path = join(conda_prefix, 'etc', 'profile.d', 'conda.sh') context.dev = False result = install_conda_sh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() from conda.activate import PosixActivator activator = PosixActivator() line0, line1, line2, line3, _, remainder = created_file_contents.split('\n', 5) assert line0 == "export CONDA_EXE='%s'" % activator.path_conversion(context.conda_exe) assert line1 == "export _CE_M=''" assert line2 == "export _CE_CONDA=''" assert line3.startswith("export CONDA_PYTHON_EXE=") with open(join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.sh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_sh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_fish(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'etc', 'fish', 'conf.d', 'conda.fish') result = install_conda_fish(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, second_line, third_line, remainder = created_file_contents.split( '\n', 3) if on_win: win_conda_exe = join(conda_prefix, 'Scripts', 'conda.exe') assert first_line == 'set -gx CONDA_EXE (cygpath "%s")' % win_conda_exe assert second_line == 'set _CONDA_ROOT (cygpath "%s")' % conda_prefix assert third_line == 'set _CONDA_EXE (cygpath "%s")' % win_conda_exe else: assert first_line == 'set -gx CONDA_EXE "%s"' % join( conda_prefix, 'bin', 'conda') assert second_line == 'set _CONDA_ROOT "%s"' % conda_prefix assert third_line == 'set _CONDA_EXE "%s"' % join( conda_prefix, 'bin', 'conda') with open( join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'fish', 'conf.d', 'conda.fish')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_fish(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_sh(self): with tempdir() as conda_prefix: target_path = join(conda_prefix, 'etc', 'profile.d', 'conda.sh') result = install_conda_sh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() if on_win: first_line, second_line, remainder = created_file_contents.split( '\n', 2) assert first_line == "export CONDA_EXE=\"$(cygpath '%s')\"" % context.conda_exe assert second_line == "export CONDA_BAT=\"%s\"" % join( context.conda_prefix, 'condabin', 'conda.bat') else: first_line, remainder = created_file_contents.split('\n', 1) assert first_line == 'export CONDA_EXE="%s"' % context.conda_exe with open( join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.sh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_sh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_xsh(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'Lib', 'site-packages', 'conda.xsh') result = install_conda_xsh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, remainder = created_file_contents.split('\n', 1) if on_win: assert first_line == 'CONDA_EXE = "%s"' % join( conda_prefix, 'Scripts', 'conda.exe') else: assert first_line == 'CONDA_EXE = "%s"' % join( conda_prefix, 'bin', 'conda') with open(join(CONDA_PACKAGE_ROOT, 'shell', 'conda.xsh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_xsh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_fish(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'etc', 'fish', 'conf.d', 'conda.fish') result = install_conda_fish(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, second_line, third_line, fourth_line, remainder = created_file_contents.split('\n', 4) if on_win: win_conda_exe = join(conda_prefix, 'Scripts', 'conda.exe') win_py_exe = join(conda_prefix, 'python.exe') assert first_line == 'set -gx CONDA_EXE (cygpath "%s")' % win_conda_exe assert second_line == 'set _CONDA_ROOT (cygpath "%s")' % conda_prefix assert third_line == 'set _CONDA_EXE (cygpath "%s")' % win_conda_exe assert fourth_line == 'set -gx CONDA_PYTHON_EXE (cygpath "%s")' % win_py_exe else: assert first_line == 'set -gx CONDA_EXE "%s"' % join(conda_prefix, 'bin', 'conda') assert second_line == 'set _CONDA_ROOT "%s"' % conda_prefix assert third_line == 'set _CONDA_EXE "%s"' % join(conda_prefix, 'bin', 'conda') assert fourth_line == 'set -gx CONDA_PYTHON_EXE "%s"' % join(conda_prefix, 'bin', 'python') with open(join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'fish', 'conf.d', 'conda.fish')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_fish(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_csh(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'etc', 'profile.d', 'conda.csh') result = install_conda_csh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, second_line, third_line, fourth_line, remainder = created_file_contents.split('\n', 4) if on_win: assert first_line == 'setenv CONDA_EXE `cygpath %s`' % join(conda_prefix, 'Scripts', 'conda.exe') assert second_line == 'setenv _CONDA_ROOT `cygpath %s`' % conda_prefix assert third_line == 'setenv _CONDA_EXE `cygpath %s`' % join(conda_prefix, 'Scripts', 'conda.exe') assert fourth_line == 'setenv CONDA_PYTHON_EXE `cygpath %s`' % join(conda_prefix, 'python.exe') else: assert first_line == 'setenv CONDA_EXE "%s"' % join(conda_prefix, 'bin', 'conda') assert second_line == 'setenv _CONDA_ROOT "%s"' % conda_prefix assert third_line == 'setenv _CONDA_EXE "%s"' % join(conda_prefix, 'bin', 'conda') assert fourth_line == 'setenv CONDA_PYTHON_EXE "%s"' % join(conda_prefix, 'bin', 'python') with open(join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.csh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_csh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_sh(self): with tempdir() as conda_prefix: target_path = join(conda_prefix, 'etc', 'profile.d', 'conda.sh') context.dev = False result = install_conda_sh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() if on_win: line0, line1, line2, line3, remainder = created_file_contents.split('\n', 4) assert line0 == "export CONDA_EXE=\"$(cygpath '%s')\"" % context.conda_exe assert line1 == "export _CE_M=-m" assert line2 == "export _CE_CONDA=conda" assert line3 == "export CONDA_BAT=\"%s\"" % join(context.conda_prefix, 'condabin', 'conda.bat') else: line0, line1, line2, _, remainder = created_file_contents.split('\n', 4) assert line0 == "export CONDA_EXE='%s'" % context.conda_exe assert line1 == "export _CE_M=''" assert line2 == "export _CE_CONDA=''" with open(join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.sh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_sh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_init_sh_user_windows(self): with tempdir() as conda_temp_prefix: target_path = join(conda_temp_prefix, '.bashrc') conda_prefix = "c:\\Users\\Lars\\miniconda" cygpath_conda_prefix = "/c/Users/Lars/miniconda" initial_content = dals(""" source /c/conda/Scripts/activate root . $(cygpath 'c:\\conda\\Scripts\\activate') root # >>> conda initialize >>> __conda_setup="$('%(prefix)s/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then fi unset __conda_setup # <<< conda initialize <<< . etc/profile.d/conda.sh . etc/profile.d/coda.sh . /somewhere/etc/profile.d/conda.sh source /etc/profile.d/conda.sh \t source %(prefix)s/etc/profile.d/conda.sh """) % { 'prefix': win_path_ok(abspath(conda_prefix)), } with open(target_path, 'w') as fh: fh.write(initial_content) init_sh_user(target_path, conda_prefix, 'bash') with open(target_path) as fh: new_content = fh.read() print(new_content) expected_new_content = dals(""" # source /c/conda/Scripts/activate root # commented out by conda initialize # . $(cygpath 'c:\\conda\\Scripts\\activate') root # commented out by conda initialize # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! eval "$('%(cygpath_conda_prefix)s/Scripts/conda.exe' 'shell.bash' 'hook')" # <<< conda initialize <<< # . etc/profile.d/conda.sh # commented out by conda initialize . etc/profile.d/coda.sh # . /somewhere/etc/profile.d/conda.sh # commented out by conda initialize # source /etc/profile.d/conda.sh # commented out by conda initialize # source %(prefix)s/etc/profile.d/conda.sh # commented out by conda initialize """) % { 'prefix': win_path_ok(abspath(conda_prefix)), 'cygpath_conda_prefix': cygpath_conda_prefix, } assert new_content == expected_new_content
def test_init_sh_user_windows(self): with tempdir() as conda_temp_prefix: target_path = join(conda_temp_prefix, '.bashrc') conda_prefix = "c:\\Users\\Lars\\miniconda" cygpath_conda_prefix = "/c/Users/Lars/miniconda" initial_content = dals(""" source /c/conda/Scripts/activate root . $(cygpath 'c:\\conda\\Scripts\\activate') root # >>> conda initialize >>> __conda_setup="$('%(prefix)s/bin/conda' shell.bash hook 2> /dev/null)" if [ $? -eq 0 ]; then fi unset __conda_setup # <<< conda initialize <<< . etc/profile.d/conda.sh . etc/profile.d/coda.sh . /somewhere/etc/profile.d/conda.sh source /etc/profile.d/conda.sh \t source %(prefix)s/etc/profile.d/conda.sh """) % { 'prefix': win_path_ok(abspath(conda_prefix)), } with open(target_path, 'w') as fh: fh.write(initial_content) init_sh_user(target_path, conda_prefix, 'bash') with open(target_path) as fh: new_content = fh.read() print(new_content) expected_new_content = dals(""" # source /c/conda/Scripts/activate root # commented out by conda initialize # . $(cygpath 'c:\\conda\\Scripts\\activate') root # commented out by conda initialize # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! eval "$('%(cygpath_conda_prefix)s/Scripts/conda.exe' shell.bash hook)" # <<< conda initialize <<< # . etc/profile.d/conda.sh # commented out by conda initialize . etc/profile.d/coda.sh # . /somewhere/etc/profile.d/conda.sh # commented out by conda initialize # source /etc/profile.d/conda.sh # commented out by conda initialize # source %(prefix)s/etc/profile.d/conda.sh # commented out by conda initialize """) % { 'prefix': win_path_ok(abspath(conda_prefix)), 'cygpath_conda_prefix': cygpath_conda_prefix, } assert new_content == expected_new_content
def test_make_entry_point(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) if on_win: conda_exe_path = join(conda_temp_prefix, 'Scripts', 'conda-script.py') else: conda_exe_path = join(conda_temp_prefix, 'bin', 'conda') result = make_entry_point(conda_exe_path, conda_prefix, 'conda.entry.point', 'run') assert result == Result.MODIFIED with open(conda_exe_path) as fh: ep_contents = fh.read() if on_win: assert ep_contents == dals(""" # -*- coding: utf-8 -*- import sys if __name__ == '__main__': from conda.entry.point import run sys.exit(run()) """) else: assert ep_contents == dals(""" #!%s/bin/python # -*- coding: utf-8 -*- import sys if __name__ == '__main__': from conda.entry.point import run sys.exit(run()) """) % conda_prefix result = make_entry_point(conda_exe_path, conda_prefix, 'conda.entry.point', 'run') assert result == Result.NO_CHANGE
def test_install_condabin_conda_bat(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'condabin', 'conda.bat') result = install_condabin_conda_bat(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() remainder = created_file_contents with open(join(CONDA_PACKAGE_ROOT, 'shell', 'condabin', 'conda.bat')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_condabin_conda_bat(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_init_sh_system(self): with tempdir() as td: target_path = join(td, 'conda.sh') conda_prefix = join(td, 'b', 'c') init_sh_system(target_path, conda_prefix) with open(target_path) as fh: content = fh.read().strip().splitlines() assert content[0] == '# >>> conda initialize >>>' assert content[1] == "# !! Contents within this block are managed by 'conda init' !!" assert content[-1] == '# <<< conda initialize <<<'
def test_install_conda_sh(self): with tempdir() as conda_prefix: target_path = join(conda_prefix, 'etc', 'profile.d', 'conda.sh') context.dev = False result = install_conda_sh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() line0, line1, line2, _, remainder = created_file_contents.split('\n', 4) assert line0 == "export CONDA_EXE='%s'" % context.conda_exe assert line1 == "export _CE_M=''" assert line2 == "export _CE_CONDA=''" with open(join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.sh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_sh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_sh(self): with tempdir() as conda_prefix: target_path = join(conda_prefix, 'etc', 'profile.d', 'conda.sh') result = install_conda_sh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, remainder = created_file_contents.split('\n', 1) if on_win: assert first_line == "export CONDA_EXE=\"$(cygpath '%s')\"" % context.conda_exe else: assert first_line == 'export CONDA_EXE="%s"' % context.conda_exe with open(join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.sh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_sh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_install_conda_xsh(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'Lib', 'site-packages', 'conda.xsh') result = install_conda_xsh(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, remainder = created_file_contents.split('\n', 1) if on_win: assert first_line == 'CONDA_EXE = "%s"' % join(conda_prefix, 'Scripts', 'conda.exe') else: assert first_line == 'CONDA_EXE = "%s"' % join(conda_prefix, 'bin', 'conda') with open(join(CONDA_PACKAGE_ROOT, 'shell', 'conda.xsh')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_xsh(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_init_sh_user_tcsh_unix(self): with tempdir() as conda_temp_prefix: target_path = join(conda_temp_prefix, '.tcshrc') init_sh_user(target_path, conda_temp_prefix, 'tcsh') with open(target_path) as fh: tcshrc_contet = fh.read() conda_csh = "%s/etc/profile.d/conda.csh" % conda_temp_prefix # tcsh/csh doesn't give users the ability to register a function. # Make sure that conda doesn't try to register a function conda_eval_string = "eval \"$__conda_setup\"" assert conda_csh in tcshrc_contet assert conda_eval_string not in tcshrc_contet
def test_install_conda_bat(self): with tempdir() as conda_temp_prefix: conda_prefix = abspath(sys.prefix) target_path = join(conda_temp_prefix, 'Library', 'bin', 'conda.bat') result = install_conda_bat(target_path, conda_prefix) assert result == Result.MODIFIED with open(target_path) as fh: created_file_contents = fh.read() first_line, remainder = created_file_contents.split('\n', 1) assert first_line == '@SET "_CONDA_EXE=%s"' % join( conda_prefix, 'Scripts', 'conda.exe') with open( join(CONDA_PACKAGE_ROOT, 'shell', 'Library', 'bin', 'conda.bat')) as fh: original_contents = fh.read() assert remainder == original_contents result = install_conda_bat(target_path, conda_prefix) assert result == Result.NO_CHANGE
def test_init_sh_user_unix(self): with tempdir() as conda_temp_prefix: target_path = join(conda_temp_prefix, '.bashrc') initial_content = dals(""" export PATH="/some/other/conda/bin:$PATH" export PATH="%(prefix)s/bin:$PATH" export PATH="%(prefix)s/bin:$PATH" # >>> conda initialize >>> __conda_setup="$('%(prefix)s/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then fi unset __conda_setup # <<< conda initialize <<< . etc/profile.d/conda.sh . etc/profile.d/coda.sh . /somewhere/etc/profile.d/conda.sh source /etc/profile.d/conda.sh \t source %(prefix)s/etc/profile.d/conda.sh """) % { 'prefix': win_path_backout(abspath(conda_temp_prefix)), } with open(target_path, 'w') as fh: fh.write(initial_content) init_sh_user(target_path, conda_temp_prefix, 'bash') with open(target_path) as fh: new_content = fh.read() expected_new_content = dals(""" export PATH="/some/other/conda/bin:$PATH" # export PATH="%(prefix)s/bin:$PATH" # commented out by conda initialize # export PATH="%(prefix)s/bin:$PATH" # commented out by conda initialize # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('%(prefix)s/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "%(prefix)s/etc/profile.d/conda.sh" ]; then . "%(prefix)s/etc/profile.d/conda.sh" else export PATH="%(prefix)s/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<< # . etc/profile.d/conda.sh # commented out by conda initialize . etc/profile.d/coda.sh # . /somewhere/etc/profile.d/conda.sh # commented out by conda initialize # source /etc/profile.d/conda.sh # commented out by conda initialize # source %(prefix)s/etc/profile.d/conda.sh # commented out by conda initialize """) % { 'prefix': win_path_backout(abspath(conda_temp_prefix)), } print(new_content) assert new_content == expected_new_content expected_reversed_content = dals(""" export PATH="/some/other/conda/bin:$PATH" export PATH="%(prefix)s/bin:$PATH" export PATH="%(prefix)s/bin:$PATH" . etc/profile.d/conda.sh . etc/profile.d/coda.sh . /somewhere/etc/profile.d/conda.sh source /etc/profile.d/conda.sh source %(prefix)s/etc/profile.d/conda.sh """) % { 'prefix': win_path_backout(abspath(conda_temp_prefix)), } init_sh_user(target_path, conda_temp_prefix, 'bash', reverse=True) with open(target_path) as fh: reversed_content = fh.read() print(reversed_content) assert reversed_content == expected_reversed_content