Re: [U-Boot] pytests: TypeError: 'encoding' is an invalid keyword argument for this function

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

On Sun, Oct 20, 2019 at 03:11:43PM +0200, 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.
Unfortunately it looks like calling it "py.test-3" is not a standard feature of the pytest package and again, unfortunately it doesn't matter what python you use to invoke "test.py" because it's just a wrapper to the py.test app. I found all of this out as part of the series because test.py uses python3 not python2 and I wasn't sure why python2 was being invoked. It turned out to be py.test itself. So yes, python2's pytest package will need to be removed from the host or a virtualenv used.

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'] args.extend(sys.argv)
try: - os.execvp('py.test', args) + os.execvp('pytest-3', args) except: # Log full details of any exception for detailed analysis import traceback @@ -27,6 +27,6 @@ except: # Hint to the user that they likely simply haven't installed the required # dependencies. print(''' -exec(py.test) failed; perhaps you are missing some dependencies? +exec(pytest-3) failed; perhaps you are missing some dependencies? See test/py/README.md for the list.''', file=sys.stderr) sys.exit(1)
Best regards
Heinrich

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".

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
participants (2)
-
Heinrich Schuchardt
-
Tom Rini