为 API 测试创建基本 XNAT 实例
项目描述
Xnat4Tests 提供了一个辅助函数,用于测试访问 XNAT API 或容器服务的第三方工具,主要是一种在单个 Docker 容器中启动基本 XNAT 存储库实例的方法。
XNAT 容器服务插件默认安装并配置为使用与 XNAT 实例相同的 Docker 主机。
'home/logs', 'home/work', 'build', 'archive', 'prearchive' 目录从主机挂载到xnat4tests.config["xnat_root_dir"]下直接访问,这对于调试很有用并允许模拟在 XNAT 的容器服务中运行容器的环境。
除了启动 XNAT 实例的launch_xnat函数之外,还提供了一个连接 函数,该函数将 XnatPy 连接对象返回到测试实例
安装
Xnat4Tests 在 PyPI 上可用,因此安装,只需使用 pip
$ pip3 install xnat4tests
或包含在您的包的test_requires中。
用法
# Import xnat4tests functions
from xnat4tests import launch_xnat, stop_xnat, connect, config
# Launch the instance (NB: it takes quite while for an XNAT instance to start). If an existing
# container with the reserved name is already running it is returned instead
launch_xnat()
# Run your tests
with connect() as login:
PROJECT = 'MYPROJECT'
SUBJECT = 'MYSUBJECT'
SESSION = 'MYSESSION'
login.put(f'/data/archive/projects/MY_TEST_PROJECT')
# Create subject
xsubject = login.classes.SubjectData(label=SUBJECT,
parent=login.projects[PROJECT])
# Create session
login.classes.MrSessionData(label=SESSION, parent=xsubject)
assert [p.name for p in (config.XNAT_ROOT_DIR / 'archive').iterdir()] == [PROJECT]
# Remove the container after you are done (not strictly necessary)
stop_xnat()
或者,如果您使用的是 Pytest,那么您可以将连接设置为conftest.py中的夹具
@pytest.fixture(scope='session')
def xnat_login():
xnat4tests.launch_xnat()
yield xnat4tests.connect()
xnat4tests.stop_xnat()
项目详情
关
xnat4tests -0.2.5-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 332fc588716863d47199410533ec4fe5b3bb71a3f19f33060e72b7beb018bbae |
|
MD5 | 2c346902287ae049cb178330e93345c9 |
|
布莱克2-256 | 6cd0575bbab7b25baea2e9aeb12448f26d6e1f7384849605b63b0ef5cd2a07a4 |