舒尔云含量

schul-cloud-ressources-server-tests的Python项目详细描述


Build StatusPython Package Index

此存储库包含

  • 用于测试刮板的服务器
  • 测试服务器

这个包在Python 2和3下工作

安装

使用pip,您可以安装如下所有依赖项:

pip install schul_cloud_ressources_server_tests

完成后,可以导入包。

importschul_cloud_ressources_server_tests

用法

本节介绍如何使用服务器和测试。

服务器

您可以找到API定义。 服务器根据API服务。 它验证输入和输出的正确性。

要启动服务器,请运行

python -m schul_cloud_ressources_server_tests.app

服务器应该出现在http://localhost:8080/v1

测试

您总是根据正在运行的服务器进行测试。 tests可以在您可以到达的任何时间删除。 如果测试正在运行的服务器,请确保以不破坏要保留的数据的方式进行身份验证。

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
...
  • 步骤1运行第一个测试
  • 步骤2运行第一个和第二个测试
  • 第3步运行第一、第二和第三个测试

您可以使用

python -m schul_cloud_ressources_server_tests.tests -m step3only

测试认证

测试服务器支持api密钥认证和基本认证。 如果您通过Internet测试身份验证。 使用https保护机密。 因此,对api的示例测试调用可能如下所示:

python-mschul_cloud_ressources_server_tests.tests  \
       --url=https://url.to/your/server               \
       --noauth=false--basic=username:password

如果你有一个api密钥,你可以测试服务器是否工作。

python-mschul_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密钥:用户valid1@schul-cloud.orgabcdefghijklmn。 客户端不会将用户名发送到服务器。

要测试这些,可以添加--basic--apikey 参数多次测试。 --noauth=true参数是默认值。 如果api只接受经过身份验证的请求,请设置--noauth=false

python-mschul_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

所有测试都使用不同的身份验证选项运行。 如果我们有几种方法进行身份验证,则测试用户是否看到其他用户的数据。

假设在密码中添加invalid, 用户名和api密钥将使其无效。 测试使用无效凭据在拒绝的情况下测试服务器行为。

Travis配置示例

如果要实现爬网程序或服务器,可以使用travis ci来测试 它。 travis配置示例可以在test-example分支中找到。 您可以查看output 配置是通用的。 它将在您配置的任何其他语言下运行。

在pytest中使用服务器

您可以在python测试中使用服务器。 有一些设备可以启动和停止服务器。

fromschul_cloud_ressources_server_tests.tests.fixturesimport*deftest_pytest(ressources_server):"""pytest using the server"""

以下属性可用:

  • ressources_server.url服务器的url
  • ressources_server.apiaschul_cloud_ressources_api_v1.RessourcesApiobject连接到服务器。
  • ressources_server.get_ressources()返回服务器上资源列表的函数。

有关更多信息,请参见模块schul_cloud_ressources_server_tests.tests.fixtures。 您可以添加对更多测试框架的支持

待办事项

  • 为服务器生成Docker容器
  • 为测试生成Docker容器
  • 记录如何在
      中嵌入测试和服务器
    • 爬虫
    • travis构建任意语言脚本
  • 创建带有测试的示例爬虫程序

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么整数构造函数方法不再需要属性?   java单函数从广播接收器检索数据   Java类中的Scala设置器和获取器   JAVA MVC表选择的行ID和mysql db ID不同   java在Multimaps Guava中获取值   jakarta ee Intellij IDEA Java类在保存时不自动编译   java在另一个Spring实体中使用Spring实体   JTwitter库的安卓类一直在给我java。朗朗:温特韦尔。杰特维特。啁啾   java停止启动应用程序   java Jersey测试NoSuchMethodError   java如何处理合成元素上的注释   java崩溃shell无法通过ssh连接   java计算两个日期之间的天数后(取自edittext)如何在新的edittext中显示天数