From 19dde8517d3a71dfb11cfd58e3def25249f9dd5c Mon Sep 17 00:00:00 2001 From: Kevin Lloyd Bernal Date: Mon, 17 Aug 2020 19:56:18 +0800 Subject: [PATCH] add regression tests --- shublang/shublang.py | 1 + tests/test_regression.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 tests/test_regression.py diff --git a/shublang/shublang.py b/shublang/shublang.py index 38e9edd..c045521 100644 --- a/shublang/shublang.py +++ b/shublang/shublang.py @@ -150,6 +150,7 @@ def sanitize(iterable): # TODO change name and add other options iterable = (x.strip() for x in iterable) + iterable = (x for x in iterable if x) iterable = (re.sub(r'[\n\t\r\s]+', ' ', x) for x in iterable) iterable = (x.encode('ascii', errors='ignore').decode('ascii') for x in iterable) iterable = (replace_entities(x) for x in iterable) diff --git a/tests/test_regression.py b/tests/test_regression.py new file mode 100644 index 0000000..6bbf561 --- /dev/null +++ b/tests/test_regression.py @@ -0,0 +1,14 @@ +"""This serves as a test bed for using shublang in complex real-world scenarios. +""" + +from shublang import evaluate + + +def test_get_non_empty_price(): + data = [' \r\t \n ', '\n', '\n', ' \tprice: $123,823.00 \n', ' '] + expression = 'sanitize | sub("[\$,]", "")' + + data = evaluate(expression, data) + assert data == ['price: 123823.00'] + + assert evaluate('re_search("(\d+\.\d{2})") | first | float | first', data) == 123823.00