Skip to main content

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

  1. 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()
  1. 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

  1. Create the test.txt file
test
  1. Then run:
python3 -m unittest discover  -vvv
  1. 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


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)

Uploaded Source

Built Distribution

bintest-0.3.0-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

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

Hashes for bintest-0.3.0.tar.gz
Algorithm Hash digest
SHA256 07b1b5c43e9b9087b29a5e0c14dfa68775a82c0cb7c5c843470bd2c95a080012
MD5 0a5a071173ecb4a106ec1a2125a3b157
BLAKE2b-256 3e40e8bc50f28f28ad2da25addcb3a0510ae08373229e7745bf2a636911bb8c6

See more details on using hashes here.

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

Hashes for bintest-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bfc86e861498ed18310fdf2e87b1f6bbceb52be47e9a5b7e85f57ab3c5f89a3c
MD5 418802bfd9e218c5f38138a209e36b15
BLAKE2b-256 7a2d39d7e7b0cc8a9a80d367fb27e23460aec9fd09fe6fab031393686a662728

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page