test_pip_install fails when two different versions of cffi library are installed

The test tests/integration/test_pip.py::test_pip_install will fail if cffi is a different version than what salt's requirements are installing. When it tries to install PyOpenSSL, which also installs cffi, we see this error:

           "[ERROR   ] stderr: ERROR: pip's dependency resolver does not "                                      
           'currently take into account all the packages that are installed. '                                  
           'This behaviour is the source of the following dependency '
           'conflicts.\n'
           'salt 3002.2-409-g8648d137de requires cffi==1.14.3, but you have '
           'cffi 1.14.4 which is incompatible.\n'
           'salt 3002.2-409-g8648d137de requires cryptography==3.2, but you '
           'have cryptography 3.3.1 which is incompatible.\n'
           'salt 3002.2-409-g8648d137de requires pycparser==2.17, but you have '
           'pycparser 2.20 which is incompatible.\n'
           'Distribution pyopenssl==19-1-0 was not found installed\n'
           '[ERROR   ] retcode: 1\n',

it ends up installing the newer versions of those libraries in pypath and when you run salt you then get this error:

           '  File "cffi/api.py", line 56, in __init__\n'
           "Exception: Version mismatch: this is the 'cffi' package version "
           "1.14.3, located in '/opt/saltstack/salt/run/cffi/api.pyc'.  When "
           "we import the top-level '_cffi_backend' extension module, we get "
           'version 1.14.4, located in '
           "'/opt/saltstack/salt/pypath/_cffi_backend.cpython-37m-x86_64-linux-gnu.so'.  "
           'The two versions should be equal; check your installation.\n',

We think the fix will be editing pytinstallers loader at runtime to use our custom pypath most likely being done in tiamat-pip.

Edited by Shane Lee