Skip to content
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

v3 master merge #736

Merged
merged 28 commits into from
Oct 21, 2021
Merged

v3 master merge #736

merged 28 commits into from
Oct 21, 2021

Conversation

mattbennett
Copy link
Member

Merges master into the v3 branch and resolves all the conflicts. This will make the v3 branch mergeable back into master again, when we're finally ready to come out of pre-release.

Trojan295 and others added 28 commits April 4, 2019 10:45
* add timeout parameter to entrypoint_hook

* add tests for entrypoint_hook timeout

* make the test pass

* fix linting issue

* remove pytest_cache files

* remove return statement
* exchange auto_delete has been deprecated

* ignore DeprecationWarning in kombu.mixins since we can't avoid it

* fix syntax

* remove brittle assertions on error messages

* remove one more brittle assertion

* we do not want to always show DeprecationWarnings

* filterwarnings config not required now we revert to default behaviour

* use pytest.deprecated_call
instead of patching warnings or forcing warnings to always show

* use ignorewarnings to hide warnings we're intentionally triggering

* remove unused imports

* upgrade pytest for filterwarnings support
ensure runpytest options are all strings

* latest pytest requires silencing DeprecationWarnings too
ignore kombu.mixins DeprecationWarning

* upgrade pytest-timeout to avoid DeprecationWarning

* silence sensitive variables DeprecationWarning

* silence wait_for_worker_idle DeprecationWarning

* stop passing deprecated queue arg to Publisher;
silence the warning in the test that intentionally exercises it

* use warnings.warn not deprecated log.warn

* assert that the warning is raised

* allow max-line-length of 88 (bumped in v3rc already)

* one more test intentionally triggering a warning
we were accidentally exploiting

and it turns out that we no longer need the sleep
that was being inserted
I'm testing with Pytest 5.0.x and seeing this warning three times for every test in my suite that uses nameko's fixtures:

```
============================== warnings summary ==============================
tests/integration/test_nameko.py::test_home
tests/integration/test_nameko.py::test_home
tests/integration/test_nameko.py::test_home
...
/private/tmp/tox/py37-django22/lib/python3.7/site-packages/nameko/testing/pytest.py:274: PytestDeprecationWarning: The `funcargnames` attribute was an alias for `fixturenames`, since pytest 2.3 - use the newer attribute instead.
  if fixture in request.funcargnames:
```

This fixes that warning. I can't find documented the minimum version of Pytest that Nameko intends to support, but Pytest 2.3 was released [Oct 19, 2012](https://pypi.org/project/pytest/2.3.0/) so it's getting a bit old.
`docutils` no longer supports 2.x
* Fix Python 3.7 warning on collections.abc

Python 3.3 moved the ABC's from `collections` into `collections.abc`, Python 3.7 deprecates the use of them at the original location. Hence in my tests I saw Pytest gathering the warnings emitted from `collections.abc`:

```
tests/integration/test_nameko.py::test_server_error
  /private/tmp/tox/py37-django22/lib/python3.7/site-packages/nameko/exceptions.py:76: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
    if isinstance(value, collections.Iterable):
```

This PR fixes it to use a conditional import based on the Python version.

I see Python 3.7 will be tested in nameko#644, but this fix isn't in there.

* isort requires two lines after imports

* pylint needs exclusions too

* add no cover pragmas
* Add --version CLI flag

* Fix import order in cli.main
* bump docs deps a small amount

* further bump and wordlist for spelling

* compat for newer werkzeug

* py34 is EOL and pyyaml does not support it anymore

* fix classifiers
* Pin dnspython

* Fixing four connection retry tests relying on kombu internals
* Changelog for 2.13.0

* Release 2.13.0
* initial actions workflow

* expand matrix

* try linking to /usr/bin/local

* matrix experiment

* maybe not

* be explicit about matix permutations in tox env

* correct syntax

* maxtrix must include experimental=false

* need dots in pyversion, add doccs

* run tests in most sensible order

* tox doesn't read env var directly

* needs version

* missed @

* not using tox-gh-actions anymore

* needs enchant

* works fine with env var if you use the right name!

* reconfigure tox env names slightly

* whoops; forgot to update command in tox.ini

* make some steps conditional

* distribution should be a separate job

* renamed build -> test

* make stagic a separate job

* make docs a separate job

* remove travis

* disable experimental builds
* pin down werkzeug <2

* use a conditional fix for 2.x to be compatible

* require packaging lib

* import sort

* websocket argument was added in 1.0.0

* werkzeug 2.0.1 not published for py2
* convert to using safe yaml parsing

* can't safely support lookups in yaml

* better use of patch.dict

* prevent unsupported recursive env var lookups

switching to safe loading changes the behaviour of the default regex
parser when you give it a config that contains (unsupported) recursive
environment variables.

rather than update the tests to assert a different broken behaviour,
we now raise a configuration error. this will alert the user that their
config file will likely not be parsed correctly, or they're missing
the optional library.

* skip tests when regex is installed

also change description from "recursive" to "nested"

* no cover for when skipped
There is a small typo in test/test_container.py.

Should read `separate` rather than `speparate`.
* test on py38

* add 3.8 classifier

* upgrade flake8

and add a few ignores

* upgrade pylint

* upgrade coverage

* add one required pragma

* add py39 (and py37)

* forgot to update pins in tox.ini

* raise eventlet pin

* py38 and py29 require eventlet>=0.25.0

* add environment markers to encode the eventlet reqs

* 3.7 requires eventlet>=0.25.0 also

* add missing classifiers
* remove automatic monkey-patching

(resolves nameko#703)

* warns users if the monkeypatch is not applied
* suggests using pytest-eventlet as an alternative

* static

* add nameko test command

+ update warning
+ move nameko run patch into cli so it is earlier and more explicit

* add __main__ entrypoint so CI can run nameko test

* always continue on error for debug

* 0.25.1 is oldest supported eventlet on py37+

we need eventlet/eventlet#584

* Revert "always continue on error for debug"

This reverts commit e6fc162.

* don't need pytest-eventlet plugin anymore
* support configuring event exchanges

+ control auto-delete using config
+ enable disabling of auto-declaration via config

* gotta pass the new argument

* map None and False to same outcome

DECLARE_EVENT_EXCHANGES must be set to False to turn off declarations
* provide a way to config login_method

users are not able to config login_method with current code,if the
default one(AMQPLAIN) of amqp/connection doesn't work for them

* import sort

* formatting

* update test for new argument position

* update test for new argument position

* test alternative login methods, inc EXTERNAL

* import sort

Co-authored-by: Matt Yule-Bennett <matt@bennett.name>
* Update CHANGES

* Update setup.py
Merge remote-tracking branch 'upstream/master' into v3.0.0-rc

# Conflicts:
#	.github/workflows/ci.yaml
#	docs/examples/test/test_examples.py
#	nameko/__main__.py
#	nameko/amqp/publish.py
#	nameko/cli/commands.py
#	nameko/cli/run.py
#	nameko/cli/shell.py
#	nameko/cli/show_config.py
#	nameko/cli/utils/config.py
#	nameko/exceptions.py
#	nameko/messaging.py
#	nameko/rpc.py
#	nameko/standalone/events.py
#	nameko/standalone/rpc.py
#	nameko/testing/pytest.py
#	setup.cfg
#	setup.py
#	test/amqp/test_publish.py
#	test/cli/test_main.py
#	test/standalone/test_event_dispatcher.py
#	test/standalone/test_rpc_proxy.py
#	test/test_entrypoints.py
#	test/test_events.py
#	test/test_messaging.py
#	test/test_rpc.py
#	test/testing/test_utils.py
#	tox.ini
@mattbennett mattbennett merged commit 627a358 into nameko:v3.0.0-rc Oct 21, 2021
@mattbennett mattbennett deleted the v3-master-merge branch October 21, 2021 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants