…specified redis configuration file. Also fixes bug of when the client is instatiated with a different host, port, and password from the server.
For the purposes of reusability, the redis server code is being moved to the redis module. Also, adding verbosity command line option for sending the redis' stdout and stderr to the python process's stdout. If verbosity is 0, then text is sent to /dev/null/. Lastly, the -x (executable) option was changed to -s (server).
I had to refactor the watchdog timer protection because a straight evalsha was not protected from long-running scripts. In doing so, I had to refactor eval and evalsha which use the watchdog code and call private methods to actually do the work. Also fixed a bug with calling the test runner with a executable redis-server file path, but no specified configuration file.
I added a class that can act as a context manager to start and stop a Redis server programmatically, provided a path to a redis executable is given through the CLI. Optionally the configuration file can be passed as well. This is required for tests that have to shutdown the server, but allow other tests to keep running.
Adds a new exception to be raised when a script has written data and cannot be stopped by SCRIPT KILL. Also adds an option to specify whether the shutdown command saves or does not save.
There are a few things to note in this commit. First, I am adding the threading library's Timer to bypass long-running script commands that are blocking. Second, I added a simple parser for raising specific exceptions when encountering a ResponseError exception. Lastly, I added tests for the long running scripts and some to test lua to redis to python data type conversions.
…th specific features, e.g. scripting.