Are there any known flaky tests in the pex integra...
# development
e
Are there any known flaky tests in the pex integration test suite @enough-analyst-54434 ? updated some seemingly unrelated stuff and now getting an integration test failures in my PR’s CI run
e
Nope, nothing known saving for network flakes. Those should be "transparent" - may take looking at failure log really closely though to spot the net error.
e
seems totally possible this is a network flake acutally because its downloading a sdist from github to build
e
So this is a known issue in Pip 20.3.4 from your PyPI shard:
Copy code
/home/runner/work/pex/pex/pex/resolve/pep_691/fingerprint_service.py:118: PEXWarning: Failed to read fingerprints from the cache, continuing to fetch them via the PEP-691 JSON API instead: database schema has changed
And that is a flake that retry works against. They have some CDN issue IIRC...
Oh wait, that's different...
Yeah. nmm on that one, just a warning line.
e
so afiact this test that is broken on my branch is also broken on main
Copy code
b21dec0 (HEAD -> main, origin/main, origin/HEAD) Fail on atomic_directory work_dir collision. (#1905)

$ python3 -m tox -e py38-integration -- -k test_build_sdist_pyproject_toml
py38-integration inst-nodeps: /Users/hfuller/workspace/pex/.tox/.tmp/package/1/pex-2.1.104.tar.gz
py38-integration installed: WARNING: Ignoring invalid distribution -ex (/Users/hfuller/workspace/pex/.tox/py38-integration/lib/python3.8/site-packages),ansicolors==1.1.8,attrs==21.4.0,execnet==1.9.0,iniconfig==1.1.1,packaging==21.3,pex @ file:///Users/hfuller/workspace/pex/.tox/.tmp/package/1/pex-2.1.104.tar.gz,pkginfo==1.7.0,pluggy==1.0.0,py==1.11.0,pyparsing==3.0.9,pytest==6.2.5,pytest-forked==1.4.0,pytest-xdist==1.34.0,six==1.16.0,toml==0.10.2
py38-integration run-test-pre: PYTHONHASHSEED='2296296043'
py38-integration run-test: commands[0] | python scripts/print_env.py
Test Control Environment Variables:
PYTHONUNBUFFERED=1
py38-integration run-test: commands[1] | pytest -n auto tests/integration -k test_build_sdist_pyproject_toml
============================================================================================= test session starts ==============================================================================================
platform darwin -- Python 3.8.9, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
cachedir: .tox/py38-integration/.pytest_cache
rootdir: /Users/hfuller/workspace/pex
plugins: forked-1.4.0, xdist-1.34.0
gw0 [1] / gw1 [1] / gw2 [1] / gw3 [1] / gw4 [1] / gw5 [1] / gw6 [1] / gw7 [1] / gw8 [1] / gw9 [1] / gw10 [1] / gw11 [1] / gw12 [1] / gw13 [1] / gw14 [1] / gw15 [1]
F                                                                                                                                                                                                        [100%]
=================================================================================================== FAILURES ===================================================================================================
_______________________________________________________________________________________ test_build_sdist_pyproject_toml ________________________________________________________________________________________
[gw0] darwin -- Python 3.8.9 /Users/hfuller/workspace/pex/.tox/py38-integration/bin/python

tmpdir = local('/private/var/folders/3s/kz1q_t_52gb578z5gbcp3mk00000gp/T/pytest-of-hfuller/pytest-41/popen-gw0/test_build_sdist_pyproject_tom0'), clone = <function clone.<locals>._clone at 0x10732ee50>

    @pytest.mark.skipif(
        PY_VER < (3, 7), reason="This version of Poetry only supports Python 3.7 and greater."
    )
    def test_build_sdist_pyproject_toml(
        tmpdir,  # type: Any
        clone,  # type: Callable[[str, str], str]
    ):
        # type: (...) -> None
    
        # The Poetry backend is important to supprt and the Poetry project dogfoods itself in its build.
        project_dir = clone(
            "<https://github.com/python-poetry/poetry>",
            "8cb3aab3d0eaf5a25b3cf57e0cfc633231774524",
        )
>       assert_build_sdist(project_dir, "poetry", "1.2.0-beta.2.dev0", tmpdir)

tests/integration/build_system/test_pep_517.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

project_dir = '/private/var/folders/3s/kz1q_t_52gb578z5gbcp3mk00000gp/T/pytest-of-hfuller/pytest-41/popen-gw0/test_build_sdist_pyproject_tom0/project', project_name = 'poetry', version = '1.2.0-beta.2.dev0'
tmpdir = local('/private/var/folders/3s/kz1q_t_52gb578z5gbcp3mk00000gp/T/pytest-of-hfuller/pytest-41/popen-gw0/test_build_sdist_pyproject_tom0')

    def assert_build_sdist(
        project_dir,  # type: str
        project_name,  # type: str
        version,  # type: str
        tmpdir,  # type: Any
    ):
        # type: (...) -> None
    
        def assert_expected_dist(dist):
            # type: (Distribution) -> None
            assert ProjectName(project_name) == dist.metadata.project_name
            assert Version(version) == dist.metadata.version
    
        sdist_dir = os.path.join(str(tmpdir), "sdist_dir")
    
        # This test utility is used by all versions of Python Pex supports; so we need to use the
        # vendored Pip which is guaranteed to work with all those Python versions.
        pip_version = PipVersion.VENDORED
    
        location = build_sdist(
            project_dir,
            sdist_dir,
            pip_version,
            ConfiguredResolver(PipConfiguration(version=pip_version)),
        )
>       assert not isinstance(location, Error)
E       AssertionError

pex/build_system/testing.py:49: AssertionError
--------------------------------------------------------------------------------------------- Captured stderr call ---------------------------------------------------------------------------------------------
Cloning into '/private/var/folders/3s/kz1q_t_52gb578z5gbcp3mk00000gp/T/pytest-of-hfuller/pytest-41/popen-gw0/test_build_sdist_pyproject_tom0/project'...
HEAD is now at 8cb3aab3 config: allow bool values for repo cert
=========================================================================================== short test summary info ============================================================================================
FAILED tests/integration/build_system/test_pep_517.py::test_build_sdist_pyproject_toml - AssertionError
============================================================================================== 1 failed in 20.57s ==============================================================================================
ERROR: InvocationError for command /Users/hfuller/workspace/pex/.tox/py38-integration/bin/pytest -n auto tests/integration -k test_build_sdist_pyproject_toml (exited with code 1)
___________________________________________________________________________________________________ summary ____________________________________________________________________________________________________
ERROR:   py38-integration: commands failed
looks like maybe a floating version of poetry-core broke something in the sdist build…im not exactly sure
okay yeah bumping the poetry version fixed it.
e