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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file doctest-cli-0.0.3.tar.gz.
File metadata
- Download URL: doctest-cli-0.0.3.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44c8ae83e477bb6c056bde37df3aa30f84af91459554fb0ee4a7eb523f78b9b4
|
|
| MD5 |
7d8f292c8bf05abd9ac390c10e5f8d2c
|
|
| BLAKE2b-256 |
17420a1eb83ad45efc680c0202edef5d0af0b5a96dbd9c199f2e2d447d50e420
|
File details
Details for the file doctest_cli-0.0.3-py3-none-any.whl.
File metadata
- Download URL: doctest_cli-0.0.3-py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdd5e23107d3e8c35dbf6a9dcf1e6260ecb9ad0a40c316037a4f4326e2329f3f
|
|
| MD5 |
7dfebb218d789fa3132791f3633ffdeb
|
|
| BLAKE2b-256 |
3d8438acb645d0dcb89aca51d267c0651da8aee6b643d3b4ba15aa545ff24845
|