From db88a7bbffcb0da87adf8dee9b71142f35f6cd1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B8=D1=80=D0=B5=D1=86=D0=BA=D0=B8=D0=B9=20=D0=9C?= =?UTF-8?q?=D0=B8=D1=85=D0=B0=D0=B8=D0=BB?= Date: Mon, 23 Nov 2020 10:39:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D1=85=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D1=84=D1=83=D0=BD?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D0=B8-=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80?= =?UTF-8?q?=D0=B0=20cut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calculate/templates/template_filters.py | 4 +++- tests/templates/test_template_filters.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/calculate/templates/template_filters.py b/calculate/templates/template_filters.py index c253616..fdc2924 100644 --- a/calculate/templates/template_filters.py +++ b/calculate/templates/template_filters.py @@ -3,7 +3,9 @@ def cut(instr: str, field_num: int = 0, delimiter: str = "-") -> str: Разделить входную строку `instr` разделительем `delimiter` и вернуть поле `field_num`. """ - parts = instr.split(delimiter) + if instr is None: + return "" + parts = str(instr).split(delimiter) if field_num < len(parts): return parts[field_num] else: diff --git a/tests/templates/test_template_filters.py b/tests/templates/test_template_filters.py index fefece7..996b2de 100644 --- a/tests/templates/test_template_filters.py +++ b/tests/templates/test_template_filters.py @@ -1,6 +1,10 @@ import pytest import calculate.templates.template_filters as filters +class TestObj: + def __str__(self): + return "TestObj_value" + @pytest.mark.parametrize('case', [ { @@ -9,6 +13,18 @@ import calculate.templates.template_filters as filters "params": (), "result": "" }, + { + "name": "none value", + "data": None, + "params": (), + "result": "" + }, + { + "name": "obj value", + "data": TestObj(), + "params": (), + "result": "TestObj_value" + }, { "name": "default", "data": "123",