summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--selftest/testlist.py36
-rw-r--r--selftest/tests/__init__.py2
-rw-r--r--selftest/tests/test_testlist.py36
3 files changed, 73 insertions, 1 deletions
diff --git a/selftest/testlist.py b/selftest/testlist.py
new file mode 100644
index 0000000000..8fb31fd898
--- /dev/null
+++ b/selftest/testlist.py
@@ -0,0 +1,36 @@
+# testlist.py -- Test list
+# Copyright (C) 2012 Jelmer Vernooij <jelmer@samba.org>
+#
+# 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; version 3
+# of the License or (at your option) any later version of
+# the License.
+#
+# 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+"""Selftest test list management."""
+
+__all__ = ['find_in_list']
+
+import re
+
+def find_in_list(list, fullname):
+ """Find test in list.
+
+ """
+ for (regex, reason) in list:
+ if re.match(regex, fullname):
+ if reason is not None:
+ return reason
+ else:
+ return ""
+ return None
diff --git a/selftest/tests/__init__.py b/selftest/tests/__init__.py
index 6eb4bb9bc6..12bcf43b9b 100644
--- a/selftest/tests/__init__.py
+++ b/selftest/tests/__init__.py
@@ -23,7 +23,7 @@ import unittest
def test_suite():
result = unittest.TestSuite()
- names = ['socket_wrapper', 'target']
+ names = ['socket_wrapper', 'target', 'testlist']
module_names = ['selftest.tests.test_' + name for name in names]
loader = unittest.TestLoader()
result.addTests(loader.loadTestsFromNames(module_names))
diff --git a/selftest/tests/test_testlist.py b/selftest/tests/test_testlist.py
new file mode 100644
index 0000000000..e62300cace
--- /dev/null
+++ b/selftest/tests/test_testlist.py
@@ -0,0 +1,36 @@
+# test_testlist.py -- The tests for selftest testlist code
+# Copyright (C) 2012 Jelmer Vernooij <jelmer@samba.org>
+#
+# 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; version 3
+# of the License or (at your option) any later version of
+# the License.
+#
+# 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+"""Tests for selftest.testlist."""
+
+from selftest.testlist import (
+ find_in_list,
+ )
+
+import unittest
+
+
+class FindInListTests(unittest.TestCase):
+
+ def test_empty(self):
+ self.assertIs(None, find_in_list([], "foo.test"))
+
+ def test_no_reason(self):
+ self.assertEquals("because",
+ find_in_list([("foo.*bar", "because")], "foo.bla.bar"))