* issue-1087 Revert _lookup api and correct redis implemetnation. Update variable naming to be self documenting and more readable by non native speakers. Major overhaul of redis test cases by adding more full featured fakeredis module.
* Add more test cases to boost coverage of kombu redis transport.
* Refactor the producer consumer test cases to be based on original mocks and be passing
* Fix lingering line length issue in test.
* Make sure that max_retries=0 is treated differently than None
When max_retries=0, it should not retry at all instead of retrying infinitely.
* retry_always should use max_retries=None instead of 0.
* Added test for zero retries
* Removed Offending spaces from blank line
* Fixing MongoDB backend to work properly with TTL
Bumping pymongo version to 3.8.0
* Updating authors
* Adding dependencies to travis config
* Fixing travis test cases
* Changing pymongo version to align with mongo result backend
* Factor out the binding of channel to entity into a method that can be shared and does not use assert.
* do not use assertion in production because it can be stripped in optimize and is best left for unit tests.
* dont reassign entity here because it breaks a bunch of tests.
* fix pydoc complaints
* Add TDD style test that fails in master and passes in my branch
* finish refactor of existing maybe_declare tests to use shared fixtures
* py2/py3 print difference means skip printing.
* fix pep8 line length
Prior to this change, one needed to specify a URL using a URI
identifier, e.g., `pyamqp://foo.bar`. This change makes it so calling
`.switch(..)` again results in switching the host, not switching the
resource identifier.
This simplifies setting up connections with just hostnames specifying
the resource identifier once, separately.
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
* Fix broken build steps
- Fix pydocstyle linting error
- Move apicheck to Python 3 to be able to install Sphinx 2.0+
The rest will be moved when Python 2 is dropped
* Move pydocstyle linting steps to Python 3.6
* Use fastuuid on CPython>=3.5.
* Only install fastuuid on Linux.
* For some reason we're stillgetting the thrusty build env.
Specify xenial explictly.
* Specify Python versions for lint stages.
* Ensure pycurl deps are installed.
* Run update before.
* Upgrade tox and dependencies.
* Happify docstyle.
The build from Celery is broken because one test tries to enable all serializers by calling `disable_insecure_serializers(allowed=None)``, but because `None` is the default value, the function fallback to the default behaviour.
Use a sentinel value as default instead of `None` should fix this.
* Add events field on memory channel
Part of https://github.com/celery/kombu/issues/1050, with this fix
the function does not raise the exception.
The init `defaultdict(set)` is the same init from amqp lib.
* Add unit test
* Add more detail test
* FIx flake8
* Add `_lookup_direct` method to virtual channel. (#994)
Add possibility to optimize lookup for queue in direct
exchange set.
* Add `_lookup_direct` method to redis virtual channel. (#994)
Use `SISMEMBER` instead of `SMEMBERS` command to check if queue
exists in a set. Time complexity is increased from O(N) to O(1)
where N is the set cardinality.
This is a follow-up to ddba8aeaf0. Prior to that commit,
"implements" was missing entirely for qpid. The earlier commit
added it, but only declared that the transport was async-capable.
Turns out it's important also to declare the supported exchange
types. In particular, if the transport doesn't declare support
for the 'fanout' exchange type, pidbox wouldn't be used[1] and so
it would still not be possible to revoke a task with terminate=True
when using the qpid transport.
[1] https://github.com/celery/celery/commit/2f58c35340f648