Skip to main content

Perform fast and detailed unit tests with BuPyTest.

Project description

BuPyTest - Unit Tests

BuPyTest is a library to perform unit tests on your code by classes. You can create tests using classes and run them together in a single file.

With bupytest, you can implement git hooks to automatically run tests using Command Line.

In version 0.3.1 you can:

  • Test multiple classes in one file;
  • Test using command line;
  • Test only one file using command line;
  • Test multiple files using command line;

You can install the latest version of BuPyTest using the pip package manager:

pip install bupytest

How to use

Here's a simple tutorial on how to use bupytest in your tests:

In the base class bupytest.BaseTest all tests are executed in the order they were defined (sequential).

import bupytest


class TestFoo(bupytest.UnitTest):
    def __init__(self):
        super().__init__()

    def test_1(self):
        self.assert_true(True, message='A error ocurred')

    def test_2(self):
        false_value = ''
        self.assert_false(false_value, message='Empty string')


if __name__ == '__main__':
    bupytest.this()

With bupytest, you define test classes and the methods, which will be tested. To test a value, you can use the following methods of the bupytest.UnitTest class:

  • UnitTest.assert_true: asserts a true value;
  • UnitTest.assert_false: asserts a false value;
  • UnitTest.assert_expected: asserts an expected value.

All test classes must start with "Test", and all test class methods must start with "test_".

At the end of the file, the bupytest.this method runs the test in this file. That is, all test classes in this file will be executed.

You can also define several other classes in the same file for testing:

import bupytest


class TestFoo(bupytest.UnitTest):
    def __init__(self):
        super().__init__()

    def test_1(self):
        self.assert_true(True, message='A error ocurred')

    def test_2(self):
        false_value = ''
        self.assert_false(false_value, message='Empty string')


class TestBar(bupytest.UnitTest):
    def __init__(self):
        super().__init__()

    def test_1(self):
        self.assert_expected('hello', 'hello')


if __name__ == '__main__':
    bupytest.this()

Command Line

bupytest also has a command line application available to run tests, the script is called bupytest, see some commands and flags (use --help to get help):

  • test: this command tells you that a test will be run;
  • -m: this flag informs that the test is a python module;
  • -d: this flag informs that the test is a directory of test modules.

With the -d flag, each of the files starting with "test_" will be executed. See an example of testing a module:

bupytest test -m test_cookiedb.py

Now testing multiple test modules inside a directory:

bupytest test -d tests/

The -m and -d flags require the module or directory name.

License

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. https://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

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

bupytest-0.3.1.tar.gz (16.6 kB view details)

Uploaded Source

File details

Details for the file bupytest-0.3.1.tar.gz.

File metadata

  • Download URL: bupytest-0.3.1.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for bupytest-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b7a92c95e17cba4d6a468f0a9f8fa6adefecc0cbb0a0101caebb3b7e7f81ff79
MD5 7439fee6417072feadeea8f21121ed05
BLAKE2b-256 c2cc259c95a716f64c5fb4156e05585f91f4bdc75b7c529913318f0de547b478

See more details on using hashes here.

Supported by

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