File: dundertest.py

package info (click to toggle)
qgis 2.18.28%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,007,948 kB
  • sloc: cpp: 671,774; python: 158,539; xml: 35,690; ansic: 8,346; sh: 1,766; perl: 1,669; sql: 999; yacc: 836; lex: 461; makefile: 292
file content (30 lines) | stat: -rw-r--r-- 898 bytes parent folder | download | duplicates (4)
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
"""
This plugin implements :func:`startTestRun`, which excludes all test objects
that define a ``__test__`` attribute with a truth value of False.
"""
from unittest import TestSuite
from nose2 import events

__unittest = True


class DunderTestFilter(events.Plugin):
    """
    Exclude all tests defining a ``__test__`` attribute with a truth value of
    False.
    """
    alwaysOn = True

    def startTestRun(self, event):
        """
        Recurse :attr:`event.suite` and remove all test suites and test cases
        that define a ``__test__`` attribute with a truth value of False.
        """
        self.removeNonTests(event.suite)

    def removeNonTests(self, suite):
        for test in list(suite):
            if not getattr(test, '__test__', True):
                suite._tests.remove(test)
            elif isinstance(test, TestSuite):
                self.removeNonTests(test)