aboutsummaryrefslogtreecommitdiff
path: root/docs/custom_test.rst
blob: fc5cf22f339c8e087b4e47fc2beff8f65e0d54c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
.. _custom-tests:

Add Custom Tests
================

Test
----

In your suite function you can use the ``test`` function. With the
following arguments:

1. Command to be tested (output and status will be compared to bash)
2. A command to setup the sandbox directory where the tested command
   will be run
3. List of files to watch (the content of each file will be compared)

.. code:: python

   test("echo bonjour je suis")                                  # simple command
   test("cat < somefile", setup="echo file content > somefile")  # setup
   test("ls > somefile", setup="", files=["somefile"])           # watch a file
   test("echo $A", exports={"A": "a"})                           # export variables
                                                                 # in the environment
   test("echo bonjour", hook=lambda s: s.replace("o", "a"))      # pass the shell output
                                                                 # through a hook function

   test("cat < somefile > otherfile",
        setup="echo file content > somefile",
        files=["otherfile"])

Suite
-----

A test suite is a group of related tests.

.. code:: python

   @suite()  # @suite(bonus=True) if it's a bonus suite
   def suite_yoursuitename(test):
       """ a description of the suite """
       test(...)
       test(...)
       test(...)