Mongo启发的策略测试
mitest的Python项目详细描述
简介
测试数据是否匹配策略,灵感来自 MongoDB query format
policy表示variable和data之间的预期relationship 使用json(或python dict direct)。
以“$”开头的键表示关系,如$和,$lt,$gte。
示例
政策,变量“A”小于10:
{"a": {"$lt": 10}}
测试,如果给定的数据匹配策略:
>>> policy = TestPolicy({'a': {'$lt': 10}}) >>> >>> result = policy.test({'a': 9}) >>> bool(result) True >>> result.how [('a', {'$lt': 10}, 9)] >>> >>> result = policy.test({'a': 11}) >>> bool(result) False >>> result.how [('a', {'$lt': 10}, 11)]
arrtibutehow表示数据如何匹配或不匹配策略。 例如,(“a”,{“$lt”:10},9)意味着对于变量a,策略是小于10, 并且(或者,如果不匹配)给定的数据是9。
策略格式
MongoDB查询格式有点复杂,但是 “简单胜于复杂”。
对于此MongoDB查询:
{"$or":[ {"$and":[ {"a":"23"}, {"b":6} ]}, {"$and":[ {"c":{"$gte":2}}, {"c":{"$lt":4}} ]} ]}
“$和”是列表中每个项目的默认值:
{"$or":[ [ {"a":"23"}, {"b":6} ], [ {"c":{"$gte":2}}, {"c":{"$lt":4}} ] ]}
将项目合并到单个dict:
{"$or":[ {"a":"23", "b":6}, {"c":{"$gte":2, "$lt":4}} ]}
简单得多:—)
希望这能帮到你。