This patch moves the functions “_ReadTestData” and “_TestDataFilename”
to module level. They do not depend on a class instance at all.

Some cases of “utils.ReadFile(self._TestDataFilename(…))” are also
corrected.

Signed-off-by: Michael Hanselmann <[email protected]>
---
 test/py/ganeti.bdev_unittest.py                    |   22 +++++-----
 test/py/ganeti.cmdlib_unittest.py                  |    4 +-
 test/py/ganeti.hypervisor.hv_kvm_unittest.py       |   23 +++++-----
 test/py/ganeti.netutils_unittest.py                |    8 ++--
 test/py/ganeti.storage_unittest.py                 |   10 ++--
 test/py/ganeti.tools.node_daemon_setup_unittest.py |    8 ++--
 test/py/ganeti.tools.prepare_node_join_unittest.py |    4 +-
 test/py/ganeti.utils.io_unittest.py                |   12 +++---
 test/py/ganeti.utils.process_unittest.py           |    8 ++--
 test/py/ganeti.utils.x509_unittest.py              |   18 ++++----
 test/py/testutils.py                               |   48 ++++++++++----------
 11 files changed, 82 insertions(+), 83 deletions(-)

diff --git a/test/py/ganeti.bdev_unittest.py b/test/py/ganeti.bdev_unittest.py
index 8c20d25..4aa3106 100755
--- a/test/py/ganeti.bdev_unittest.py
+++ b/test/py/ganeti.bdev_unittest.py
@@ -106,7 +106,7 @@ class TestDRBD8Runner(testutils.GanetiTestCase):
 
   def testParser80(self):
     """Test drbdsetup show parser for disk and network version 8.0"""
-    data = self._ReadTestData("bdev-drbd-8.0.txt")
+    data = testutils.ReadTestData("bdev-drbd-8.0.txt")
     result = bdev.DRBD8._GetDevInfo(data)
     self.failUnless(self._has_disk(result, "/dev/xenvg/test.data",
                                    "/dev/xenvg/test.meta"),
@@ -117,7 +117,7 @@ class TestDRBD8Runner(testutils.GanetiTestCase):
 
   def testParser83(self):
     """Test drbdsetup show parser for disk and network version 8.3"""
-    data = self._ReadTestData("bdev-drbd-8.3.txt")
+    data = testutils.ReadTestData("bdev-drbd-8.3.txt")
     result = bdev.DRBD8._GetDevInfo(data)
     self.failUnless(self._has_disk(result, "/dev/xenvg/test.data",
                                    "/dev/xenvg/test.meta"),
@@ -128,7 +128,7 @@ class TestDRBD8Runner(testutils.GanetiTestCase):
 
   def testParserNetIP4(self):
     """Test drbdsetup show parser for IPv4 network"""
-    data = self._ReadTestData("bdev-drbd-net-ip4.txt")
+    data = testutils.ReadTestData("bdev-drbd-net-ip4.txt")
     result = bdev.DRBD8._GetDevInfo(data)
     self.failUnless(("local_dev" not in result and
                      "meta_dev" not in result and
@@ -140,7 +140,7 @@ class TestDRBD8Runner(testutils.GanetiTestCase):
 
   def testParserNetIP6(self):
     """Test drbdsetup show parser for IPv6 network"""
-    data = self._ReadTestData("bdev-drbd-net-ip6.txt")
+    data = testutils.ReadTestData("bdev-drbd-net-ip6.txt")
     result = bdev.DRBD8._GetDevInfo(data)
     self.failUnless(("local_dev" not in result and
                      "meta_dev" not in result and
@@ -152,7 +152,7 @@ class TestDRBD8Runner(testutils.GanetiTestCase):
 
   def testParserDisk(self):
     """Test drbdsetup show parser for disk"""
-    data = self._ReadTestData("bdev-drbd-disk.txt")
+    data = testutils.ReadTestData("bdev-drbd-disk.txt")
     result = bdev.DRBD8._GetDevInfo(data)
     self.failUnless(self._has_disk(result, "/dev/xenvg/test.data",
                                    "/dev/xenvg/test.meta"),
@@ -237,12 +237,12 @@ class TestDRBD8Status(testutils.GanetiTestCase):
   def setUp(self):
     """Read in txt data"""
     testutils.GanetiTestCase.setUp(self)
-    proc_data = self._TestDataFilename("proc_drbd8.txt")
-    proc80e_data = self._TestDataFilename("proc_drbd80-emptyline.txt")
-    proc83_data = self._TestDataFilename("proc_drbd83.txt")
-    proc83_sync_data = self._TestDataFilename("proc_drbd83_sync.txt")
+    proc_data = testutils.TestDataFilename("proc_drbd8.txt")
+    proc80e_data = testutils.TestDataFilename("proc_drbd80-emptyline.txt")
+    proc83_data = testutils.TestDataFilename("proc_drbd83.txt")
+    proc83_sync_data = testutils.TestDataFilename("proc_drbd83_sync.txt")
     proc83_sync_krnl_data = \
-      self._TestDataFilename("proc_drbd83_sync_krnl2.6.39.txt")
+      testutils.TestDataFilename("proc_drbd83_sync_krnl2.6.39.txt")
     self.proc_data = bdev.DRBD8._GetProcData(filename=proc_data)
     self.proc80e_data = bdev.DRBD8._GetProcData(filename=proc80e_data)
     self.proc83_data = bdev.DRBD8._GetProcData(filename=proc83_data)
@@ -265,7 +265,7 @@ class TestDRBD8Status(testutils.GanetiTestCase):
 
   def testHelper(self):
     """Test reading usermode_helper in /sys."""
-    sys_drbd_helper = self._TestDataFilename("sys_drbd_usermode_helper.txt")
+    sys_drbd_helper = 
testutils.TestDataFilename("sys_drbd_usermode_helper.txt")
     drbd_helper = bdev.DRBD8.GetUsermodeHelper(filename=sys_drbd_helper)
     self.failUnlessEqual(drbd_helper, "/bin/true")
 
diff --git a/test/py/ganeti.cmdlib_unittest.py 
b/test/py/ganeti.cmdlib_unittest.py
index b1c5f02..5df77eb 100755
--- a/test/py/ganeti.cmdlib_unittest.py
+++ b/test/py/ganeti.cmdlib_unittest.py
@@ -61,7 +61,7 @@ class TestCertVerification(testutils.GanetiTestCase):
     shutil.rmtree(self.tmpdir)
 
   def testVerifyCertificate(self):
-    cmdlib._VerifyCertificate(self._TestDataFilename("cert1.pem"))
+    cmdlib._VerifyCertificate(testutils.TestDataFilename("cert1.pem"))
 
     nonexist_filename = os.path.join(self.tmpdir, "does-not-exist")
 
@@ -69,7 +69,7 @@ class TestCertVerification(testutils.GanetiTestCase):
     self.assertEqual(errcode, cmdlib.LUClusterVerifyConfig.ETYPE_ERROR)
 
     # Try to load non-certificate file
-    invalid_cert = self._TestDataFilename("bdev-net.txt")
+    invalid_cert = testutils.TestDataFilename("bdev-net.txt")
     (errcode, msg) = cmdlib._VerifyCertificate(invalid_cert)
     self.assertEqual(errcode, cmdlib.LUClusterVerifyConfig.ETYPE_ERROR)
 
diff --git a/test/py/ganeti.hypervisor.hv_kvm_unittest.py 
b/test/py/ganeti.hypervisor.hv_kvm_unittest.py
index fdf1da1..b7816f2 100755
--- a/test/py/ganeti.hypervisor.hv_kvm_unittest.py
+++ b/test/py/ganeti.hypervisor.hv_kvm_unittest.py
@@ -248,11 +248,11 @@ class TestConsole(unittest.TestCase):
 class TestVersionChecking(testutils.GanetiTestCase):
   def testParseVersion(self):
     parse = hv_kvm.KVMHypervisor._ParseKVMVersion
-    help_112 = utils.ReadFile(self._TestDataFilename("kvm_1.1.2_help.txt"))
-    help_10 = utils.ReadFile(self._TestDataFilename("kvm_1.0_help.txt"))
-    help_01590 = utils.ReadFile(self._TestDataFilename("kvm_0.15.90_help.txt"))
-    help_0125 = utils.ReadFile(self._TestDataFilename("kvm_0.12.5_help.txt"))
-    help_091 = utils.ReadFile(self._TestDataFilename("kvm_0.9.1_help.txt"))
+    help_112 = testutils.ReadTestData("kvm_1.1.2_help.txt")
+    help_10 = testutils.ReadTestData("kvm_1.0_help.txt")
+    help_01590 = testutils.ReadTestData("kvm_0.15.90_help.txt")
+    help_0125 = testutils.ReadTestData("kvm_0.12.5_help.txt")
+    help_091 = testutils.ReadTestData("kvm_0.9.1_help.txt")
     self.assertEqual(parse(help_112), ("1.1.2", 1, 1, 2))
     self.assertEqual(parse(help_10), ("1.0", 1, 0, 0))
     self.assertEqual(parse(help_01590), ("0.15.90", 0, 15, 90))
@@ -300,13 +300,12 @@ class TestHelpRegexps(testutils.GanetiTestCase):
 
     """
     boot_re = hv_kvm.KVMHypervisor._BOOT_RE
-    help_112 = utils.ReadFile(self._TestDataFilename("kvm_1.1.2_help.txt"))
-    help_10 = utils.ReadFile(self._TestDataFilename("kvm_1.0_help.txt"))
-    help_01590 = utils.ReadFile(self._TestDataFilename("kvm_0.15.90_help.txt"))
-    help_0125 = utils.ReadFile(self._TestDataFilename("kvm_0.12.5_help.txt"))
-    help_091 = utils.ReadFile(self._TestDataFilename("kvm_0.9.1_help.txt"))
-    help_091_fake = utils.ReadFile(
-      self._TestDataFilename("kvm_0.9.1_help_boot_test.txt"))
+    help_112 = testutils.ReadTestData("kvm_1.1.2_help.txt")
+    help_10 = testutils.ReadTestData("kvm_1.0_help.txt")
+    help_01590 = testutils.ReadTestData("kvm_0.15.90_help.txt")
+    help_0125 = testutils.ReadTestData("kvm_0.12.5_help.txt")
+    help_091 = testutils.ReadTestData("kvm_0.9.1_help.txt")
+    help_091_fake = testutils.ReadTestData("kvm_0.9.1_help_boot_test.txt")
 
     self.assertTrue(boot_re.search(help_091))
     self.assertTrue(boot_re.search(help_0125))
diff --git a/test/py/ganeti.netutils_unittest.py 
b/test/py/ganeti.netutils_unittest.py
index dcb7c4e..79aeed8 100755
--- a/test/py/ganeti.netutils_unittest.py
+++ b/test/py/ganeti.netutils_unittest.py
@@ -502,7 +502,7 @@ class TestIpParsing(testutils.GanetiTestCase):
     # IPv4-only, fake loopback interface
     tests = ["ip-addr-show-lo-ipv4.txt", "ip-addr-show-lo-oneline-ipv4.txt"]
     for test_file in tests:
-      data = self._ReadTestData(test_file)
+      data = testutils.ReadTestData(test_file)
       addr = netutils._GetIpAddressesFromIpOutput(data)
       self.failUnless(len(addr[4]) == 1 and addr[4][0] == "127.0.0.1" and not
                       addr[6])
@@ -510,20 +510,20 @@ class TestIpParsing(testutils.GanetiTestCase):
     # IPv6-only, fake loopback interface
     tests = ["ip-addr-show-lo-ipv6.txt", "ip-addr-show-lo-ipv6.txt"]
     for test_file in tests:
-      data = self._ReadTestData(test_file)
+      data = testutils.ReadTestData(test_file)
       addr = netutils._GetIpAddressesFromIpOutput(data)
       self.failUnless(len(addr[6]) == 1 and addr[6][0] == "::1" and not 
addr[4])
 
     # IPv4 and IPv6, fake loopback interface
     tests = ["ip-addr-show-lo.txt", "ip-addr-show-lo-oneline.txt"]
     for test_file in tests:
-      data = self._ReadTestData(test_file)
+      data = testutils.ReadTestData(test_file)
       addr = netutils._GetIpAddressesFromIpOutput(data)
       self.failUnless(len(addr[6]) == 1 and addr[6][0] == "::1" and
                       len(addr[4]) == 1 and addr[4][0] == "127.0.0.1")
 
     # IPv4 and IPv6, dummy interface
-    data = self._ReadTestData("ip-addr-show-dummy0.txt")
+    data = testutils.ReadTestData("ip-addr-show-dummy0.txt")
     addr = netutils._GetIpAddressesFromIpOutput(data)
     self.failUnless(len(addr[6]) == 1 and
                     addr[6][0] == "2001:db8:85a3::8a2e:370:7334" and
diff --git a/test/py/ganeti.storage_unittest.py 
b/test/py/ganeti.storage_unittest.py
index add0743..0c62abc 100755
--- a/test/py/ganeti.storage_unittest.py
+++ b/test/py/ganeti.storage_unittest.py
@@ -48,8 +48,8 @@ class TestVGReduce(testutils.GanetiTestCase):
 
   def testOldVersion(self):
     lvmvg = storage.LvmVgStorage()
-    stdout = self._ReadTestData("vgreduce-removemissing-2.02.02.txt")
-    vgs_fail = self._ReadTestData("vgs-missing-pvs-2.02.02.txt")
+    stdout = testutils.ReadTestData("vgreduce-removemissing-2.02.02.txt")
+    vgs_fail = testutils.ReadTestData("vgs-missing-pvs-2.02.02.txt")
     self.run_history = [
       ([self.VGREDUCE_CMD, "--removemissing", self.VGNAME],
        utils.RunResult(0, None, stdout, "", "", None, None)),
@@ -71,9 +71,9 @@ class TestVGReduce(testutils.GanetiTestCase):
 
   def testNewVersion(self):
     lvmvg = storage.LvmVgStorage()
-    stdout1 = self._ReadTestData("vgreduce-removemissing-2.02.66-fail.txt")
-    stdout2 = self._ReadTestData("vgreduce-removemissing-2.02.66-ok.txt")
-    vgs_fail = self._ReadTestData("vgs-missing-pvs-2.02.66.txt")
+    stdout1 = testutils.ReadTestData("vgreduce-removemissing-2.02.66-fail.txt")
+    stdout2 = testutils.ReadTestData("vgreduce-removemissing-2.02.66-ok.txt")
+    vgs_fail = testutils.ReadTestData("vgs-missing-pvs-2.02.66.txt")
     # first: require --fail, check that it's used
     self.run_history = [
       ([self.VGREDUCE_CMD, "--removemissing", self.VGNAME],
diff --git a/test/py/ganeti.tools.node_daemon_setup_unittest.py 
b/test/py/ganeti.tools.node_daemon_setup_unittest.py
index da06d7e..9abeb2a 100755
--- a/test/py/ganeti.tools.node_daemon_setup_unittest.py
+++ b/test/py/ganeti.tools.node_daemon_setup_unittest.py
@@ -79,7 +79,7 @@ class TestVerifyCertificate(testutils.GanetiTestCase):
       }, _verify_fn=lambda _: None)
 
   def testNoPrivateKey(self):
-    cert_filename = self._TestDataFilename("cert1.pem")
+    cert_filename = testutils.TestDataFilename("cert1.pem")
     cert_pem = utils.ReadFile(cert_filename)
 
     self.assertRaises(errors.X509CertError,
@@ -97,7 +97,7 @@ class TestVerifyCertificate(testutils.GanetiTestCase):
     assert cert.get_subject()
 
   def testSuccessfulCheck(self):
-    cert_filename = self._TestDataFilename("cert2.pem")
+    cert_filename = testutils.TestDataFilename("cert2.pem")
     cert_pem = utils.ReadFile(cert_filename)
     result = \
       node_daemon_setup._VerifyCertificate(cert_pem, _check_fn=self._Check)
@@ -109,8 +109,8 @@ class TestVerifyCertificate(testutils.GanetiTestCase):
     self.assertTrue(key)
 
   def testMismatchingKey(self):
-    cert1_path = self._TestDataFilename("cert1.pem")
-    cert2_path = self._TestDataFilename("cert2.pem")
+    cert1_path = testutils.TestDataFilename("cert1.pem")
+    cert2_path = testutils.TestDataFilename("cert2.pem")
 
     # Extract certificate
     cert1 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,
diff --git a/test/py/ganeti.tools.prepare_node_join_unittest.py 
b/test/py/ganeti.tools.prepare_node_join_unittest.py
index 92820cf..54d1d62 100755
--- a/test/py/ganeti.tools.prepare_node_join_unittest.py
+++ b/test/py/ganeti.tools.prepare_node_join_unittest.py
@@ -73,7 +73,7 @@ class TestVerifyCertificate(testutils.GanetiTestCase):
     prepare_node_join.VerifyCertificate({}, _verify_fn=NotImplemented)
 
   def testGivenPrivateKey(self):
-    cert_filename = self._TestDataFilename("cert2.pem")
+    cert_filename = testutils.TestDataFilename("cert2.pem")
     cert_pem = utils.ReadFile(cert_filename)
 
     self.assertRaises(_JoinError, prepare_node_join._VerifyCertificate,
@@ -90,7 +90,7 @@ class TestVerifyCertificate(testutils.GanetiTestCase):
     assert cert.get_subject()
 
   def testSuccessfulCheck(self):
-    cert_filename = self._TestDataFilename("cert1.pem")
+    cert_filename = testutils.TestDataFilename("cert1.pem")
     cert_pem = utils.ReadFile(cert_filename)
     prepare_node_join._VerifyCertificate(cert_pem, _check_fn=self._Check)
 
diff --git a/test/py/ganeti.utils.io_unittest.py 
b/test/py/ganeti.utils.io_unittest.py
index 8cee74b..12cc4df 100755
--- a/test/py/ganeti.utils.io_unittest.py
+++ b/test/py/ganeti.utils.io_unittest.py
@@ -41,7 +41,7 @@ import testutils
 
 class TestReadFile(testutils.GanetiTestCase):
   def testReadAll(self):
-    data = utils.ReadFile(self._TestDataFilename("cert1.pem"))
+    data = utils.ReadFile(testutils.TestDataFilename("cert1.pem"))
     self.assertEqual(len(data), 814)
 
     h = compat.md5_hash()
@@ -49,7 +49,7 @@ class TestReadFile(testutils.GanetiTestCase):
     self.assertEqual(h.hexdigest(), "a491efb3efe56a0535f924d5f8680fd4")
 
   def testReadSize(self):
-    data = utils.ReadFile(self._TestDataFilename("cert1.pem"),
+    data = utils.ReadFile(testutils.TestDataFilename("cert1.pem"),
                           size=100)
     self.assertEqual(len(data), 100)
 
@@ -60,7 +60,7 @@ class TestReadFile(testutils.GanetiTestCase):
   def testCallback(self):
     def _Cb(fh):
       self.assertEqual(fh.tell(), 0)
-    data = utils.ReadFile(self._TestDataFilename("cert1.pem"), preread=_Cb)
+    data = utils.ReadFile(testutils.TestDataFilename("cert1.pem"), preread=_Cb)
     self.assertEqual(len(data), 814)
 
   def testError(self):
@@ -73,19 +73,19 @@ class TestReadOneLineFile(testutils.GanetiTestCase):
     testutils.GanetiTestCase.setUp(self)
 
   def testDefault(self):
-    data = utils.ReadOneLineFile(self._TestDataFilename("cert1.pem"))
+    data = utils.ReadOneLineFile(testutils.TestDataFilename("cert1.pem"))
     self.assertEqual(len(data), 27)
     self.assertEqual(data, "-----BEGIN CERTIFICATE-----")
 
   def testNotStrict(self):
-    data = utils.ReadOneLineFile(self._TestDataFilename("cert1.pem"),
+    data = utils.ReadOneLineFile(testutils.TestDataFilename("cert1.pem"),
                                  strict=False)
     self.assertEqual(len(data), 27)
     self.assertEqual(data, "-----BEGIN CERTIFICATE-----")
 
   def testStrictFailure(self):
     self.assertRaises(errors.GenericError, utils.ReadOneLineFile,
-                      self._TestDataFilename("cert1.pem"), strict=True)
+                      testutils.TestDataFilename("cert1.pem"), strict=True)
 
   def testLongLine(self):
     dummydata = (1024 * "Hello World! ")
diff --git a/test/py/ganeti.utils.process_unittest.py 
b/test/py/ganeti.utils.process_unittest.py
index f3fbce6..2e36cfa 100755
--- a/test/py/ganeti.utils.process_unittest.py
+++ b/test/py/ganeti.utils.process_unittest.py
@@ -379,7 +379,7 @@ class TestRunCmd(testutils.GanetiTestCase):
       temp.close()
 
   def testNoInputRead(self):
-    testfile = self._TestDataFilename("cert1.pem")
+    testfile = testutils.TestDataFilename("cert1.pem")
 
     result = utils.RunCmd(["cat"], timeout=10.0)
     self.assertFalse(result.failed)
@@ -387,7 +387,7 @@ class TestRunCmd(testutils.GanetiTestCase):
     self.assertEqual(result.stdout, "")
 
   def testInputFileHandle(self):
-    testfile = self._TestDataFilename("cert1.pem")
+    testfile = testutils.TestDataFilename("cert1.pem")
 
     result = utils.RunCmd(["cat"], input_fd=open(testfile, "r"))
     self.assertFalse(result.failed)
@@ -395,7 +395,7 @@ class TestRunCmd(testutils.GanetiTestCase):
     self.assertEqual(result.stderr, "")
 
   def testInputNumericFileDescriptor(self):
-    testfile = self._TestDataFilename("cert2.pem")
+    testfile = testutils.TestDataFilename("cert2.pem")
 
     fh = open(testfile, "r")
     try:
@@ -408,7 +408,7 @@ class TestRunCmd(testutils.GanetiTestCase):
     self.assertEqual(result.stderr, "")
 
   def testInputWithCloseFds(self):
-    testfile = self._TestDataFilename("cert1.pem")
+    testfile = testutils.TestDataFilename("cert1.pem")
 
     temp = open(self.fname, "r+")
     try:
diff --git a/test/py/ganeti.utils.x509_unittest.py 
b/test/py/ganeti.utils.x509_unittest.py
index d799c01..a95bafc 100755
--- a/test/py/ganeti.utils.x509_unittest.py
+++ b/test/py/ganeti.utils.x509_unittest.py
@@ -82,7 +82,7 @@ class TestGetX509CertValidity(testutils.GanetiTestCase):
 
   def _LoadCert(self, name):
     return OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,
-                                           self._ReadTestData(name))
+                                           testutils.ReadTestData(name))
 
   def test(self):
     validity = utils.GetX509CertValidity(self._LoadCert("cert1.pem"))
@@ -157,7 +157,7 @@ class TestCertVerification(testutils.GanetiTestCase):
     shutil.rmtree(self.tmpdir)
 
   def testVerifyCertificate(self):
-    cert_pem = utils.ReadFile(self._TestDataFilename("cert1.pem"))
+    cert_pem = testutils.ReadTestData("cert1.pem")
     cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,
                                            cert_pem)
 
@@ -297,8 +297,8 @@ class TestCheckNodeCertificate(testutils.GanetiTestCase):
     shutil.rmtree(self.tmpdir)
 
   def testMismatchingKey(self):
-    other_cert = self._TestDataFilename("cert1.pem")
-    node_cert = self._TestDataFilename("cert2.pem")
+    other_cert = testutils.TestDataFilename("cert1.pem")
+    node_cert = testutils.TestDataFilename("cert2.pem")
 
     cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,
                                            utils.ReadFile(other_cert))
@@ -312,7 +312,7 @@ class TestCheckNodeCertificate(testutils.GanetiTestCase):
       self.fail("Exception was not raised")
 
   def testMatchingKey(self):
-    cert_filename = self._TestDataFilename("cert2.pem")
+    cert_filename = testutils.TestDataFilename("cert2.pem")
 
     # Extract certificate
     cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,
@@ -323,7 +323,7 @@ class TestCheckNodeCertificate(testutils.GanetiTestCase):
     utils.CheckNodeCertificate(cert, _noded_cert_file=cert_filename)
 
   def testMissingFile(self):
-    cert_path = self._TestDataFilename("cert1.pem")
+    cert_path = testutils.TestDataFilename("cert1.pem")
     nodecert = utils.PathJoin(self.tmpdir, "does-not-exist")
 
     utils.CheckNodeCertificate(NotImplemented, _noded_cert_file=nodecert)
@@ -338,13 +338,13 @@ class TestCheckNodeCertificate(testutils.GanetiTestCase):
                       NotImplemented, _noded_cert_file=tmpfile)
 
   def testNoPrivateKey(self):
-    cert = self._TestDataFilename("cert1.pem")
+    cert = testutils.TestDataFilename("cert1.pem")
     self.assertRaises(errors.X509CertError, utils.CheckNodeCertificate,
                       NotImplemented, _noded_cert_file=cert)
 
   def testMismatchInNodeCert(self):
-    cert1_path = self._TestDataFilename("cert1.pem")
-    cert2_path = self._TestDataFilename("cert2.pem")
+    cert1_path = testutils.TestDataFilename("cert1.pem")
+    cert2_path = testutils.TestDataFilename("cert2.pem")
     tmpfile = utils.PathJoin(self.tmpdir, "cert")
 
     # Extract certificate
diff --git a/test/py/testutils.py b/test/py/testutils.py
index 3fcfbc4..b8b644f 100644
--- a/test/py/testutils.py
+++ b/test/py/testutils.py
@@ -36,6 +36,30 @@ def GetSourceDir():
   return os.environ.get("TOP_SRCDIR", ".")
 
 
+def TestDataFilename(name):
+  """Returns the filename of a given test data file.
+
+  @type name: str
+  @param name: the 'base' of the file name, as present in
+      the test/data directory
+  @rtype: str
+  @return: the full path to the filename, such that it can
+      be used in 'make distcheck' rules
+
+  """
+  return "%s/test/data/%s" % (GetSourceDir(), name)
+
+
+def ReadTestData(name):
+  """Returns the contents of a test data file.
+
+  This is just a very simple wrapper over utils.ReadFile with the
+  proper test file name.
+
+  """
+  return utils.ReadFile(TestDataFilename(name))
+
+
 def _SetupLogging(verbose):
   """Setupup logging infrastructure.
 
@@ -172,30 +196,6 @@ class GanetiTestCase(unittest.TestCase):
                             UnifyValueType(second),
                             msg=msg)
 
-  @staticmethod
-  def _TestDataFilename(name):
-    """Returns the filename of a given test data file.
-
-    @type name: str
-    @param name: the 'base' of the file name, as present in
-        the test/data directory
-    @rtype: str
-    @return: the full path to the filename, such that it can
-        be used in 'make distcheck' rules
-
-    """
-    return "%s/test/data/%s" % (GetSourceDir(), name)
-
-  @classmethod
-  def _ReadTestData(cls, name):
-    """Returns the contents of a test data file.
-
-    This is just a very simple wrapper over utils.ReadFile with the
-    proper test file name.
-
-    """
-    return utils.ReadFile(cls._TestDataFilename(name))
-
   def _CreateTempFile(self):
     """Creates a temporary file and adds it to the internal cleanup list.
 
-- 
1.7.7.3

Reply via email to