Hi, I have made some progress with integration tests of our Python API. You can find my experiments at https://github.com/tiran/pki/commits/betamax . The integration tests are using pytest fixtures and betamax.
What is betamax? ---------------- https://betamax.readthedocs.org/en/latest/ Betamax is recorder and player. More precisely it is a testing library for python-requests to record requests and replay responses. In recording mode it records all requests and stores the requests and responses in cassettes (JSON files). In replay mode (aka off-line) it intercepts requests and serves responses from pre-recorded cassettes. With betamax we can run integration tests against a life Dogtag installation. Once our tests have been recorded, we don't need a Dogtag server any more. The recorded test cases become self-sustained and fully reproducible. Betamax is in Fedora 23! How to record? -------------- Of course we also need a simple to record the initial set, new tests or to update recordings. Please welcome Ansible and Vagrant! I wrote a Vagrant file and Ansible playbook that do all the heavily lifting in the background. The code is currently located at https://github.com/tiran/pki-vagans . Once you installed and set up Vagrant and Ansible on your machine, it takes just one command and about 7 to 10 minutes to install a VM with Dogtag. The command 'vagrant up' will download Fedora 23, upgrade the box, set up 389 DS and a Dogtag instance with CA and KRA. With 'vagrant provision' you can update the machine and even install custom builds from a directory with RPMs. What's left to do? ------------------ * write more tests (obviously) * pki-vagans and integration tests are tuned to my machine. The setup might not work on your box. * Tests are currently read-only. I need to figure out a good way for tests that create data, probably a fixture on module or class level. Please test :) Christian
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Pki-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/pki-devel
