diff options
author | Petr Viktorin <pviktori@redhat.com> | 2014-10-10 09:47:25 +0200 |
---|---|---|
committer | Tomas Babej <tbabej@redhat.com> | 2014-11-21 12:14:44 +0100 |
commit | 0cb12f3cdef899df47e749ddaef937f7d1bd7a91 (patch) | |
tree | d2dce9d096511170c7a4b3daf90b4b1d36532094 /ipatests/pytest_plugins | |
parent | 07def0b275ea5ff0f7db7627189f3494588e7046 (diff) | |
download | freeipa-0cb12f3cdef899df47e749ddaef937f7d1bd7a91.tar.gz freeipa-0cb12f3cdef899df47e749ddaef937f7d1bd7a91.tar.xz freeipa-0cb12f3cdef899df47e749ddaef937f7d1bd7a91.zip |
Declarative tests: Switch to pytest
Provide a local pytest plugin to generate tests.
The Declarative tests can now only be run with pytest
https://fedorahosted.org/freeipa/ticket/4610
Reviewed-By: Tomas Babej <tbabej@redhat.com>
Diffstat (limited to 'ipatests/pytest_plugins')
-rw-r--r-- | ipatests/pytest_plugins/__init__.py | 0 | ||||
-rw-r--r-- | ipatests/pytest_plugins/declarative.py | 47 |
2 files changed, 47 insertions, 0 deletions
diff --git a/ipatests/pytest_plugins/__init__.py b/ipatests/pytest_plugins/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ipatests/pytest_plugins/__init__.py diff --git a/ipatests/pytest_plugins/declarative.py b/ipatests/pytest_plugins/declarative.py new file mode 100644 index 000000000..1c24cf93d --- /dev/null +++ b/ipatests/pytest_plugins/declarative.py @@ -0,0 +1,47 @@ +# Authors: +# Petr Viktorin <pviktori@redhat.com> +# +# Copyright (C) 2014 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +"""Pytest plugin for Declarative tests""" + + +def pytest_generate_tests(metafunc): + """Generates Declarative tests""" + if 'declarative_test_definition' in metafunc.fixturenames: + name = metafunc.cls.__name__ + tests = [] + descriptions = [] + for i, test in enumerate(metafunc.cls.tests): + if callable(test): + description = '%d: %s' % ( + i, + test.__name__, # test is not a dict. pylint: disable=E1103 + ) + else: + description = '%d: %s: %s' % (i, + test['command'][0], + test.get('desc', '')) + test = dict(test) + test['nice'] = description + tests.append(test) + descriptions.append(description) + metafunc.parametrize( + ['index', 'declarative_test_definition'], + enumerate(tests), + ids=descriptions, + ) |