Contains a repository of unit tests and integration tests for the SAME project. The module structure mimics the module structure in the python codebase, with the exception of the testdata module, which contains notebooks and configuration we can test against.
For detailed instructions on how to run tests, refer to the developer documentation. If you have problems, make sure your submodules are updated and that you are running commands from a poetry shell.
pytestIntegration tests for specific backends are disabled by default, as they require a running instnance of the backend to test against. If you want to enable integrations for a particular backend, such as kubeflow, you will need to set its respective pytest flag:
pytest --kubeflow # enables the kubeflow integration tests
pytest --durable_functions # enables the durable functions integration tests
...We also have a repository of "from-the-wild" notebooks that we have collected from various sources online. These notebooks are contained and registered in the testdata module. To test a particular backend against "from-the-wild" notebooks, you will need to set the --external flag as well:
pytest --kubeflow --external # tests "from-the-wild" notebooks against a kubeflow backendFinally, our tests have support for parallelisation, which speeds up integration tests considerably. To run tests on multiple threads, specify the -n option when running pytest:
pytest --durable_functions -n 4 # tests a durable function backend using 4 threads