def test_get_parsed_data(text, parsed, unused): data, parsed_unused = DateParser().get_parsed_raw_data(text) assert data == dict(zip(['direction', 'quantity', 'step'], parsed)) assert parsed_unused == unused
def test_direction_pattern(text, direction, subtext): assert (direction, subtext) == DateParser().get_parsed_direction(text)
def test_the_period(text, _from, _to): base_date = datetime(2018, 10, 10, 9, 30, 00) assert DateParser().parse_period(text, base_date) == (_from, _to)
def test_last_two_week(): base_date = datetime(2018, 10, 17, 9, 30, 00) dt_from, dt_to = DateParser().parse_period('last 2 weeks', base_date) assert dt_from == datetime(2018, 10, 1, 0, 0, 0) assert dt_to == datetime(2018, 10, 15, 0, 0, 0)
def test_predefined(text, dt_from, dt_to): base_date = datetime(2018, 10, 10, 9, 30, 00) _from, _to = DateParser().parse_period(text, base_date) assert _from == dt_from assert _to == dt_to
def test_unknown(text): assert (None, None) == DateParser().parse_period(text)
def test_parse_word_numbers(text, result): print(text, result) assert DateParser.get_parsed_token(QUANTITY_PATTERN, text) == result
def test_parse_numbers(text, result): assert DateParser.parse_numeric_words(text) == result
def test_decrease_date(dt, step, quantity, result): assert DateParser.decrease_date(dt, step, quantity) == result
def test_base_date(basedate, period, outcome): assert DateParser.get_base_date(basedate, period) == outcome
def test_normalize_parsed_data(income, outcome): income = dict(zip(['direction', 'quantity', 'step', 'unused'], income)) assert DateParser.normalize_parsed_data(income) == outcome
def test_step_pattern(text, period, subtext): assert (period, subtext) == DateParser().get_parsed_step(text)
def test_quantity_pattern(text, quantity, subtext): assert (quantity, subtext) == DateParser().get_parsed_quantity(text)