跳转到主要内容

Schul-Cloud 内容API

项目描述

Build Status Python Package Index

此存储库包含

  • 一个用于测试抓取器的服务器

  • 用于测试服务器的测试

此包在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 (13.2 kB 查看散列)

上传时间

构建分布

由以下支持