From: David Mulder Date: Mon, 26 Oct 2020 21:13:50 +0000 (-0600) Subject: python: Test s3 net join and leave X-Git-Tag: tevent-0.11.0~1053 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e5a32d4a01b4df7078cf38e52ac4c465baa802f6;p=thirdparty%2Fsamba.git python: Test s3 net join and leave Signed-off-by: David Mulder Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/tests/s3_net_join.py b/python/samba/tests/s3_net_join.py new file mode 100644 index 00000000000..dd691e4a116 --- /dev/null +++ b/python/samba/tests/s3_net_join.py @@ -0,0 +1,80 @@ +# Unix SMB/CIFS implementation. +# +# Copyright (C) David Mulder 2020 +# +# 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 . +# + +""" +Confirm that net_s3.join_member works +""" + +import samba.tests +import os +from samba.net_s3 import Net as s3_Net +from samba.credentials import DONT_USE_KERBEROS +from samba.samba3 import param as s3param +from samba import WERRORError + + +def rm(rmdir): + for f in os.listdir(rmdir): + if os.path.isdir(os.path.join(rmdir, f)): + rm(os.path.join(rmdir, f)) + os.rmdir(os.path.join(rmdir, f)) + else: + os.unlink(os.path.join(rmdir, f)) + +class NetS3JoinTests(samba.tests.TestCaseInTempDir): + + def setUp(self): + super(NetS3JoinTests, self).setUp() + self.realm = os.environ["REALM"] + self.domain = os.environ["DOMAIN"] + self.server = os.environ["SERVER"] + self.lp = self.get_loadparm() + + def tearDown(self): + super(NetS3JoinTests, self).tearDown() + + def test_net_join(self): + netbios_name = "NetJoinTest" + machinepass = "abcdefghij" + creds = self.insta_creds(template=self.get_credentials(), + kerberos_state=DONT_USE_KERBEROS) + s3_lp = s3param.get_context() + s3_lp.load(self.lp.configfile) + + s3_lp.set('realm', self.realm) + s3_lp.set('workgroup', self.domain) + s3_lp.set("private dir", self.tempdir) + s3_lp.set("lock dir", self.tempdir) + s3_lp.set("state directory", self.tempdir) + s3_lp.set('server role', 'member server') + net = s3_Net(creds, s3_lp, server=self.server) + + try: + (domain_sid, domain_name) = net.join_member(netbios_name, + machinepass=machinepass) + except WERRORError as e: + self.fail('Join failed: %s' % e.args[1]) + raise + + try: + ret = net.leave() + except WERRORError as e: + self.fail('Leave failed: %s' % e.args[1]) + raise + self.assertTrue(ret, 'Leave failed!') + rm(self.tempdir) diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 3bfa0b3bca8..fa0f0043424 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -897,6 +897,9 @@ planoldpythontestsuite("ad_dc_smb1", planoldpythontestsuite("ad_dc", "samba.tests.net_join", extra_args=['-U"$USERNAME%$PASSWORD"']) +planoldpythontestsuite("ad_dc", + "samba.tests.s3_net_join", + extra_args=['-U"$USERNAME%$PASSWORD"']) planoldpythontestsuite("ad_dc", "samba.tests.segfault", extra_args=['-U"$USERNAME%$PASSWORD"'])