测试用临时拍击发射器
volatildap的Python项目详细描述
volatildap提供了针对LDAP数据库测试代码的简单帮助程序。
其主要特点包括:
- 简单配置:不提供LDAP服务器将以正常默认值启动的任何内容
- {STR 1 }内置的清除:当测试结束/测试进程退出时,服务器立即删除
- 交叉分发设置:自动发现openldap二进制文件、架构等的系统路径。
用法
importvolatildapclassMyTests(unittest.TestCase):@classmethoddefsetUpClass(cls):super(MyTests,cls).setUpClass()cls._slapd=volatildap.LdapServer(suffix='dc=example,dc=org')defsetUp(self):# Will start the server, or reset/restart it if already started from a previous test.self._slapd.start()deftest_something(self):conn=ldap.connection(self._slapd.uri)# Do some testsdeftest_with_data(self):# Load some dataself._slapd.add({'ou=people':{'cn':[b'Users']}})# Run the tests
volatildap.LdapServer提供了一些有用的方法:
- start()
启动或重新启动服务器。 这将:
- 清除所有数据(如果有)
- 如果服务器尚未运行,请启动它
- 填充初始数据
- stop()
停止服务器。
这将清除所有数据并终止进程。
- add(data)
- 添加一些数据,请参见下面的initial_data结构。
- get(dn)
按可分辨名称检索对象
返回将属性映射到其值列表的字典(以字节为单位)。
如果基础数据库不知道可分辨名称,则引发KeyError。
- reset()
- 将服务器还原到原始的初始状态。 这包括加载初始数据。
配置
volatildap.LdapServer类接受几个参数:
- suffix 要用于LDAP树的后缀
- rootdn LDAP服务器的管理员帐户
- rootpw
管理员密码。
默认值:一个随机值,可通过LdapServer.rootpw
- schemas
要加载的架构列表;可以是一个简单的名称(例如在openldap安装中查找的cosine.schema);也可以是一个自定义名称的路径。
默认值:['core.schema']
- initial_data
dict将可分辨名称映射到属性/值的dict:
slapd(initial_data={'ou=people':{'objectClass':['organizationalUnit'],'cn':['People'],},})
注意:添加数据时,可以在对象dns上省略后缀。
默认值:{}
- skip_missing_schemas
加载架构时,如果某些架构 找不到
默认值:False
- port
要使用的端口
默认值:系统上可用的TCP端口
- slapd_debug
slapd的调试级别;请参见slapd.conf
默认值:0
- max_server_startup_delay
- tls_config
一组用于配置服务器的TLS证书文件。 localhost的有效集作为volatildap.LOCALHOST_TLS_CONFIG提供,但用户也可以提供自己的:
tls_config=volatildap.TLSConfig(root=read(ca_path),chain=[read(intermediate_path),],certificate=read(certificate_path),key=read(key_path),)
默认值:dc=example,dc=org
默认值:cn=testadmin,dc=example,dc=org
默认值:30
根据分布特性
- Ubuntu
- 在ubuntu下,默认的apparmor策略不允许slapd(ldap守护进程)读取临时文件夹。 用户应该更新/etc/apparmor.d/usr.sbin.slapd文件并在其中添加/tmp/** rw。