GA4GH DRS服务器实现的可靠性工具报告系统。支持GA4GH DRS版本 - 1.2.0
项目描述
drs-compliance-suite
用于验证DRS实现与GA4GH数据存储库服务(DRS)规范一致性的测试。此合规性套件目前支持以下DRS版本,并计划在未来支持更多DRS版本。
- DRS 1.2.0
安装
- 要本地运行DRS合规性套件或使用PyPI包,需要Python 3.x。
- 要使用Docker镜像运行DRS合规性套件,需要Docker Desktop。
运行DRS合规性套件
1. 本地运行
从requirements.txt中安装包
cd drs-compliance-suite
pip3 install -r requirements.txt
将PYTHONPATH添加到环境变量
export PYTHONPATH=<absolute path to drs-compliance-suite>
运行合规性套件
python3 compliance_suite/report_runner.py --server_base_url "http://localhost:8085/ga4gh/drs/v1" --platform_name "ga4gh starter kit drs" --platform_description "GA4GH reference implementation of DRS specification" --drs_version "1.2.0" --config_file "compliance_suite/config/config_samples/config_basic.json" --serve --serve_port 56565
注意:此特定命令是运行合规性套件在运行在端口8085上的本地DRS部署的示例。
运行合规性套件时,根据要测试的特定DRS实现配置命令行参数很重要。请参阅命令行参数部分,以了解每个参数的详细信息。
2. 使用PyPI包
使用pip3安装最新版本的drs-compliance-suite PyPI包
pip3 install drs-compliance-suite --upgrade
运行合规性套件
drs-compliance-suite --server_base_url "http://localhost:8085/ga4gh/drs/v1" --platform_name "ga4gh starter kit drs" --platform_description "GA4GH reference implementation of DRS specification" --drs_version "1.2.0" --config_file "compliance_suite/config/config_samples/config_basic.json" --serve --serve_port 56565
注意:此特定命令是运行合规性套件在运行在端口8085上的本地DRS部署的示例。
运行合规性套件时,根据要测试的特定DRS实现配置命令行参数很重要。请参阅命令行参数部分,以了解每个参数的详细信息。
3. 使用Docker
从dockerhub拉取最新docker镜像
docker pull ga4gh/drs-compliance-suite:1.0.3
使用Docker镜像运行合规性套件
docker run -d --name drs-compliance-suite -v $(PWD)/output/:/usr/src/app/output/ -p 57568:57568 ga4gh/drs-compliance-suite:1.0.3: --server_base_url "http://host.docker.internal:8085/ga4gh/drs/v1" --platform_name "ga4gh starter kit drs" --platform_description "GA4GH reference implementation of DRS specification" --report_path "./output/test-report.json" --drs_version "1.2.0" --config_file "compliance_suite/config/config_samples/config_none.json" --serve --serve_port 57568
注意:此特定命令是运行合规性套件在运行在端口8085上的本地DRS部署的示例。
运行合规性套件时,根据要测试的特定DRS实现配置命令行参数很重要。请参阅命令行参数部分,以了解每个参数的详细信息。
命令行参数
命令行参数 | 描述 | 可选/必需 | 默认值 |
---|---|---|---|
--server_base_url | 合规套件正在测试的DRS实现的基本URL。 | 必需 | 不适用 |
--platform_name | 托管DRS服务器的平台名称。 | 必需 | 不适用 |
--platform_description | 托管DRS服务器的平台描述。 | 必需 | 不适用 |
--drs_version | 正在合规性测试中实现的DRS服务器版本。可以是以下之一:"1.2.0"。 | 必需 | 不适用 |
--config_file | JSON配置文件的文件路径。配置文件必须包含服务-info端点和不同DRS对象的认证信息。有关更多详细信息,请参阅配置文件部分。 | 必需 | 不适用 |
--report_path | 输出JSON报告文件的路径。 | 可选 | "./output/drs_compliance_report.json" |
--serve | 如果此标志设置为True,则输出报告作为由--serve_port 指定的端口的HTML网页提供服务。 |
可选 | False |
--serve-port | 输出报告HTML部署的端口。 | 可选 | 57568 |
配置文件
合规套件通过用户提供的JSON配置文件提供测试DRS服务器所需的信息。此文件包括以下详细信息
- 服务-info端点的认证信息
- 存在于DRS服务器中的几个DRS对象ID
- 每个这些DRS对象的认证信息
- 指示DRS对象是包还是单个blob
以下是一个配置文件模板,可用于配置这些详细信息
{
"service_info": {
"auth_type": "basic",
"auth_token": "dXNlcm5hbWU6cGFzc3dvcmQ="
},
"drs_objects" : [
{
"drs_id": "697907bf-d5bd-433e-aac2-1747f1faf366",
"auth_type": "none",
"auth_token": "",
"is_bundle": false
},
{
"drs_id": "0bb9d297-2710-48f6-ab4d-80d5eb0c9eaa",
"auth_type": "basic",
"auth_token": "dXNlcm5hbWU6cGFzc3dvcmQ=",
"is_bundle": false
},
{
"drs_id" : "41898242-62a9-4129-9a2c-5a4e8f5f0afb",
"auth_type": "bearer",
"auth_token": "secret-bearer-token-1",
"is_bundle": true
},
{
"drs_id" : "a1dd4ae2-8d26-43b0-a199-342b64c7dff6",
"auth_type": "passport",
"auth_token": "43b-passport-a1d",
"is_bundle": true
}
]
}
- "auth_type"指定认证类型,可以是以下之一:["基本", "携带者", "护照", "无"]
- "auth_token"字段包含相应的认证令牌值。
- 如果"auth_type"设置为"基本",则可以使用base64编码创建"auth_token"。
- 如果"auth_type"设置为"无",则"auth_token"字段应留空,值为""。
- "is_bundle"标志指示DRS对象是包还是单个blob。如果设置为True,则对象是包,如果设置为False,则对象是单个blob。
您可以在此处找到一些示例配置文件
单元测试
使用覆盖率运行单元测试
pytest --cov=compliance_suite unittests/
变更日志
v1.0.3
- 提供为DRS对象和DRS访问端点提供不同认证信息的灵活性
- 删除错误的跳过状态设置
v1.0.2
- 通过使用python:3.11-slim-bullseye而不是python:3减少Docker镜像大小
v1.0.1
- 修复了DRS合规套件Docker部署中的一个错误
- 更新README文档
v1.0.0
- 适用于数据存储库服务v1.2.0的DRS合规套件
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装软件包的信息。
源分布
drs-compliance-suite-1.0.3.tar.gz (26.8 kB 查看哈希)
构建分布
关闭
drs-compliance-suite-1.0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 208ef0de7ec575c97d214d6fa760cda15dd591b7b6c04be21920e9226dde689a |
|
MD5 | b867964c72f23c96a26c447bd528dbaf |
|
BLAKE2b-256 | 4bf7390cb3f06b37ef756ceb697a1f90c321ffc64a594fb25fedff08e768d60b |
关闭
drs_compliance_suite-1.0.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 248465592099c3870f45448959d886b3440fb03454070085dc2c3307c3d1285f |
|
MD5 | 6cdb5f4b34e715652b9a7d1e9c8bced8 |
|
BLAKE2b-256 | 8db3e468763811e56b680e238966bd4194db0949affadc801b90911a07d43eaf |