diff options
-rw-r--r-- | lib/smbconf/pysmbconf.c | 19 | ||||
-rw-r--r-- | python/samba/tests/smbconf.py | 9 |
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/smbconf/pysmbconf.c b/lib/smbconf/pysmbconf.c index b49673c1eb4..bf1540bbb50 100644 --- a/lib/smbconf/pysmbconf.c +++ b/lib/smbconf/pysmbconf.c @@ -296,6 +296,19 @@ static PyObject *obj_create_share(py_SMBConf_Object * self, PyObject * args) Py_RETURN_NONE; } +static PyObject *obj_drop(py_SMBConf_Object * self, + PyObject * Py_UNUSED(ignored)) +{ + sbcErr err; + + err = smbconf_drop(self->conf_ctx); + if (err != SBC_ERR_OK) { + py_raise_SMBConfError(err); + return NULL; + } + Py_RETURN_NONE; +} + PyDoc_STRVAR(obj_requires_messaging_doc, "requires_messaging() -> bool\n" "\n" @@ -331,6 +344,10 @@ PyDoc_STRVAR(obj_create_share_doc, "Create a new empty share in the configuration. The share\n" "name must not exist or an error will be raised.\n"); +PyDoc_STRVAR(obj_drop_doc, +"drop() -> None\n" +"Drop the entire configuration, resetting it to an empty state.\n"); + static PyMethodDef py_smbconf_obj_methods[] = { { "requires_messaging", (PyCFunction) obj_requires_messaging, METH_NOARGS, obj_requires_messaging_doc }, @@ -344,6 +361,8 @@ static PyMethodDef py_smbconf_obj_methods[] = { obj_get_config_doc }, { "create_share", (PyCFunction) obj_create_share, METH_VARARGS, obj_create_share_doc }, + { "drop", (PyCFunction) obj_drop, METH_NOARGS, + obj_drop_doc }, { 0 }, }; diff --git a/python/samba/tests/smbconf.py b/python/samba/tests/smbconf.py index 749a3eb6d8e..80e0d55984d 100644 --- a/python/samba/tests/smbconf.py +++ b/python/samba/tests/smbconf.py @@ -131,6 +131,7 @@ class SMBConfTests(samba.tests.TestCase): def test_create_share(self): sconf = self.s3smbconf.init_reg(None) + sconf.drop() sconf.create_share("alice") sconf.create_share("bob") names = sconf.share_names() @@ -139,6 +140,14 @@ class SMBConfTests(samba.tests.TestCase): self.smbconf.SMBConfError, sconf.create_share, "alice" ) + def test_create_share(self): + sconf = self.s3smbconf.init_reg(None) + sconf.drop() + sconf.create_share("alice") + sconf.drop() + names = sconf.share_names() + self.assertEqual(names, []) + if __name__ == "__main__": import unittest |