文档示例
必须测试文档中找到的示例,以确保我们拥有适当的覆盖范围,并确保针对回归测试新版本。
此外,它有助于测试公共身份提供商中的任何更改。
目前涵盖的测试很少,selenium
包用于与浏览器进行交互。欢迎在 tests/examples/base.py
中查看基类,以重复利用专门为测试文档中的示例而设计的实用程序。
可用于测试的身份提供商
目前仅提供 Auth0 测试提供商,但可以根据请求创建新的提供商。以下是环境变量
Auth0 https://auth0.com/
AUTH0_USERNAME
AUTH0_PASSWORD
AUTH0_DOMAIN
AUTH0_PKCE_CLIENT_ID
编写示例的指南
文档
为了编写可测试的示例,例如轻松复制/粘贴,建议将 python 代码与文档分开,如下所示
.. literalinclude:: xyz_foobar.py
:language: python
通过检查来验证格式是否正确
tox -e docs
# output located in docs/_build/html/index.html
Python 示例
建议使用预定义的占位符变量编写 python 示例,用于环境设置属性(例如身份提供商租户标识符/机密),并在需要用户交互时使用 input()
。欢迎重复利用现有示例,例如 docs/examples/native_spa_pkce_auth0.py
及其关联的测试。
Python 测试
您可以在 tests/examples/test_*py
中编写新测试,并根据需要继承 tests/examples/base.py
中的基本类。
如果您需要环境变量,请不要忘记跳过 python 测试,也不要将任何机密或泄露租户信息存储在 git 中。
跳过测试示例如下
self.client_id = os.environ.get("AUTH0_PKCE_CLIENT_ID")
self.idp_domain = os.environ.get("AUTH0_DOMAIN")
if not self.client_id or not self.idp_domain:
self.skipTest("native auth0 is not configured properly")
然后可以将示例复制粘贴到 python 控制台中
环境变量
一旦引用环境变量,您必须在 Github Actions 中设置它们。任何维护者都可以这样做,维护者的职责是使用测试客户端创建测试租户。
使用 GitHub CLI 设置新环境机密的示例
gh secret set AUTH0_PASSWORD --body "secret"