diff options
-rwxr-xr-x | source4/scripting/bin/rpcclient (renamed from source4/scripting/swig/rpcclient) | 0 | ||||
-rw-r--r-- | source4/scripting/swig/README | 23 | ||||
-rw-r--r-- | source4/scripting/swig/config.mk | 17 | ||||
-rwxr-xr-x | source4/scripting/swig/torture/torture_ldb.py | 83 |
4 files changed, 13 insertions, 110 deletions
diff --git a/source4/scripting/swig/rpcclient b/source4/scripting/bin/rpcclient index 34efafdf73..34efafdf73 100755 --- a/source4/scripting/swig/rpcclient +++ b/source4/scripting/bin/rpcclient diff --git a/source4/scripting/swig/README b/source4/scripting/swig/README index 561c5ab279..38b95b28f4 100644 --- a/source4/scripting/swig/README +++ b/source4/scripting/swig/README @@ -6,26 +6,9 @@ Instructions for building: 1. Run configure with the --with-python option to enable python extensions. -2. Edit the script/build_idl.sh script to pass the --swig option to - pidl. Here's a patch: +2. Run 'make idl_full swig' to build extensions. -Index: script/build_idl.sh -=================================================================== ---- script/build_idl.sh (revision 2413) -+++ script/build_idl.sh (working copy) -@@ -4,7 +4,7 @@ - - [ -d librpc/gen_ndr ] || mkdir -p librpc/gen_ndr || exit 1 - --PIDL="$PERL ./build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser --server" -+PIDL="$PERL ./build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser --server --swig" - TABLES="$PERL ./build/pidl/tables.pl --output librpc/gen_ndr/tables" - - if [ x$FULLBUILD = xFULL ]; then - -3. Run 'make idl_full swig' to build extensions. - -4. At some stage there will be a proper system for installing the +3. At some stage there will be a proper system for installing the extensions, but right now it's easier to run them in place. Set your PYTHONPATH to include the modules. From the Samba source directory, run: @@ -34,4 +17,4 @@ Index: script/build_idl.sh Now you can go nuts and use the extensions. Check the scripting/swig/torture directory for a testsuite. There will -hopefully be a bunch of usage examples somewhere.
\ No newline at end of file +hopefully be a bunch of usage examples somewhere. diff --git a/source4/scripting/swig/config.mk b/source4/scripting/swig/config.mk index 944e33b9b4..193e84b255 100644 --- a/source4/scripting/swig/config.mk +++ b/source4/scripting/swig/config.mk @@ -1,16 +1,19 @@ # Swig extensions -swig: lib/tdb/swig/_tdb.$(SHLIBEXT) lib/ldb/swig/_ldb.$(SHLIBEXT) \ - libcli/swig/_libcli_nbt.$(SHLIBEXT) libcli/swig/_libcli_smb.$(SHLIBEXT) +swig: pythonmods +pythonmods: $(PYTHON_DSOS) + .SUFFIXES: _wrap.c .i .i_wrap.c: - swig -I$(srcdir)/scripting/swig -python $< + swig -Wall -I$(srcdir)/scripting/swig -python $< clean:: @echo "Removing SWIG output files" - @-rm -f scripting/swig/tdb.pyc scripting/swig/tdb.py + @-rm -f bin/python/* + # FIXME: Remove _wrap.c files -# Swig testing -swigtest: swig - ./selftest/test_swig.sh +PYDOCTOR_MODULES=bin/python/ldb.py bin/python/auth.py bin/python/credentials.py bin/python/registry.py + +pydoctor:: + LD_LIBRARY_PATH=bin/shared PYTHONPATH=bin/python pydoctor --make-html --docformat=restructedtext --add-package scripting/python/samba/ $(addprefix --add-module , $(PYDOCTOR_MODULES)) diff --git a/source4/scripting/swig/torture/torture_ldb.py b/source4/scripting/swig/torture/torture_ldb.py deleted file mode 100755 index fe79f4f843..0000000000 --- a/source4/scripting/swig/torture/torture_ldb.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/python -# -# A torture test for the Python Ldb bindings. Also a short guide on -# how the API works. -# - -from Ldb import * - -# Helpers - -def t(cond, msg): - """Test a condition.""" - if not cond: - raise RuntimeError('FAILED: %s' % msg) - -# -# Torture LdbMessage -# - -m = LdbMessage() - -# Empty message - -t(m.keys() == [], 'empty msg') -t(m.dn == None, 'empty dn') - -t(m.sanity_check() == LDB_ERR_INVALID_DN_SYNTAX, 'sanity check') - -# Test invalid dn - -try: - m.dn = 'invalid dn' -except LdbError, arg: - if arg[0] != LDB_ERR_INVALID_DN_SYNTAX: - raise -else: - t(False, 'LdbError not raised') - -# Test valid dn - -m.dn = 'name=spotty' -t(m.dn == 'name=spotty', 'specified dn') - -t(m.sanity_check() == LDB_SUCCESS, 'sanity check') - -# Test some single-valued attributes - -m['animal'] = 'dog' -m['name'] = 'spotty' - -t(m.keys() == ['animal', 'name'], 'keys() test failed') -t(m.values() == [['dog'], ['spotty']], 'values() test failed') -t(m.items() == [('animal', ['dog']), ('name', ['spotty'])], - 'items() test failed') - -t(m.sanity_check() == LDB_SUCCESS, 'sanity check') - -m['animal'] = 'canine' -t(m['animal'] == ['canine'], 'replace value failed') - -# Test a multi-valued attribute - -names = ['spotty', 'foot'] -m['name'] = names - -t(m['name'] == names, 'multi-valued attr failed') - -t(m.sanity_check() == LDB_SUCCESS, 'sanity check') - -# Test non-string attributes - -try: - m['foo'] = 42 -except TypeError: - pass -else: - t(False, 'TypeError not raised') - -# -# Torture Ldb -# - -l = Ldb('foo.ldb') |