Universal Behavior Testing Tool in Python. The script is completely self-contained and expected to be simply copy-pasted to your project and modified as needed.
- Create a file with a shell command line per line. Let's call it
test.list
. - Record the expected behavior of each shell command:
$ ./rere.py record test.list
The above command should create test.list.bi
file with stdout, stderr, and returncode captured as the expected behavior. The file uses bi format, for more infor see Snapshot Schema.
- Replay the command lines checking their behavior against the recorded one:
$ ./rere.py replay test.list.bi
test.list.bi
is expected to be committed into the project repo.
The snapshot file uses bi format. Its schema goes as following (the order of fields matters):
- First comes an Integer field
count
which denotes the amount of tests. - Then come the tests. Each test is a sequence of fields:
- Blob field
shell
which contains the shell command to test, - Integer field
returncode
which contains the expected exit code of the shell command, - Blob field
stdout
which contains the bytes of the expected standard output, - Blob field
stderr
which contains the bytes of the expected standard error output.
- Blob field
See test.list.bi for an example.