mirror of
https://github.com/samba-team/samba.git
synced 2025-09-02 01:49:29 +03:00
r26079: Some cleanups in the old SWIG wrappers: - remove old torture tests for LDB (replaced by a much more extensive test) - moved tool to bin directory
(This used to be commit d6d3b0ad7a
)
This commit is contained in:
committed by
Stefan Metzmacher
parent
d1d958caa1
commit
e5e2b64449
@ -6,26 +6,9 @@ Instructions for building:
|
|||||||
1. Run configure with the --with-python option to enable python
|
1. Run configure with the --with-python option to enable python
|
||||||
extensions.
|
extensions.
|
||||||
|
|
||||||
2. Edit the script/build_idl.sh script to pass the --swig option to
|
2. Run 'make idl_full swig' to build extensions.
|
||||||
pidl. Here's a patch:
|
|
||||||
|
|
||||||
Index: script/build_idl.sh
|
3. At some stage there will be a proper system for installing the
|
||||||
===================================================================
|
|
||||||
--- 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
|
|
||||||
extensions, but right now it's easier to run them in place. Set
|
extensions, but right now it's easier to run them in place. Set
|
||||||
your PYTHONPATH to include the modules. From the Samba source
|
your PYTHONPATH to include the modules. From the Samba source
|
||||||
directory, run:
|
directory, run:
|
||||||
@ -34,4 +17,4 @@ Index: script/build_idl.sh
|
|||||||
|
|
||||||
Now you can go nuts and use the extensions. Check the
|
Now you can go nuts and use the extensions. Check the
|
||||||
scripting/swig/torture directory for a testsuite. There will
|
scripting/swig/torture directory for a testsuite. There will
|
||||||
hopefully be a bunch of usage examples somewhere.
|
hopefully be a bunch of usage examples somewhere.
|
||||||
|
@ -1,16 +1,19 @@
|
|||||||
# Swig extensions
|
# Swig extensions
|
||||||
swig: lib/tdb/swig/_tdb.$(SHLIBEXT) lib/ldb/swig/_ldb.$(SHLIBEXT) \
|
swig: pythonmods
|
||||||
libcli/swig/_libcli_nbt.$(SHLIBEXT) libcli/swig/_libcli_smb.$(SHLIBEXT)
|
|
||||||
|
|
||||||
|
pythonmods: $(PYTHON_DSOS)
|
||||||
|
|
||||||
.SUFFIXES: _wrap.c .i
|
.SUFFIXES: _wrap.c .i
|
||||||
|
|
||||||
.i_wrap.c:
|
.i_wrap.c:
|
||||||
swig -I$(srcdir)/scripting/swig -python $<
|
swig -Wall -I$(srcdir)/scripting/swig -python $<
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
@echo "Removing SWIG output files"
|
@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
|
PYDOCTOR_MODULES=bin/python/ldb.py bin/python/auth.py bin/python/credentials.py bin/python/registry.py
|
||||||
swigtest: swig
|
|
||||||
./selftest/test_swig.sh
|
pydoctor::
|
||||||
|
LD_LIBRARY_PATH=bin/shared PYTHONPATH=bin/python pydoctor --make-html --docformat=restructedtext --add-package scripting/python/samba/ $(addprefix --add-module , $(PYDOCTOR_MODULES))
|
||||||
|
@ -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')
|
|
Reference in New Issue
Block a user