首页 > 其他分享 >自定义测试器

自定义测试器

时间:2024-07-22 17:10:07浏览次数:10  
标签:name 自定义 检查 phone 测试 endif

测试器
测试器总是返回一个布尔值,它可以用来测试一个变量或者表达式,使用”is”关键字来进行测试。

{% set name='ab' %}
{% if name is lower %}
<h2>"{{ name }}" are all lower case.</h2>
{% endif %}

 

测试器本质上也是一个函数,它的第一个参数就是待测试的变量,在模板中使用时可以省略去。如果它有第二个参
数,模板中就必须传进去。测试器函数返回的必须是一个布尔值,这样才可以用来给if语句作判断。
1、Jinja2中内置的测试器
官网:https://jinja.palletsprojects.com/en/master/templates/#builtin-tests

{# 检查变量是否被定义,也可以用undefined检查是否未被定义 #}
{% if name is defined %}
<p>Name is: {{ name }}</p>
{% endif %}
{# 检查是否所有字符都是大写 #}
{% if name is upper %}
<h2>"{{ name }}" are all upper case.</h2>
{% endif %}
{# 检查变量是否为空 #}
{% if name is none %}
<h2>Variable is none.</h2>
{% endif %}
{# 检查变量是否为字符串,也可以用number检查是否为数值 #}
{% if name is string %}
<h2>{{ name }} is a string.</h2>
{% endif %}
{# 检查数值是否是偶数,也可以用odd检查是否为奇数 #}
{% if 2 is even %}
<h2>Variable is an even number.</h2>
{% endif %}
{# 检查变量是否可被迭代循环,也可以用sequence检查是否是序列 #}
{% if [1,2,3] is iterable %}
<h2>Variable is iterable.</h2>
{% endif %}
{# 检查变量是否是字典 #}
{% if {'name':'test'} is mapping %}
<h2>Variable is dict.</h2>

2、自定义测试器

 

from flask import Flask,render_template
import re



app = Flask(__name__)

'''自定义测试器,首先创建函数,其次添加测试器'''



def test_phone(phone):
    phone_re = r'1[3-9]\d{9}'
    return re.match(phone_re, phone)

app.jinja_env.tests['is_phone'] = test_phone

@app.template_test('start_with')
def start_with(my_str,suffix):
    return my_str.lower().startswith(suffix.lower())

  模板中:

{% set tel = '18910171111' %}
{% if tel is is_phone %}
<h2>{{ tel }} is mobile phone</h2>
{% endif %}
{% set name = 'Hello world' %}
{% if name is start_with 'hello' %}
<h2>"{{ name }}" start_with "hello"</h2>
{% endif %}

 

标签:name,自定义,检查,phone,测试,endif
From: https://www.cnblogs.com/yongheng999/p/18316429

相关文章

  • 7款主流大模型实测:简单的数感测试全翻车
    实测strawberry中有2个字母“r”?不会比大小的大模型也几乎数不对数,数理能力差到惊人!@科技新知原创谁能想到,号称“超级大脑”的大模型,竟然在几道简单的数学题上败给了小学生。近日,国内火热的音乐节目《歌手》中,孙楠与外国歌手的微小分数差异,引发了网友关于13.8%和13.1......
  • 海螺 AI 测试「悬浮球」功能抢占手机桌面;小米小爱实时字幕新增日韩语翻译丨 RTE 开发
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观......
  • Android或iOS 与 REST/SOAP测试 工具推荐
    移动测试工具- 有助于自动测试Android或iOS应用程序1)AppiumAppium是用于移动应用程序自动化的开源测试工具之一。它允许用户测试各种原生、移动、web和混合应用程序。它还支持模拟器和模拟器上的自动测试。功能特点:这是一个简单的应用程序,需要很少的内存用于测试过程......
  • 从 PyCharm IDE 运行测试时未找到 Pytest 夹具
    我的项目中的pytest装置遇到问题。我有一个根conftest.py文件,其中包含一些通用固定装置和用于特定测试的隔离conftest.py文件。文件夹结构如下:product-testing/├──conftest.py#Rootconftest.py├──tests/│└──grpc_tests/│......
  • 什么是 鲁棒性测试(Robustness Testing)
    鲁棒性测试(RobustnessTesting)是一种测试方法,用于评估系统在面对不完美或异常条件时的表现。它旨在检查系统对于无效输入、异常数据、错误条件或外部干扰的处理能力。鲁棒性测试有助于确定系统在现实世界的各种情况下的稳定性和可靠性。以下是在进行鲁棒性测试时通常考虑的一些方......
  • 需要帮助/理解 pytest 的测试功能
    我需要帮助创建可以由pytest执行的测试函数。我已经创建了一个并且它通过了,但我需要测试我创建的每个函数,但不知道该怎么做。我尝试过使用断言,但我所有的测试都失败了。我看过有关理解测试的视频,但我似乎无法掌握如何使用它。我需要你的帮助。这是我到目前为止所拥有的............
  • 自定义过滤器
    代码实现: fromflaskimportFlask,render_templateapp=Flask(__name__)defget_top3(list):#返回列表前三个returnlist[:3]#方式一:注意一个过滤器app.jinja_env.filters["get_top"]=get_top3#方式二@app.template_filter('get_qu')defget_qu(li......
  • 性能测试概念
    简介性能测试是软件测试的一种类型,旨在评估系统、应用程序或服务在特定负载条件下的性能表现。它涉及模拟真实世界中的用户行为、请求和负载,以便测量系统在不同条件下的响应时间、吞吐量、并发用户数和资源利用率等性能指标。性能测试相关概念并发:并发是指虚拟并发用户数,从业......
  • Animate软件基础:启用、编辑和测试按钮元件
    FlashASer:Animate2022零基础应用教程之教师篇https://zhuanlan.zhihu.com/p/555447498FlashASer:Animate教程及作品源文件https://zhuanlan.zhihu.com/p/677437436FlashASer:实用的各种AdobeAnimate软件教程https://zhuanlan.zhihu.com/p/675680471FlashASer:Animate2021从入......
  • 做ui自动化测试需要对页面所有元素进行可见作断言吗?还是说只需要断言一个元素存在
    嗨,我是兰若姐姐,今天和大家讨论下,页面元素的断言,应该断言一个还是多个,还是所有?其实,在UI自动化测试中,是否需要对页面所有元素进行可见性断言,还是只需要断言一个关键元素存在,取决于测试的具体目标和上下文。以下是一些常见的实践和建议:1.关键元素断言在大多数情况下,断言一......