parent
f963900f93
commit
606d7bde0e
@ -0,0 +1,10 @@
|
||||
def cut(instr: str, field_num: int = 0, delimiter: str = "-") -> str:
|
||||
"""
|
||||
Разделить входную строку `instr` разделительем `delimiter`
|
||||
и вернуть поле `field_num`.
|
||||
"""
|
||||
parts = instr.split(delimiter)
|
||||
if field_num < len(parts):
|
||||
return parts[field_num]
|
||||
else:
|
||||
return ""
|
@ -0,0 +1,52 @@
|
||||
import pytest
|
||||
import calculate.templates.template_filters as filters
|
||||
|
||||
@pytest.mark.parametrize('case',
|
||||
[
|
||||
{
|
||||
"name": "empty",
|
||||
"data": "",
|
||||
"params": (),
|
||||
"result": ""
|
||||
},
|
||||
{
|
||||
"name": "default",
|
||||
"data": "123",
|
||||
"params": (),
|
||||
"result": "123"
|
||||
},
|
||||
{
|
||||
"name": "default with delimiter",
|
||||
"data": "123-456",
|
||||
"params": (),
|
||||
"result": "123"
|
||||
},
|
||||
{
|
||||
"name": "second field",
|
||||
"data": "123-456",
|
||||
"params": (1,),
|
||||
"result": "456"
|
||||
},
|
||||
{
|
||||
"name": "second field empty",
|
||||
"data": "",
|
||||
"params": (1,),
|
||||
"result": ""
|
||||
},
|
||||
{
|
||||
"name": "second field but one field",
|
||||
"data": "123",
|
||||
"params": (1,),
|
||||
"result": ""
|
||||
},
|
||||
{
|
||||
"name": "use dilimeter",
|
||||
"data": "123.456",
|
||||
"params": (1,"."),
|
||||
"result": "456"
|
||||
},
|
||||
],
|
||||
ids=lambda x:x["name"])
|
||||
@pytest.mark.template_filters
|
||||
def test_filter_cut(case):
|
||||
assert filters.cut(case["data"], *case["params"]) == case["result"]
|
Loading…
Reference in new issue