aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/tests/util/helper/docmodifier.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside2/tests/util/helper/docmodifier.py')
-rw-r--r--sources/pyside2/tests/util/helper/docmodifier.py116
1 files changed, 0 insertions, 116 deletions
diff --git a/sources/pyside2/tests/util/helper/docmodifier.py b/sources/pyside2/tests/util/helper/docmodifier.py
deleted file mode 100644
index 5db344f62..000000000
--- a/sources/pyside2/tests/util/helper/docmodifier.py
+++ /dev/null
@@ -1,116 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Helper metaclass do 'decorate' docstrings from base test case classes'''
-
-import types
-
-
-def copy_func(func):
- '''Helper function to copy a function object (except docstring)'''
- return types.FunctionType(func.func_code, func.func_globals, func.func_name,
- func.func_defaults, func.func_closure)
-
-
-class DocModifier(type):
- '''Metaclass for modifiying method documentation.
-
- It allows the managed class to modify the method documentation, adding
- prefixes and suffixes to a given set of methods.
-
- For example, you have some unittest.TestCases that run on different set
- of data. These methods could be written once in a base class and the
- inheriting class just setup different setUp/tearDown methods with the
- proper data. To differentiate the methods when using docstrings, you
- can add a suffix or prefix to the docstring.
-
- Variables in the implementing class:
-
- doc_prefix - The prefix to the docstring
- doc_suffix - The suffix to the docstring
- doc_filter - The function to filter the methods. If not provided, this
- no docstrings are changed.'''
-
- def __new__(mcs, name, bases, dct):
-
- # FIXME currently we have to define doc_filter on each subclass
- filter_function = dct.get('doc_filter')
- if not filter_function:
- filter_function = lambda x: False
-
- for base in bases:
- for attr in [x for x in base.__dict__ if filter_function(x)]:
- original = getattr(base, attr)
-
- if original.__doc__:
- copy = copy_func(original)
- copy.__doc__ = (dct.get('doc_prefix', '') +
- original.__doc__ +
- dct.get('doc_suffix', ''))
- dct[attr] = copy
-
- return type.__new__(mcs, name, bases, dct)
-
- def __init__(mcs, name, bases, dct):
- super(DocModifier, mcs).__init__(name, bases, dct)
-
-
-if __name__ == '__main__':
-
- # tests
- class BaseTest(object):
- __metaclass__ = DocModifier
-
- def testBase(self):
- '''base'''
-
- def testWithoutDoc(self):
- pass
-
- class Implementing(BaseTest):
-
- doc_filter = lambda x: x.startswith('test')
- doc_prefix = 'prefix'
- doc_suffix = 'suffix'
-
- class OnlyPrefix(BaseTest):
-
- doc_filter = lambda x: x.startswith('test')
- doc_prefix = 'prefix'
-
- class OnlySuffix(BaseTest):
-
- doc_filter = lambda x: x.startswith('test')
- doc_suffix = 'suffix'
-
- assert(Implementing.testBase.__doc__ == 'prefixbasesuffix')
- assert(Implementing.testWithoutDoc.__doc__ == None)
- assert(OnlySuffix.testBase.__doc__ == 'basesuffix')
- assert(OnlySuffix.testWithoutDoc.__doc__ == None)
- assert(OnlyPrefix.testBase.__doc__ == 'prefixbase')
- assert(OnlyPrefix.testWithoutDoc.__doc__ == None)