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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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