summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Add RedisCluster.remap_host_port, Update tests for CWE 404 (#2706)Kristján Valur Jónsson2023-05-077-155/+227
| | | | | | | | | | | | | | | | | | | | | | * Use provided redis address. Bind to IPv4 * Add missing "await" and perform the correct test for pipe eimpty * Wait for a send event, rather than rely on sleep time. Excpect cancel errors. * set delay to 0 except for operation we want to cancel This speeds up the unit tests considerably by eliminating unnecessary delay. * Release resources in test * Fix cluster test to use address_remap and multiple proxies. * Use context manager to manage DelayProxy * Mark failing pipeline tests * lint * Use a common "master_host" test fixture
* add "address_remap" feature to RedisCluster (#2726)Kristján Valur Jónsson2023-05-022-1/+238
| | | | | | | | | | | | | | | * add cluster "host_port_remap" feature for asyncio.RedisCluster * Add a unittest for asyncio.RedisCluster * Add host_port_remap to _sync_ RedisCluster * add synchronous tests * rename arg to `address_remap` and take and return an address tuple. * Add class documentation * Add CHANGES
* Add WITHSCORES to ZREVRANK Command (#2725)shacharPash2023-04-302-0/+18
| | | | | | | | | * add withscores to zrevrank * change 0 -> 2 * fix errors * split test
* return response in case of KeyError (#2628)shacharPash2023-04-301-0/+6
| | | | | | | | | * return response in case of KeyError * fix code linters error * fix linters 2 * fix linters 3
* Fix async (#2673)dvora-h2023-03-291-22/+23
|
* Fixing cancelled async futures (#2666)Chayim2023-03-294-38/+149
| | | | | Co-authored-by: James R T <jamestiotio@gmail.com> Co-authored-by: dvora-h <dvora.heller@redis.com>
* removing useless files (#2642)Chayim2023-03-282-706/+0
|
* fix: do not use asyncio's timeout lib before 3.11.2 (#2659)Thiago Bellini Ribeiro2023-03-281-1/+3
| | | | | | | | | | | | There's an issue in asyncio's timeout lib before 3.11.3 that causes async calls to raise `CancelledError`. This is a cpython issue that was fixed in this commit [1] and cherry-picked to previous versions, meaning 3.11.3 will work correctly. Check [2] for more info. [1] https://github.com/python/cpython/commit/04adf2df395ded81922c71360a5d66b597471e49 [2] https://github.com/redis/redis-py/issues/2633
* AsyncIO Race Condition Fix (#2641)v4.5.3Chayim2023-03-224-0/+744
|
* Fix behaviour of async PythonParser to match RedisParser as for issue #2349 ↵Kristján Valur Jónsson2023-03-161-2/+0
| | | | | | | (#2582) * Allow data to drain from PythonParser after connection close. * Add Changes
* add queue_class to REDIS_ALLOWED_KEYS (#2577)Dongkeun Lee2023-03-161-0/+13
| | | | | | | | | | | | * add queue_class to REDIS_ALLOWED_KEYS * fix lint * fix lint --------- Co-authored-by: zach.lee <zach.lee@sendbird.com> Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* fix: replace async_timeout by asyncio.timeout (#2602)Mehdi ABAAKOUK2023-03-161-9/+13
| | | | | | | | | | | | | async_timeout does not support python 3.11 https://github.com/aio-libs/async-timeout/pull/295 And have two years old annoying bugs: https://github.com/aio-libs/async-timeout/issues/229 https://github.com/redis/redis-py/issues/2551 Since asyncio.timeout has been shipped in python 3.11, we should start using it. Partially fixes 2551
* Making search document subscriptable (#2615)Abhishek Kumar Sinha2023-03-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fixed issue #2598 - make Document class subscriptable * Last time added older file, fixed it * retrigger checks * update json().arrindex() default values (#2611) * update json().arrindex() default values * add unit test * fix falsy checks * more unit tests * add asyncio tests * fix lint line length --------- Co-authored-by: Alex Schmitz <aschmitz@box.com> * Speeding up the protocol parsing (#2596) * speeding up the protocol parser * linting * changes to ease * Fixed CredentialsProvider examples (#2587) Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com> * ConnectionPool SSL example (#2605) * [types] update return type of smismember to list[int] (#2617) * update return type of smismember * use Literal instead of int * retrigger checks * Added test for document subscriptable in tests/test_search.py * Fixed linter issue * retrigger checks --------- Co-authored-by: Alex Schmitz <alex.schmitz@gmail.com> Co-authored-by: Alex Schmitz <aschmitz@box.com> Co-authored-by: Chayim <chayim@users.noreply.github.com> Co-authored-by: Bar Shaul <88437685+barshaul@users.noreply.github.com> Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com> Co-authored-by: CrimsonGlory <CrimsonGlory@users.noreply.github.com> Co-authored-by: Raymond Yin <raymond@tryevergreen.com>
* update json().arrindex() default values (#2611)Alex Schmitz2023-03-152-3/+14
| | | | | | | | | | | | | | | | | * update json().arrindex() default values * add unit test * fix falsy checks * more unit tests * add asyncio tests * fix lint line length --------- Co-authored-by: Alex Schmitz <aschmitz@box.com>
* Fix #2581 UnixDomainSocketConnection' object has no attribute ↵Sergey Prokazov2023-02-081-1/+43
| | | | | | | | | | | | | | | | | '_command_packer' (#2583) * Fix #2581 UnixDomainSocketConnection' object has no attribute '_command_packer' . Apparently there is no end-to-end tests for Unix sockets so automation didn't catch it. I assume that setting up domain sockets reliably in dockerized environment is not very trivial. Added test for pack_command specifically. * Figuring out why CI fails. Locally: " congratulations :)" * Fix the test. hiredis doesn't treat memoryviews differently.
* Fix issue 2349: Let async HiredisParser finish parsing after a ↵Kristján Valur Jónsson2023-02-061-0/+82
| | | | | | | | | | | | | Connection.disconnect() (#2557) * A failing unittest * Do not clear the redis-reader's state when we disconnect so that it can finish reading the final message * Test that reading a message of two chunks after a disconnect() works. * Add Changes * fix typos
* Use hiredis::pack_command to serialized the commands. (#2570)Sergey Prokazov2023-02-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implemented pack command and pack bytes * 1) refactored the command packer construction process 2) now hiredis.pack_bytes is the default choice. Though it's still possible to run redisrs-py (fix the flag in utils.py) or hiredis.pack_command (flag in connection.py) * Switch to hiredis.pack_command * Remove the rust extension module. * 1) Introduce HIREDIS_PACK_AVAILABLE environment variable. 2) Extract serialization functionality out of Connection class. * 1) Fix typo. 2) Add change log entry. 3) Revert the benchmark changes * Ditch the hiredis version check for pack_command. * Fix linter errors * Revert version changes * Fix linter issues * Looks like the current redis-py version is 4.4.1 --------- Co-authored-by: Sergey Prokazov <sergey.prokazov@redis.com>
* Fix issue 2540: Synchronise concurrent command calls to single-client mode. ↵Vivanov982023-01-291-0/+45
| | | | | (#2568) Co-authored-by: Viktor Ivanov <viktor@infogrid.io>
* Fix unlink in cluster pipeline (#2562)gmbnomis2023-01-291-0/+19
| | | | Implement unlink() like delete() to make it work when used in a cluster pipeline.
* Add support to BF.CARD (#2545)shacharPash2023-01-112-0/+30
| | | | | | | * Add support to BF.CARD * Add Async test * change to with pytest.raises
* add support for custom connection pool class in NodesManager (#2547)Dongkeun Lee2023-01-111-1/+16
| | | Co-authored-by: zach.lee <zach.lee@sendbird.com>
* allow replica to master promotion in nodes_cache (#2549)Dongkeun Lee2023-01-111-0/+51
| | | Co-authored-by: zach.lee <zach.lee@sendbird.com>
* String cleanse (#2548)Jan2023-01-112-1/+7
| | | | | | | * Fixed string escape and added tests * Add Change * Name change
* Make PythonParser resumable (#2510)Kristján Valur Jónsson2023-01-054-8/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | * PythonParser is now resumable if _stream IO is interrupted * Add test for parse resumability * Clear PythonParser state when connection or parsing errors occur. * disable test for cluster mode. * Perform "closed" check in a single place. * Update tests * Simplify code. * Remove reduntant test, EOF is detected inside _readline() * Make syncronous PythonParser restartable on error, same as HiredisParser Fix sync PythonParser * Add CHANGES * isort * Move MockStream and MockSocket into their own files
* add str support for set ex parameter (#2529)shacharPash2023-01-051-0/+7
|
* replase get_event_loop wite get_running_loop (#2530)dvora-h2023-01-053-15/+15
|
* Add dialect to ft aggregate (#2537)DvirDukhan2023-01-022-81/+118
| | | | | | | | | * add dialect to aggregate request * added test * format * async test
* Allow EVAL_RO and EVALSHA_RO to be routed to read replica (#2494)Dongkeun Lee2022-12-252-3/+9
| | | | | | | | | | | | * fix typo (Lue -> Lua) * run eval_ro, evalsha_ro test on redis cluster * Add eval_ro, evalsha_ro to read only commands * assert that commands are run in a round robin manner Co-authored-by: zach.lee <zach.lee@sendbird.com> Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* Add TIMEOUT to query class (#2519)shacharPash2022-12-212-0/+18
| | | | | | | | | | | | | | | | | | | * add timeout to query class * Add test_timeout * fix lines * fix format * add test & fixes * merge tests * change timeout to not_a_number * change q1 to q2 * Fix async method
* Fix `JSON.ARRINDEX` test (#2527)dvora-h2022-12-211-11/+4
| | | | | | | * Fix test json.arrindex * linters * linters
* Raising NotImplementedError for certain CLUSTER commands (#2504)dvora-h2022-12-141-0/+8
| | | Co-authored-by: Chayim <chayim@users.noreply.github.com>
* Combine auto-concatenated strings (#2482)David Gilman2022-12-1410-22/+22
|
* Add support for certain LATENCY commands (#2503)dvora-h2022-12-141-2/+9
| | | | | * add latency commands * fix tests in cluster
* Intentional NotImplementedError for LATENCY commands that should not be in ↵Chayim2022-12-121-0/+10
| | | | client (#2501)
* Updating graph tests to support new execution plan (#2486)Raz Monsonego2022-12-062-18/+10
|
* Updating dev dependencies (#2475)Chayim2022-12-042-4/+8
|
* Async: added 'blocking' argument to call lock method (#2454)Sibuken2022-12-011-0/+8
| | | Co-authored-by: Chayim <chayim@users.noreply.github.com>
* Added a replacement for the default cluster node in the event of failure. ↵Bar Shaul2022-12-012-0/+63
| | | | (#2463)
* Failover handling improvements for RedisCluster and Async RedisCluster (#2377)Bar Shaul2022-11-104-3/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Cluster&AsyncCluster: Removed handling of timeouts/connection errors within the cluster loop, fixed "cannot pickle '_thread.lock' object" bug, added client's side failover handling improvements * Fixed linters * Type fixes * Added to CHANGES * Added getter and setter for the client's retry object and added more tests * Fixed linters * Fixed test * Fixed test_client_kill test * Changed get_default_backoff to default_backoff, removed retry_on_error and connection_error_retry_attempts from RedisCluster, default retry changed to no retries * Fixing linters * Reverting deletion of connection_error_retry_attempts to maintain backward compatibility * Updating retry object for existing and new connections * Changed the default value of reinitialize_steps from 10 to 5 * fix review comments Co-authored-by: Chayim <chayim@users.noreply.github.com> Co-authored-by: dvora-h <dvora.heller@redis.com> Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* CredentialsProvider class added to support password rotation (#2261)Bar Shaul2022-11-102-0/+529
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * A CredentialsProvider class has been added to allow the user to add his own provider for password rotation * Moved CredentialsProvider to a separate file, added type hints * Changed username and password to properties * Added: StaticCredentialProvider, examples, tests Changed: CredentialsProvider to CredentialProvider Fixed: calling AUTH only with password * Changed private members' prefix to __ * fixed linters * fixed auth test * fixed credential test * Raise an error if username or password are passed along with credential_provider * fixing linters * fixing test * Changed dundered to single per side underscore * Changed Connection class members username and password to properties to enable backward compatibility with changing the members value on existing connection. * Reverting last commit and adding backward compatibility to 'username' and 'password' inside on_connect function * Refactored CredentialProvider class * Fixing tuple type to Tuple * Fixing optional string members in UsernamePasswordCredentialProvider * Fixed credential test * Added credential provider support to AsyncRedis * linters * linters * linters * linters - black Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com> Co-authored-by: dvora-h <dvora.heller@redis.com>
* Fix special response parsing options handling (#2302)Shay Fadida2022-11-092-2/+22
| | | | | | | | | | | | | | | | | * Fix special response parsing options handling When using special response parsing options like `NEVER_DECODE` and `EMPTY_RESPONSE`, don't pass them to the response callbacks because some of them are not prepared for receiving named arguments. Instead, redis-py should use them before calling the callbacks and then discard them. * Use kwargs instead of options * change options to kwargs in asyncio/cluster.py/L878 Co-authored-by: Chayim <chayim@users.noreply.github.com> Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* Enable AsyncIO cluster mode lock (#2446)Milhan2022-11-091-1/+0
| | | Co-authored-by: Chayim <chayim@users.noreply.github.com>
* Remove the superflous SocketBuffer from asyncio PythonParser (#2418)Kristján Valur Jónsson2022-10-301-4/+5
| | | | | | | | | | | * Remove buffering from asyncio SocketBuffer and rely on on the underlying StreamReader * Skip the use of SocketBuffer in PythonParser * Remove SocketBuffer altogether * Code cleanup * Fix unittest mocking when SocketBuffer is gone
* Fix KeyError in async cluster - initialize before execute multi key commands ↵dvora-h2022-10-301-0/+9
| | | | | | | | | (#2439) * Fix KeyError in async cluster * link to issue * typo
* Test `test_get_moveable_keys` was broken (#2411)Nikita Sobolev2022-10-251-15/+7
| | | | | | | | | * Test `test_get_moveable_keys` was broken * Update test_command_parser.py * Do not sort constant lists Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* Fixing bloom tests (#2430)Chayim2022-10-252-6/+6
|
* Deprecate `add_doccument` (FT.ADD) (#2425)dvora-h2022-10-242-369/+170
| | | | | | | | | * deprecate add_doccuments * linters * linters * async tests
* Fix `TIMESERIES` (round floats) and `JSON` tests (#2421)dvora-h2022-10-235-14/+7
| | | | | * Fix timeseries tests (round floats) * fix json tests
* remove tdigest.add weights (#2408)dvora-h2022-10-062-38/+36
|
* Simplify async timeouts and allowing `timeout=None` in ↵v4.4.0rc2Kristján Valur Jónsson2022-09-291-1/+1
| | | | | | | | | | | | | | | | | | | `PubSub.get_message()` to wait forever (#2295) * Avoid an extra "can_read" call and use timeout directly. * Remove low-level read timeouts from the Parser, now handled in the Connection * Allow pubsub.get_message(time=None) to block. * update Changes * increase test timeout for robustness * expand with statement to avoid invoking null context managers. remove nullcontext * Remove unused import