Doctests for your shell
Project description
doctest-cli
Doctests for your shell. Run an executable, check the output.
Installation
With pip
:
pip install doctest-cli
By hand:
curl -O https://github.com/ivan-krukov/doctest-cli/blob/master/bin/doctest-cli ~/bin
chmod +x ~/bin/doctest-cli
Usage
Create a test script, say test.sh
:
# Command
>>> echo hello
# Expected output
hello
# Another command
>>> echo 'Good bye!'
Good bye!
# Failing
>>> echo banana
apple
Test it:
doctest-cli test.sh
Check output:
doctest-cli: test/simple.sh
------------------------------------------------------------
Error while running:
echo banana
With STDERR:
Expected STDOUT:
apple
Got:
banana
------------------------------------------------------------
Tests ran: 3
Tests passed: 2
Tests failed: 1
Dependencies
The program depends on python
- both 2.7
and 3.4
and above should work
Extra
See test/
for more examples.
Return code
Check return code by adding $?=<RET>
to the beginning of the line. Default return code is 0
:
>>> false
$?=1
>>> true
$?=0
Standard error
Check stderr
output by adding !
to the beginning of the line:
>>> echo error > /dev/stderr
! error
By default, the stderr
stream is assumed to be empty.
Custom shell
You can use a custom shell with a shebang line:
#!/usr/local/bin/fish
>>> echo hello; and echo this is fish
hello
this is fish
Details
doctest-cli
uses python
's subprocess
module to spawn a new shell for each command and checks the output against the lines provided. All the environment variables are inherited from the parent session.
Whitespace (including intervening newlines) is ignored. For example, the following test should pass, since all the newlines in the middle are removed:
>>>printf 'hello\n\n\n\n\n\nworld'
hello
world
This is done so that you can have an arbitrary amount of whitespace delineating the test blocks.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for doctest_cli-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdd5e23107d3e8c35dbf6a9dcf1e6260ecb9ad0a40c316037a4f4326e2329f3f |
|
MD5 | 7dfebb218d789fa3132791f3633ffdeb |
|
BLAKE2b-256 | 3d8438acb645d0dcb89aca51d267c0651da8aee6b643d3b4ba15aa545ff24845 |