Bintest
Bintest is a extension for unitest, it will provide a way to run a command and assert the output.
Installation
pip install bintest
Usage
- Create a file in your project: testcase.py for example
from bintest import bintest
import unittest
class MyTestCase(unittest.TestCase, bintest.BinTest):
__test__ = True
def setUp(self):
self.set_env(
env="./output", # temp dir
input="./tests_case.yml", # yml file
)
# This works
def test_simple_cat(self):
output, err = self.run_bin(name="SimpleCAT")
# two ways of test, this both will do exactly the same
self.assertEqual(output, "test\n")
# this one is more auto because is reading from the yml
self.assertOutput(name="SimpleCAT", output=output)
# This Fails
def test_simple_cat_fail(self):
output, err = self.run_bin(name="SimpleCATFail")
# this one will fail
self.assertOutput(name="SimpleCATFail", output=output)
if __name__ == "__main__":
unittest.main()
- Create the config file: tests_case.yml
---
# Example test file
# required: bin, output
# everything in the middle will be passing as paramters to the binary: only the values
SimpleCAT:
bin: /bin/cat
path: /Users/artur.gomes/projects/pybintest/examples/test.txt
output: "test\n"
SimpleCATFail:
bin: /bin/cat
path: /Users/artur.gomes/projects/pybintest/examples/test.txt
output: "not test\n"
In this case we are testing the cat command, using a file test.txt as argument and expecting the output
- Create the test.txt file
test
- Then run:
python3 -m unittest discover -vvv
- Unittest will find yout test and run it for you.
test_simple_cat (testcase.MyTestCase) ... ok
test_simple_cat_fail (testcase.MyTestCase) ... FAIL
======================================================================
FAIL: test_simple_cat_fail (testcase.MyTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/artur.gomes/projects/test_bintest/testcase.py", line 26, in test_simple_cat_fail
self.assertOutput(name="SimpleCATFail", output=output)
File "/Users/artur.gomes/Library/Caches/pypoetry/virtualenvs/test-bintest-LukI1uz2-py3.9/lib/python3.9/site-packages/bintest/bintest.py", line 34, in assertOutput
raise self.failureException(msg)
AssertionError: Error: not test
!= test
----------------------------------------------------------------------
Ran 2 tests in 0.011s
FAILED (failures=1)
Contribution
If this helps you consider help me to improve.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bintest-0.3.0.tar.gz
(3.2 kB
view details)
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 bintest-0.3.0.tar.gz.
File metadata
- Download URL: bintest-0.3.0.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.1.13 CPython/3.9.12 Darwin/21.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07b1b5c43e9b9087b29a5e0c14dfa68775a82c0cb7c5c843470bd2c95a080012
|
|
| MD5 |
0a5a071173ecb4a106ec1a2125a3b157
|
|
| BLAKE2b-256 |
3e40e8bc50f28f28ad2da25addcb3a0510ae08373229e7745bf2a636911bb8c6
|
File details
Details for the file bintest-0.3.0-py3-none-any.whl.
File metadata
- Download URL: bintest-0.3.0-py3-none-any.whl
- Upload date:
- Size: 2.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.1.13 CPython/3.9.12 Darwin/21.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfc86e861498ed18310fdf2e87b1f6bbceb52be47e9a5b7e85f57ab3c5f89a3c
|
|
| MD5 |
418802bfd9e218c5f38138a209e36b15
|
|
| BLAKE2b-256 |
7a2d39d7e7b0cc8a9a80d367fb27e23460aec9fd09fe6fab031393686a662728
|