Schul-Cloud 内容API
项目描述
此存储库包含
一个用于测试抓取器的服务器
用于测试服务器的测试
此包在Python 2和3下均可工作。
安装
使用pip,您可以按以下方式安装所有依赖项
pip install schul_cloud_ressources_server_tests
完成安装后,您可以导入该包。
import schul_cloud_ressources_server_tests
用法
本节描述了如何使用服务器和测试。
服务器
您可以在API定义中找到。服务器根据API提供服务。它验证输入和输出的正确性。
要启动服务器,运行
python -m schul_cloud_ressources_server_tests.app
服务器应出现在http://localhost:8080/v1。
测试
您始终针对运行的服务器进行测试。测试可能会删除您能够访问的所有内容。如果您测试运行中的服务器,请确保以不会破坏您想要保留的数据的方式进行身份验证。
python -m schul_cloud_ressources_server_tests.tests --url=http://localhost:8080/v1/
http://localhost:8080/v1/是默认URL。
实现步骤
如果您想实现自己的服务器,可以遵循TDD步骤依次实现一个测试。
python -m schul_cloud_ressources_server_tests.tests -m step1
python -m schul_cloud_ressources_server_tests.tests -m step2
python -m schul_cloud_ressources_server_tests.tests -m step3
...
step1 运行第一个测试
步骤2运行第一个和第二个测试
步骤3运行第一个、第二个和第三个测试
…
您可以使用以下命令运行单个测试:
python -m schul_cloud_ressources_server_tests.tests -m step3only
测试认证
测试服务器支持API密钥认证和基本认证。如果您在互联网上测试认证,请使用https来保护秘密。因此,对API的示例测试调用可能如下所示:
python -m schul_cloud_ressources_server_tests.tests \
--url=https://url.to/your/server \
--noauth=false --basic=username:password
如果您有API密钥,您可以测试服务器是否工作。
python -m schul_cloud_ressources_server_tests.tests \
--url=http://url.to/your/server \
--noauth=false --apikey=apikey
默认情况下,测试服务器接受使用多个凭据进行认证。
无认证
基本认证
用户 valid1@schul-cloud.org 密码 123abc
用户 valid2@schul-cloud.org 密码 supersecure
API密钥: abcdefghijklmn 对应用户 valid1@schul-cloud.org。客户端不会向服务器发送用户名。
要测试这些,您可以在测试中多次添加--basic和--apikey参数。默认情况下,--noauth=true参数是有效的。如果API只接受已认证的请求,则设置--noauth=false。
python -m schul_cloud_ressources_server_tests.tests \
--basic=valid1@schul-cloud.org:123abc \
--basic=valid2@schul-cloud.org:supersecure \
--apikey=valid1@schul-cloud.org:abcdefghijklmn \
--noauth=true
所有测试都使用不同的认证选项运行。如果我们有几种认证方式,测试将检查用户是否可以看到其他用户的资料。
假设,在密码、用户名和API密钥中添加invalid会使它们无效。测试使用无效的凭据来测试服务器在拒绝情况下的行为。
示例Travis配置
如果您想实现爬虫或服务器,可以使用Travis-CI来测试它。示例Travis配置可以在test-example分支中找到。您可以查看输出。配置是通用的。它将在您配置的任何其他语言下运行。
在pytest中使用服务器
您可以在Python测试中使用该服务器。有一些 fixture 可用,可以启动和停止服务器。
from schul_cloud_ressources_server_tests.tests.fixtures import *
def test_pytest(ressources_server):
"""pytest using the server"""
以下属性是可用的:
ressources_server.url 服务器的URL。
ressources_server.api 一个连接到服务器的 schul_cloud_ressources_api_v1.RessourcesApi 对象。
ressources_server.get_ressources() 一个返回服务器上资源列表的函数。
有关更多信息,请参阅模块 schul_cloud_ressources_server_tests.tests.fixtures。您可以添加对更多测试框架的支持。
待办事项
为服务器生成Docker容器
为测试生成Docker容器
说明如何将测试和服务器嵌入到
爬虫中
任意语言的travis构建脚本
创建带有测试的示例爬虫
项目详情
schul_cloud_ressources_server_tests-1.0.27.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e14920c803b2f081c35ad8be9d4a243b0dd2f24e9d3bd606f1341238ae76ff2 |
|
MD5 | 4eae99604485384623a27c150fe3afa5 |
|
BLAKE2b-256 | 3063c282e2732125f0937f19aba9dec547b2385d356a3d2b8db230fa18fb3150 |
schul_cloud_ressources_server_tests-1.0.27-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a8cd8c1d8f4575b3b19935c8e121bfc8cc269c9590372e072c6da7221cef5b5 |
|
MD5 | 63c46088f474bec3ebc899536b94bc1a |
|
BLAKE2b-256 | 7e0b03b2cd106e14ac30bd3ffcaf791457635c93936838ae0174b8e273691c6a |