New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test on Python 3.9 in CI #10550
Test on Python 3.9 in CI #10550
Conversation
The unit test failure we've been seeing is due to pytest's upgrade from 6.0 to 6.1. There were quite a few changes related to warnings in 6.1, but at this point I'm not sure if what we are observing is a bug or a feature. |
Lots of pytest-related churn lately, I had to pin |
d036a8b
to
0e82ddd
Compare
0e82ddd
to
1618f34
Compare
rebased on |
a9d9e56
to
812f66a
Compare
This is what works: $ git df
diff --git a/ci/environment-test-3.9.yml b/ci/environment-test-3.9.yml
index be5712302..9efcdfb94 100644
--- a/ci/environment-test-3.9.yml
+++ b/ci/environment-test-3.9.yml
@@ -28,19 +28,19 @@ dependencies:
- flaky
- geckodriver
- ipython
- - isort <5.0
+ - isort
- mock
- - mypy <=0.782
+ - mypy
- nbconvert >=5.4
- networkx
- nodejs 14.*
- - numba
+ #- numba
- pandas
- psutil
- pydot
- pygments
- - pytest 6.0*
- - pytest-asyncio=0.12.0
+ - pytest
+ - pytest-asyncio
- pytest-cov >=1.8.1
- pytest-html
- pytest-xdist Essentially we have to fix all the pins and wait for numba. |
812f66a
to
112d119
Compare
Python 3.8 and 3.9 disagree here (same dependencies): ___________________________________________________________ test__exclude_headers ___________________________________________________________
ManagedServerLoop = <function ManagedServerLoop.<locals>.msl at 0x7fd300062b80>
async def test__exclude_headers(ManagedServerLoop) -> None:
application = Application()
with ManagedServerLoop(application, exclude_headers=['Connection', 'Host']) as server:
sessions = server.get_sessions('/')
assert 0 == len(sessions)
response = await http_get(server.io_loop, url(server))
html = response.body
token = extract_token_from_json(html)
payload = get_token_payload(token)
assert 'headers' in payload
> assert payload['headers'] == {'Accept-Encoding': 'gzip'}
E AssertionError: assert {'Accept-Encoding': 'gzip', 'User-Agent': 'Tornado/6.1'} == {'Accept-Encoding': 'gzip'}
E Common items:
E {'Accept-Encoding': 'gzip'}
E Left contains 1 more item:
E {'User-Agent': 'Tornado/6.1'}
E Full diff:
E - {'Accept-Encoding': 'gzip'}
E + {'Accept-Encoding': 'gzip', 'User-Agent': 'Tornado/6.1'}
tests/unit/bokeh/server/test_server__server.py:346: AssertionError |
112d119
to
28db971
Compare
Maybe tornado changed for 3.9? If so could just check less strictly for just the presence of the encoding header |
28db971
to
c502dba
Compare
c502dba
to
faa406b
Compare
With this isort config change:
Then most of the new differences appear to be from isort wanting to add section headers inside functions. I have not foudn a way to disable this and only have headers at the top of a module, so I opened an issue to ask about it here PyCQA/isort#1604 |
@mattpap I guess the one |
@mattpap think the ability to turn off in-function headings will be a future enhancement for isort. Can we not just keep using isort 4.x for now? (pip installing if we have to?) That and skipping the one test would get this passing I think |
@mattpap not sure why mypy suddenly failing. This diff fixes, maybe there is a better fix tho
|
One spurious failure trying to restart but GH Actions is having a service disruption currently |
I restarted multiple times before. I doesn't work and looks like something new. |
Re-running to get logs. Will try to compare package versions tonight, not sure what else it could be (and presumably pytest-asyncio) |
Well, that was like pulling teeth... 🎉 |
No description provided.