From f128bfd44988a4db90222e7d5af5ab94337a065d Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 21 Apr 2009 12:06:04 +0200 Subject: [PATCH] Add str() for policy_handles. Pair programmed with Jelmer --- source4/librpc/ndr/py_misc.c | 12 +++++++++++- source4/scripting/python/samba/tests/dcerpc/misc.py | 7 ++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/source4/librpc/ndr/py_misc.c b/source4/librpc/ndr/py_misc.c index b56c355fc3b..5d5b881b388 100644 --- a/source4/librpc/ndr/py_misc.c +++ b/source4/librpc/ndr/py_misc.c @@ -115,7 +115,16 @@ static PyObject *py_policy_handle_repr(PyObject *py_self) { struct policy_handle *self = py_talloc_get_ptr(py_self); char *uuid_str = GUID_string(NULL, &self->uuid); - PyObject *ret = PyString_FromFormat("policy_handle('%s', %d)", uuid_str, self->handle_type); + PyObject *ret = PyString_FromFormat("policy_handle(%d, '%s')", self->handle_type, uuid_str); + talloc_free(uuid_str); + return ret; +} + +static PyObject *py_policy_handle_str(PyObject *py_self) +{ + struct policy_handle *self = py_talloc_get_ptr(py_self); + char *uuid_str = GUID_string(NULL, &self->uuid); + PyObject *ret = PyString_FromFormat("%d, %s", self->handle_type, uuid_str); talloc_free(uuid_str); return ret; } @@ -124,6 +133,7 @@ static void py_policy_handle_patch(PyTypeObject *type) { type->tp_init = py_policy_handle_init; type->tp_repr = py_policy_handle_repr; + type->tp_str = py_policy_handle_str; } #define PY_POLICY_HANDLE_PATCH py_policy_handle_patch diff --git a/source4/scripting/python/samba/tests/dcerpc/misc.py b/source4/scripting/python/samba/tests/dcerpc/misc.py index 8726e8bde5c..e9b5127a5af 100644 --- a/source4/scripting/python/samba/tests/dcerpc/misc.py +++ b/source4/scripting/python/samba/tests/dcerpc/misc.py @@ -24,6 +24,7 @@ text1 = "76f53846-a7c2-476a-ae2c-20e2b80d7b34" text2 = "344edffa-330a-4b39-b96e-2c34da52e8b1" class GUIDTests(unittest.TestCase): + def test_str(self): guid = misc.GUID(text1) self.assertEquals(text1, str(guid)) @@ -55,5 +56,9 @@ class PolicyHandleTests(unittest.TestCase): def test_repr(self): x = misc.policy_handle(text1, 42) - self.assertEquals("policy_handle('%s', %d)" % (text1, 42), repr(x)) + self.assertEquals("policy_handle(%d, '%s')" % (42, text1), repr(x)) + + def test_str(self): + x = misc.policy_handle(text1, 42) + self.assertEquals("%d, %s" % (42, text1), str(x))