Rev 3200: Load test id list from a text file. in file:///v/home/vila/src/bzr/experimental/selftest/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Mon Jan 21 10:16:27 GMT 2008
At file:///v/home/vila/src/bzr/experimental/selftest/
------------------------------------------------------------
revno: 3200
revision-id:v.ladeuil+lp at free.fr-20080121101622-pj98frqla59g5olb
parent: v.ladeuil+lp at free.fr-20080120225939-i38w6p3mgfkr53mo
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: selftest
timestamp: Mon 2008-01-21 11:16:22 +0100
message:
Load test id list from a text file.
* bzrlib/tests/test_selftest.py:
(TestLoadTestIdList): Test loading test id lists.
* bzrlib/tests/__init__.py:
(load_test_id_list): Load a test id list from a text file.
modified:
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
-------------- next part --------------
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py 2008-01-20 22:59:39 +0000
+++ b/bzrlib/tests/__init__.py 2008-01-21 10:16:22 +0000
@@ -2556,6 +2556,29 @@
default_transport = old_transport
+def load_test_id_list(file_name):
+ """Load a test id list from a text file.
+
+ The format is one test id by line. No special care is taken to impose
+ strict rules, these test ids are used to filter the test suite so a test id
+ that do not match an existing test will do no harm. This allows user to add
+ comments, leave blank lines, etc.
+ """
+ test_list = []
+ try:
+ ftest = open(file_name, 'rt')
+ except IOError, e:
+ if e.errno != errno.ENOENT:
+ raise
+ else:
+ raise errors.NoSuchFile(file_name)
+
+ for test_name in ftest.readlines():
+ test_list.append(test_name.strip())
+ ftest.close()
+ return test_list
+
+
class TestIdListFilter(object):
"""Test suite filter against a test id list.
=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py 2008-01-20 22:59:39 +0000
+++ b/bzrlib/tests/test_selftest.py 2008-01-21 10:16:22 +0000
@@ -1992,3 +1992,38 @@
suite = tests.test_suite(test_list)
self.assertEquals(len(test_list), suite.countTestCases())
self.assertEquals(test_list, self._test_ids(suite))
+
+
+class TestLoadTestIdList(tests.TestCaseInTempDir):
+
+ def _create_test_list_file(self, file_name, content):
+ fl = open(file_name, 'wt')
+ fl.write(content)
+ fl.close()
+
+ def test_load_unknown(self):
+ self.assertRaises(errors.NoSuchFile,
+ tests.load_test_id_list, 'i_do_not_exist')
+
+ def test_load_test_list(self):
+ test_list_fname = 'test.list'
+ self._create_test_list_file(test_list_fname,
+ 'mod1.cl1.meth1\nmod2.cl2.meth2\n')
+ tlist = tests.load_test_id_list(test_list_fname)
+ self.assertEquals(2, len(tlist))
+ self.assertEquals('mod1.cl1.meth1', tlist[0])
+ self.assertEquals('mod2.cl2.meth2', tlist[1])
+
+ def test_load_dirty_file(self):
+ test_list_fname = 'test.list'
+ self._create_test_list_file(test_list_fname,
+ ' mod1.cl1.meth1\n\nmod2.cl2.meth2 \n'
+ 'bar baz\n')
+ tlist = tests.load_test_id_list(test_list_fname)
+ self.assertEquals(4, len(tlist))
+ self.assertEquals('mod1.cl1.meth1', tlist[0])
+ self.assertEquals('', tlist[1])
+ self.assertEquals('mod2.cl2.meth2', tlist[2])
+ self.assertEquals('bar baz', tlist[3])
+
+
More information about the bazaar-commits
mailing list