A simple nano-framework for testing valkey modules using python unit test, and a disposable ephemeral valkey subprocess.
import unittest
from vkmtest import ModuleTestCase
class MyTestCase(ModuleTestCase('../module.so', module_args = ('foo', 'bar'))):
def testCmd(self):
self.assertOk(self.cmd('mymodule.dosomething', 'foo', 'bar'))
if __name__ == '__main__':
unittest.main()
It is possible to control the path to the valkey server executable, the path to the module and an optional fixed port, from environment variables.
Controls the path to the module, either absolute, or relative to where the test resides.
Controls the path to valkey-server. By default we assume it's in $PATH
Causes the tests to run against a fixed valkey port instead of spawning ephemeral disposable valkey instances for each test.
This is useful for debugging failures with valkey-cli MONITOR
.
Causes the tests to be run under a debugger (e.g. valgrind
). The value to this
environment variable is the path to the debugger. Does not work if there are spaces
in the path.
$ pip install vkmtest
-
Clone this repo
-
sudo python setup.py install