python library for test binarys
Project description
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.
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
bintest-0.3.0.tar.gz
(3.2 kB
view details)
Built Distribution
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 |