1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-19 12:23:49 +03:00

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>
This commit is contained in:
David Mulder
2022-01-21 11:48:48 -07:00
committed by Andrew Bartlett
parent ee37e3cd32
commit dc6725336a

View File

@@ -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()