diff options
author | David Mulder <dmulder@suse.com> | 2022-01-21 11:48:48 -0700 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2023-01-30 09:00:39 +0000 |
commit | dc6725336ad76fe425ef818a83272bd4cf7c937c (patch) | |
tree | 534418154a30103ddca4334a5ebd4761a793c74f | |
parent | ee37e3cd32e98088cf3b4faba4cc2a2ce3a70175 (diff) | |
download | samba-dc6725336ad76fe425ef818a83272bd4cf7c937c.tar.gz |
samba-tool: Test gpo load/remove commands
Signed-off-by: David Mulder <dmulder@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Tested-by: Kees van Vloten <keesvanvloten@gmail.com>
-rw-r--r-- | python/samba/tests/samba_tool/gpo.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/python/samba/tests/samba_tool/gpo.py b/python/samba/tests/samba_tool/gpo.py index 78ed5d493af..6076bda56c8 100644 --- a/python/samba/tests/samba_tool/gpo.py +++ b/python/samba/tests/samba_tool/gpo.py @@ -35,6 +35,42 @@ import xml.etree.ElementTree as etree from tempfile import NamedTemporaryFile from time import sleep +gpo_load_json = \ +b""" +[ + { + "keyname": "Software\\\\Policies\\\\Mozilla\\\\Firefox\\\\Homepage", + "valuename": "StartPage", + "class": "USER", + "type": "REG_SZ", + "data": "homepage" + }, + { + "keyname": "Software\\\\Policies\\\\Mozilla\\\\Firefox\\\\Homepage", + "valuename": "URL", + "class": "USER", + "type": 1, + "data": "samba.org" + } +] +""" + +gpo_remove_json = \ +b""" +[ + { + "keyname": "Software\\\\Policies\\\\Mozilla\\\\Firefox\\\\Homepage", + "valuename": "StartPage", + "class": "USER" + }, + { + "keyname": "Software\\\\Policies\\\\Mozilla\\\\Firefox\\\\Homepage", + "valuename": "URL", + "class": "USER" + } +] +""" + source_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../../..")) def has_difference(path1, path2, binary=True, xml=True, sortlines=False): @@ -1501,6 +1537,43 @@ class GpoCmdTestCase(SambaToolCmdTest): os.environ["PASSWORD"])) self.assertNotIn(text, out, 'The test entry was still found!') + def test_load_show_remove(self): + with NamedTemporaryFile() as f: + f.write(gpo_load_json) + f.flush() + (result, out, err) = self.runsubcmd("gpo", "load", + self.gpo_guid, + "--content=%s" % f.name, + "-H", "ldap://%s" % + os.environ["SERVER"], + "-U%s%%%s" % + (os.environ["USERNAME"], + os.environ["PASSWORD"])) + self.assertCmdSuccess(result, out, err, 'Loading policy failed') + + (result, out, err) = self.runsubcmd("gpo", "show", self.gpo_guid, "-H", + "ldap://%s" % os.environ["SERVER"]) + self.assertCmdSuccess(result, out, err, 'Failed to fetch gpos') + self.assertIn('samba.org', out, 'Homepage policy not loaded') + + with NamedTemporaryFile() as f: + f.write(gpo_remove_json) + f.flush() + (result, out, err) = self.runsubcmd("gpo", "remove", + self.gpo_guid, + "--content=%s" % f.name, + "-H", "ldap://%s" % + os.environ["SERVER"], + "-U%s%%%s" % + (os.environ["USERNAME"], + os.environ["PASSWORD"])) + self.assertCmdSuccess(result, out, err, 'Removing policy failed') + + (result, out, err) = self.runsubcmd("gpo", "show", self.gpo_guid, "-H", + "ldap://%s" % os.environ["SERVER"]) + self.assertCmdSuccess(result, out, err, 'Failed to fetch gpos') + self.assertNotIn('samba.org', out, 'Homepage policy not removed') + def setUp(self): """set up a temporary GPO to work with""" super(GpoCmdTestCase, self).setUp() |