diff options
author | Gary Lockyer <gary@catalyst.net.nz> | 2017-06-15 07:57:23 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-06-22 08:56:22 +0200 |
commit | 4cc979aba71d5480b0db2dd421f0ccdc6893e693 (patch) | |
tree | 165d0c27589ab14bcab93b476faae1df032a5dcf /python | |
parent | 232abcc93277b8c6235b1656bfcdcbac5688ed48 (diff) | |
download | samba-4cc979aba71d5480b0db2dd421f0ccdc6893e693.tar.gz |
Tests lsa.String: add String constructor, str and repr
Tests for the String constructor, str and repr methods added to
the samba.dcerpc.lsa.String python object
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'python')
-rw-r--r-- | python/samba/tests/lsa_string.py | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/python/samba/tests/lsa_string.py b/python/samba/tests/lsa_string.py new file mode 100644 index 00000000000..130f8807a21 --- /dev/null +++ b/python/samba/tests/lsa_string.py @@ -0,0 +1,79 @@ +# Tests for lsa.String helpers in source4/librpc/ndr/py_lsa.c +# +# Copyright (C) Catalyst IT Ltd. 2017 +# +# 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; either version 3 of the License, or +# (at your option) any later version. +# +# 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, see <http://www.gnu.org/licenses/>. +# + +from samba.tests import TestCase +from samba.dcerpc import lsa +from samba.ndr import ndr_pack, ndr_unpack +""" +Tests for the C helper functions in source4/librpc/ndr/py_lsa.c +for samba.dcerpc.lsa.String +""" + +class LsaStringTests(TestCase): + + def test_default_constructor(self): + s = lsa.String() + self.assertEqual(None, s.string) + self.assertEqual(0, s.size) + self.assertEqual(0, s.length) + + def test_string_constructor(self): + CONTENT = "The content string" + s = lsa.String(CONTENT) + self.assertEqual(CONTENT, s.string) + + # These should be zero, are set by ndr_pack and ndr_unpack + self.assertEqual(0, s.size) + self.assertEqual(0, s.length) + + def test_string_constructor(self): + CONTENT = "The content string" + s = lsa.String(CONTENT) + self.assertEqual(CONTENT, s.string) + + # These should be zero + self.assertEqual(0, s.size) + self.assertEqual(0, s.length) + + packed = ndr_pack(s) + unpacked = ndr_unpack(lsa.String, packed) + + # Original object should be unchanged + self.assertEqual(0, s.size) + self.assertEqual(0, s.length) + + # But they should be correct in the unpacked object + self.assertEqual(36, unpacked.size) + self.assertEqual(36, unpacked.length) + + def test_repr(self): + # test an empty string + self.assertEqual("lsaString(None)", repr(lsa.String())) + # and one with contents + self.assertEqual("lsaString('Hello world')", + repr(lsa.String("Hello world"))) + + def test_to_string(self): + # test an empty string + self.assertEqual("", str(lsa.String())) + # and one with contents + self.assertEqual("Hello world", + str(lsa.String("Hello world"))) + + + |