From 72e60fd4eabcfbcdbfe01e8c38b94052bc6c2067 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Tue, 12 Jul 2011 21:22:22 +0200 Subject: Fix python HBAC bindings for python <= 2.4 Several parts of the HBAC python bindings did not work with old Python versions, such as the one shipped in RHEL5. The changes include: * a compatibility wrapper around python set object * PyModule_AddIntMacro compat macro * Py_ssize_t compat definition * Do not use PyUnicode_FromFormat * several function prototypes and structures used to have "char arguments where they have "const char *" in recent versions. This caused compilation warnings this patch mitigates by using the discard_const hack on python 2.4 --- src/tests/pyhbac-test.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/tests/pyhbac-test.py') diff --git a/src/tests/pyhbac-test.py b/src/tests/pyhbac-test.py index b15d1653..b19fe586 100755 --- a/src/tests/pyhbac-test.py +++ b/src/tests/pyhbac-test.py @@ -11,10 +11,10 @@ if not srcdir: MODPATH = srcdir + "/.libs" #FIXME - is there a way to get this from libtool? def compat_assertItemsEqual(this, expected_seq, actual_seq, msg=None): - return self.assertEqual(sorted(expected_seq), sorted(actual_seq)) + return this.assertEqual(sorted(expected_seq), sorted(actual_seq)) def compat_assertIsInstance(this, obj, cls, msg=None): - return self.assertTrue(isinstance(obj, cls)) + return this.assertTrue(isinstance(obj, cls)) # add compat methods for old unittest.TestCase versions # (python < 2.7, RHEL5 for instance) @@ -312,7 +312,8 @@ class PyHbacRequestTest(unittest.TestCase): def testRuleName(self): req = pyhbac.HbacRequest() self.assertEqual(req.rule_name, None) - self.assertRaises(AttributeError, req.__setattr__, "rule_name", "foo") + # python 2.4 raises TypError, 2.7 raises AttributeError + self.assertRaises((TypeError, AttributeError), req.__setattr__, "rule_name", "foo") def testEvaluate(self): name = "someuser" -- cgit