Skip to main content

Minitest is inspired by Ruby minispec.

Project description

This project is inspired by Ruby minispec, but now it just implement some methods including:

must_equal, must_true, must_raise.

And some other useful functions:

p, pp, length, size.

github: https://github.com/jichen3000/minitest

pypi: https://pypi.python.org/pypi/minitest


Author

Colin Ji jichen3000@gmail.com

How to use

install:

pip instsall minitest

code:

if __name__ == '__main__':
    # import the minitest
    from minitest import *

    import operator

    # declare a variable for test
    tself = get_test_self()
    # you could put all your test variables on tself
    # just like declare your variables on setup.
    tself.jc = "jc"

    # declare a test
    with test("test must_equal"):
        tself.jc.must_equal('jc')
        None.must_equal(None)

    with test("test must_true"):
        True.must_true()
        False.must_true()

    # using a funcation to test equal.
    with test("test must_equal_with_func"):
        (1).must_equal(1, key=operator.eq)
        (1).must_equal(2, key=operator.eq)

    def div_zero():
        1/0

    # test exception
    with test("test must_raise"):
        (lambda : div_zero()).must_raise(ZeroDivisionError)
        (lambda : div_zero()).must_raise(ZeroDivisionError, "integer division or modulo by zero")
        (lambda : div_zero()).must_raise(ZeroDivisionError, "in")

result:

Running tests:

.FFF

Finished tests in 0.013165s.

1) Failure:
The line No is [/Users/Colin/work/minitest/minitest/with_test.py:174]:
--- expected
+++ actual
-[True]
#[False]

2) Failure:
The line No is [/Users/Colin/work/minitest/minitest/with_test.py:179]:
--- expected
+++ actual
-[2]
#[1]

3) Failure:
The line No is [/Users/Colin/work/minitest/minitest/with_test.py:188]:
--- expected
+++ actual
-['in']
#['integer division or modulo by zero']

4 tests, 9 assertions, 3 failures, 0 errors.
[Finished in 0.1s]

Other useful function

p, pp, length, size, these four functions could been used by any object.

p is a print function. This function will add variable name as the title. code:

value = "Minitest"
# add a title 'value : ' automatically.
value.p()                       # value : Minitest

# or you can give a string as title.
value.p("It is a value:")       # It is a value: Minitest

# if you don't want a title, use the parameter
value.p(auto_get_title=False)   # Minitest

pp is another print function which will invoke the pprint.pprint function. Its parameters are just like the p. code:

value = "Minitest"
value.pp()                      # value :
                                # 'Minitest'

value.pp("It is a value:")      #  It is a value:
                                # 'Minitest'

value.pp(auto_get_title=False)  # 'Minitest'

length and size will invoke len function for the caller’s object. code:

[1,2].length()                  # 2, just like len([1,2])
(1,2).size()                    # 2, just like len((1,2))

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

minitest-0.2.4.tar.gz (4.6 kB view details)

Uploaded Source

File details

Details for the file minitest-0.2.4.tar.gz.

File metadata

  • Download URL: minitest-0.2.4.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for minitest-0.2.4.tar.gz
Algorithm Hash digest
SHA256 dafaadfcfb8079c8854ccb6d60cd3fbf392375dd6e1c896b0a0468f44c0708a3
MD5 ab59dbfcaf41fc2029c1ce31c3b34b5f
BLAKE2b-256 712874c937ee6fcbad73c80d1397182691e4a34d0a8eea6961c3d6f68e944a44

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