bddcli 2.9.4

Creator: coderz1093

Last updated:

Add to Cart

Description:

bddcli 2.9.4

bddcli
Test any command line interface in BDD manner.



About
A framework to easily test your command line interface in another(isolated)
process and gather stdout, stderr and exit-status of the process.
Thanks to https://github.com/cheremnov for the Windows support.
Installation
Only Python >= 3.6 is supported.
pip install bddcli

Quickstart
Arguments
import sys

from bddcli import Given, when, stdout, status, stderr, Application, given


def foo():
print(' '.join(sys.argv))
return 0


app = Application('foo', 'mymodule:foo')


with Given(app, 'bar'):
assert status == 0
assert stdout == 'foo bar\n'

# Without any argument
when(given - 'bar')
assert stdout == 'foo\n'

# Pass multiple arguments
when('bar baz')
assert stdout == 'foo bar baz\n'

# Pass multiple arguments, another method
when(['bar', 'baz'])
assert stdout == 'foo bar baz\n'

# Add an argument
when(given + 'baz')
assert stdout == 'foo bar baz\n'

Standard input
with Given(app, stdin='foo'):
assert ...

# stdin is empty
when(stdin='')
assert ...

Standard output and error
from bddcli import stderr, stdout

assert stderr == ...
assert stdout == ...

Environment variables
import os

from bddcli import Given, stdout, Application, when, given


def foo():
e = os.environ.copy()
del e['PWD']
print(' '.join(f'{k}: {v}' for k, v in e.items()))


app = Application('foo', 'mymodule:foo')
with Given(app, environ={'bar': 'baz'}):
assert stdout == 'bar: baz\n'

# Without any variable
when(environ=given - 'bar')
assert stdout == '\n'

# Add another variables
when(environ=given + {'qux': 'quux'})
assert stdout == 'bar: baz qux: quux\n'

See tests for more examples.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.