νκ²½
κΈ°μ
λλμ΄ # 7810 μμ
λμ, λ΄κ° μ¬μ©ν λ λ°κ²¬ script.pip("freeze")
μ use_module
λ‘ True
λμ κΈ°λ³Έ λμ, κ·Έκ²μ λͺ¨λ ν¨ν€μ§ λͺ©λ‘μ νμνμ§ μμ΅λλ€ use_module
λ₯Ό False
λ‘ λͺ
μ μ μΌλ‘ μ§μ νλ©΄ κ·Έλ κ²λ©λλ€.
μ°¨μ΄μ μ λͺ
λ Ήμ΄ νΈμΆλλ λ°©μμ΄λΌλ κ²μ μμμ΅λλ€. use_module=True
μμλ python -m pip freeze
λ‘ νΈμΆλκ³ use_module=False
μμλ pip freeze
λ‘ νΈμΆλ©λλ€.
μμλλ νλ
λ κ°μ§ λ°©λ² λͺ¨λ ν¨ν€μ§ λͺ©λ‘μ νμν΄μΌν©λλ€.
μ¬ν λ°©λ²
μ΄ λμμ νμΈνκΈ° μν΄ ν
μ€νΈλ₯Ό μμ±ν μ μμ΅λλ€.
def test_pip_script(script):
assert script.pip("freeze").stdout == script.pip("freeze", use_module=False).stdout
μ°μΆ
___________________________________________________ test_pip_script ___________________________________________________
[gw4] linux -- Python 3.6.9 /home/gutsytechster/Documents/Projects/Open-Source-Projects/pip/.tox/py36/bin/python
script = <tests.lib.PipTestEnvironment object at 0x7f696adfc8d0>
def test_pip_script(script):
> assert script.pip("freeze").stdout == script.pip("freeze", use_module=False).stdout
E AssertionError: assert '' == 'apipkg==1.5\natomicwrites==...zeug==0.16.0\nzipp==3.0.0\n'
E + apipkg==1.5
E + atomicwrites==1.3.0
E + attrs==19.3.0
E + cffi==1.14.0
E + coverage==5.0.3
E + cryptography==2.8
E + csv23==0.1.6
E + execnet==1.7.1
E + freezegun==0.3.15
E + importlib-metadata==1.5.0
E + mock==4.0.1
E + more-itertools==8.2.0
E + pluggy==0.13.1
E + pretend==1.0.9
E + py==1.8.1
E + pycparser==2.19
E + pytest==3.8.2
E + pytest-cov==2.8.1
E + pytest-forked==1.1.3
E + pytest-rerunfailures==6.0
E + pytest-timeout==1.3.4
E + pytest-xdist==1.27.0
E + python-dateutil==2.8.1
E + PyYAML==5.3
E + scripttest==1.3
E + six==1.14.0
E + virtualenv==16.7.10
E + Werkzeug==0.16.0
E + zipp==3.0.0
μλ‘μ΄ λ¬Έμ λ₯Ό μ μΆν΄ μ£Όμ μ κ°μ¬ν©λλ€!
λ΄ μ΄κΈ° μλ΅μ https://github.com/pypa/pip/pull/7810#issuecomment-599191853μ λλ€. μ¬κΈ°μμ νμ μ‘°μΉλ₯Ό μ·¨νμμμ€. :)
μ μνλ―μ΄ https://github.com/pypa/pip/pull/7810#issuecomment -599191853μμ ν μ€νΈλ₯Ό μμ±νμ΅λλ€. κ·Έλ¬λ λ€μ stdoutμΌλ‘ μ€ν¨ν©λλ€.
====================================================== FAILURES =======================================================
___________________________________________________ test_pip_script ___________________________________________________
[gw3] linux -- Python 3.6.9 /home/gutsytechster/Documents/Projects/Open-Source-Projects/pip/.tox/py36/bin/python
script = <tests.lib.PipTestEnvironment object at 0x7fc79f3b5208>
def test_pip_script(script):
r1 = script.pip("--version")
r2 = script.pip("--version", use_module=False)
> assert r1.stdout == r2.stdout
E AssertionError: assert 'pip 20.1.dev...python 3.6)\n' == 'pip 20.1.dev0...python 3.6)\n'
E - pip 20.1.dev0 from /tmp/pytest-of-gutsytechster/pytest-0/popen-gw3/pip0/pip/src/pip (python 3.6)
E + pip 20.1.dev0 from /home/gutsytechster/Documents/Projects/Open-Source-Projects/pip/.tox/py36/lib/python3.6/site-packages/pip (python 3.6)
μμ. κ·Έκ²μ μλ―Έκ° μμ΅λλ€-use_moduleμ ꡬν ν μ¬λμ μ¬κΈ°μμ λμμ€λ₯Ό κ³ λ €νμ§ μμμ΅λλ€. :)
PipTestEnvironment PATH
pip
μ΄ (κ°) μ¬λ°λ₯Έ ν
μ€νΈ λμ νλͺ©μ΄ μλλλ€. TBHκ° λ¬΄μμΈμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. use_module = Falseλ₯Ό μ¬μ©ν λ μ€ν νμΌμ μ 체 μ λ κ²½λ‘λ₯Ό μ»μ μ μμ΅λκΉ?
μ¬κΈ°μ https://github.com/pypa/pip/blob/master/tests/lib/__init__.py#L475 , μ¬κΈ°μ ν
μ€νΈ νκ²½μ λν PATH
μ΄ μ€μ λμ΄ μμ΅λκΉ?
κ·ΈλμΌν©λλ€. 격리 κ³ μ λ¬Όμμμ μλ μμΌλ―λ‘ μ΄ν΄λ³Ό κ°μΉκ° μμ΅λλ€.
κ°μ νκ²½μ Scripts
ν΄λμ pip μ€ν νμΌμ΄ μκΈ° λλ¬Έμ΄λΌλ κ²μ μμμ΅λλ€.
λ°λΌμ https://github.com/pypa/pip/blob/c7bde5bf88c70ac3f807db7d9e7d19745bc0a2e0/tests/lib/__init__.py#L619 μμ python [...]/src/pip
λ₯Ό μ€νν μ μμ΅λλ€.
[...]/src/pip
λ https://github.com/pypa/pip/blob/c7bde5bf88c70ac3f807db7d9e7d19745bc0a2e0/tests/conftest.py#L285μ μ μ λ μ λ κ²½λ‘λ₯Ό μλ―Έν©λλ€.
μ΄κ²μ΄ μ ννμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. κ·Έλ¬λ μ΄κ²μ λ²κ·Έλ₯Ό κ³ μΉ μ μμ΅λλ€.
κ·Έλ¦¬κ³ https://github.com/pypa/pip/blob/c7bde5bf88c70ac3f807db7d9e7d19745bc0a2e0/tests/conftest.py#L294 μμλ "python"μΌλ‘ μμνλ νμΌμ μ μΈνκ³ venv.bin
(Scripts ν΄λ)μ λͺ¨λ νμΌμ μ κ±°ν©λλ€. λλ "libpy", μ¬λ°°μΉ λΆκ°λ₯μ΄λ 무μμ μλ―Έν©λκΉ?