[U-Boot] use pytest-3 instead of py.test

Heinrich Schuchardt xypron.glpk at gmx.de
Sun Oct 20 14:43:00 UTC 2019


On 10/20/19 3:22 PM, Tom Rini wrote:
> On Sun, Oct 20, 2019 at 03:21:03PM +0200, Heinrich Schuchardt wrote:
>> On 10/20/19 3:11 PM, Heinrich Schuchardt wrote:
>>> On 10/20/19 2:27 PM, Tom Rini wrote:
>>>> On Sun, Oct 20, 2019 at 08:30:44AM +0200, Heinrich Schuchardt wrote:
>>>>> Hello Tom,
>>>>>
>>>>> I tested with the updated origin/WIP/Update-test.py-tests:
>>>>>
>>>>> $ python3 ./test/py/test.py --bd=qemu-arm64 --build-dir=. -k=test_efi_
>>>>> INTERNALERROR> Traceback (most recent call last):
>>>>> INTERNALERROR>   File
>>>>> "/usr/lib/python2.7/dist-packages/_pytest/main.py", line 180, in
>>>>> wrap_session
>>>>
>>>> Yes, as I was saying on IRC you need to remove the system python-pytest
>>>> and install python3-pytest or switch to a virtualenv setup with
>>>> python=python3 and pip install pytest there.  These, unfortunately, are
>>>> the ways the Python community wants to deal with packaging.
>>>>
>>>
>>> python-pytest and python3-pytest are installed in completely separate
>>> directories, see
>>>
>>> https://packages.debian.org/de/sid/all/python3-pytest/filelist
>>> https://packages.debian.org/de/sid/all/python-pytest/filelist
>>>
>>> python-pytest cannot be invoked by python3.
>>>
>>> So uninstalling python-pytest cannot help to solve the issues that your
>>> patches cause.
>>>
>>> You know that python on most distros will call python2. So if you want
>>> to call python3 do it explicitly.
>>>
>>> virtualenv would only needed if you had different releases of python3
>>> packages that do not fit together.
>>>
>>> Best regards
>>>
>>> Heinrich
>>
>> This is what you are missing:
>>
>> git diff
>> diff --git a/test/py/test.py b/test/py/test.py
>> index 0ce1838833..10f436f99e 100755
>> --- a/test/py/test.py
>> +++ b/test/py/test.py
>> @@ -14,12 +14,12 @@ import sys
>>   # Get rid of argv[0]
>>   sys.argv.pop(0)
>>
>> -# argv; py.test test_directory_name user-supplied-arguments
>> -args = ['py.test', os.path.dirname(__file__) + '/tests']
>> +# argv; pytest-3 test_directory_name user-supplied-arguments
>> +args = ['pytest-3', os.path.dirname(__file__) + '/tests']
>
> Nope, that's a Debian-ism.  pip install pytest doesn't give you anything
> other than "py.test".
>

Confirmed. On Debian I can use

sudo update-alternatives --install \
/usr/bin/py.test pytest /usr/bin/pytest-3 50
sudo update-alternatives --install \
/usr/bin/py.test pytest /usr/bin/pytest 30

to set up the alternatives such that pytest-3 invoked.

With this setting everything works fine now for me.

Best regards

Heinrich


More information about the U-Boot mailing list