@@ -433,7 +433,7 @@ def test_venvs(tempdir_factory, store):
433433 path = make_repo (tempdir_factory , 'python_hooks_repo' )
434434 config = make_config_from_repo (path )
435435 repo = Repository .create (config , store )
436- venv , = repo ._venvs
436+ venv , = repo ._venvs ()
437437 assert venv == (mock .ANY , 'python' , python .get_default_version (), [])
438438
439439
@@ -443,50 +443,33 @@ def test_additional_dependencies(tempdir_factory, store):
443443 config = make_config_from_repo (path )
444444 config ['hooks' ][0 ]['additional_dependencies' ] = ['pep8' ]
445445 repo = Repository .create (config , store )
446- venv , = repo ._venvs
446+ venv , = repo ._venvs ()
447447 assert venv == (mock .ANY , 'python' , python .get_default_version (), ['pep8' ])
448448
449449
450450@pytest .mark .integration
451- def test_additional_dependencies_duplicated (
452- tempdir_factory , store , log_warning_mock ,
453- ):
454- path = make_repo (tempdir_factory , 'ruby_hooks_repo' )
455- config = make_config_from_repo (path )
456- deps = ['thread_safe' , 'tins' , 'thread_safe' ]
457- config ['hooks' ][0 ]['additional_dependencies' ] = deps
458- repo = Repository .create (config , store )
459- venv , = repo ._venvs
460- assert venv == (mock .ANY , 'ruby' , 'default' , ['thread_safe' , 'tins' ])
461-
462-
463- @pytest .mark .integration
464- def test_additional_python_dependencies_installed (tempdir_factory , store ):
451+ def test_additional_dependencies_roll_forward (tempdir_factory , store ):
465452 path = make_repo (tempdir_factory , 'python_hooks_repo' )
466- config = make_config_from_repo (path )
467- config ['hooks' ][0 ]['additional_dependencies' ] = ['mccabe' ]
468- repo = Repository .create (config , store )
469- repo .require_installed ()
470- with python .in_env (repo ._prefix , 'default' ):
471- output = cmd_output ('pip' , 'freeze' , '-l' )[1 ]
472- assert 'mccabe' in output
473453
454+ config1 = make_config_from_repo (path )
455+ repo1 = Repository .create (config1 , store )
456+ repo1 .require_installed ()
457+ (prefix1 , _ , version1 , _ ), = repo1 ._venvs ()
458+ with python .in_env (prefix1 , version1 ):
459+ assert 'mccabe' not in cmd_output ('pip' , 'freeze' , '-l' )[1 ]
474460
475- @pytest .mark .integration
476- def test_additional_dependencies_roll_forward (tempdir_factory , store ):
477- path = make_repo (tempdir_factory , 'python_hooks_repo' )
478- config = make_config_from_repo (path )
479- # Run the repo once without additional_dependencies
480- repo = Repository .create (config , store )
481- repo .require_installed ()
482- # Now run it with additional_dependencies
483- config ['hooks' ][0 ]['additional_dependencies' ] = ['mccabe' ]
484- repo = Repository .create (config , store )
485- repo .require_installed ()
486- # We should see our additional dependency installed
487- with python .in_env (repo ._prefix , 'default' ):
488- output = cmd_output ('pip' , 'freeze' , '-l' )[1 ]
489- assert 'mccabe' in output
461+ # Make another repo with additional dependencies
462+ config2 = make_config_from_repo (path )
463+ config2 ['hooks' ][0 ]['additional_dependencies' ] = ['mccabe' ]
464+ repo2 = Repository .create (config2 , store )
465+ repo2 .require_installed ()
466+ (prefix2 , _ , version2 , _ ), = repo2 ._venvs ()
467+ with python .in_env (prefix2 , version2 ):
468+ assert 'mccabe' in cmd_output ('pip' , 'freeze' , '-l' )[1 ]
469+
470+ # should not have affected original
471+ with python .in_env (prefix1 , version1 ):
472+ assert 'mccabe' not in cmd_output ('pip' , 'freeze' , '-l' )[1 ]
490473
491474
492475@xfailif_windows_no_ruby
@@ -499,7 +482,8 @@ def test_additional_ruby_dependencies_installed(
499482 config ['hooks' ][0 ]['additional_dependencies' ] = ['thread_safe' , 'tins' ]
500483 repo = Repository .create (config , store )
501484 repo .require_installed ()
502- with ruby .in_env (repo ._prefix , 'default' ):
485+ (prefix , _ , version , _ ), = repo ._venvs ()
486+ with ruby .in_env (prefix , version ):
503487 output = cmd_output ('gem' , 'list' , '--local' )[1 ]
504488 assert 'thread_safe' in output
505489 assert 'tins' in output
@@ -516,7 +500,8 @@ def test_additional_node_dependencies_installed(
516500 config ['hooks' ][0 ]['additional_dependencies' ] = ['lodash' ]
517501 repo = Repository .create (config , store )
518502 repo .require_installed ()
519- with node .in_env (repo ._prefix , 'default' ):
503+ (prefix , _ , version , _ ), = repo ._venvs ()
504+ with node .in_env (prefix , version ):
520505 output = cmd_output ('npm' , 'ls' , '-g' )[1 ]
521506 assert 'lodash' in output
522507
@@ -532,7 +517,8 @@ def test_additional_golang_dependencies_installed(
532517 config ['hooks' ][0 ]['additional_dependencies' ] = deps
533518 repo = Repository .create (config , store )
534519 repo .require_installed ()
535- binaries = os .listdir (repo ._prefix .path (
520+ (prefix , _ , _ , _ ), = repo ._venvs ()
521+ binaries = os .listdir (prefix .path (
536522 helpers .environment_dir (golang .ENVIRONMENT_DIR , 'default' ), 'bin' ,
537523 ))
538524 # normalize for windows
@@ -598,8 +584,9 @@ class MyKeyboardInterrupt(KeyboardInterrupt):
598584 repo .run_hook (hook , [])
599585
600586 # Should have made an environment, however this environment is broken!
601- envdir = 'py_env-{}' .format (python .get_default_version ())
602- assert repo ._prefix .exists (envdir )
587+ (prefix , _ , version , _ ), = repo ._venvs ()
588+ envdir = 'py_env-{}' .format (version )
589+ assert prefix .exists (envdir )
603590
604591 # However, it should be perfectly runnable (reinstall after botched
605592 # install)
@@ -616,8 +603,8 @@ def test_invalidated_virtualenv(tempdir_factory, store):
616603
617604 # Simulate breaking of the virtualenv
618605 repo .require_installed ()
619- version = python . get_default_version ()
620- libdir = repo . _prefix .path ('py_env-{}' .format (version ), 'lib' , version )
606+ ( prefix , _ , version , _ ), = repo . _venvs ()
607+ libdir = prefix .path ('py_env-{}' .format (version ), 'lib' , version )
621608 paths = [
622609 os .path .join (libdir , p ) for p in ('site.py' , 'site.pyc' , '__pycache__' )
623610 ]
0 commit comments