def test_datatypes_resolver_date_wednesday_4(): today = datetime(2017, 9, 28, 15, 30, 0) resolution = TimexResolver.resolve(["XXXX-WXX-3T04", "XXXX-WXX-3T16"], today) assert len(resolution.values) == 4 assert resolution.values[0].timex == "XXXX-WXX-3T04" assert resolution.values[0].type == "datetime" assert resolution.values[0].value == "2017-09-27 04:00:00" assert resolution.values[0].start is None assert resolution.values[0].end is None assert resolution.values[1].timex == "XXXX-WXX-3T04" assert resolution.values[1].type == "datetime" assert resolution.values[1].value == "2017-10-04 04:00:00" assert resolution.values[1].start is None assert resolution.values[1].end is None assert resolution.values[2].timex == "XXXX-WXX-3T16" assert resolution.values[2].type == "datetime" assert resolution.values[2].value == "2017-09-27 16:00:00" assert resolution.values[2].start is None assert resolution.values[2].end is None assert resolution.values[3].timex == "XXXX-WXX-3T16" assert resolution.values[3].type == "datetime" assert resolution.values[3].value == "2017-10-04 16:00:00" assert resolution.values[3].start is None assert resolution.values[3].end is None
def test_datatypes_datehelpers_yesterday(): assert TimexDateHelpers.yesterday(datetime(2017, 1, 1)) == datetime(2016, 12, 31) assert TimexDateHelpers.yesterday(datetime(2017, 1, 2)) == datetime(2017, 1, 1) assert TimexDateHelpers.yesterday(datetime(2017, 3, 1)) == datetime(2017, 2, 28) assert TimexDateHelpers.yesterday(datetime(2016, 2, 29)) == datetime(2016, 2, 28)
def test_datatypes_datehelpers_tomorrow(): assert TimexDateHelpers.tomorrow(datetime(2016, 12, 31)) == datetime(2017, 1, 1) assert TimexDateHelpers.tomorrow(datetime(2017, 1, 1)) == datetime(2017, 1, 2) assert TimexDateHelpers.tomorrow(datetime(2017, 2, 28)) == datetime(2017, 3, 1) assert TimexDateHelpers.tomorrow(datetime(2016, 2, 28)) == datetime(2016, 2, 29)
def test_datatypes_resolver_dateRange_last_ten_years(): today = datetime(2021, 1, 1) resolution = TimexResolver.resolve(["(2011-01-01,2021-01-01,P10Y)"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "(2011-01-01,2021-01-01,P10Y)" assert resolution.values[0].type == "daterange" assert resolution.values[0].start == "2011-01-01" assert resolution.values[0].end == "2021-01-01"
def test_datatypes_resolver_dateRange_week_of_year(): today = datetime(2017, 4, 30) resolution = TimexResolver.resolve(["2021-W16"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "2021-W16" assert resolution.values[0].type == "daterange" assert resolution.values[0].start == "2021-04-19" assert resolution.values[0].end == "2021-04-26"
def test_datatypes_resolver_dateRange_last_year(): today = datetime(2017, 4, 30) resolution = TimexResolver.resolve(["2018"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "2018" assert resolution.values[0].type == "daterange" assert resolution.values[0].start == "2018-01-01" assert resolution.values[0].end == "2019-01-01"
def test_datatypes_resolver_dateRange_last_three_weeks(): today = datetime(2017, 4, 30) resolution = TimexResolver.resolve(["(2019-04-10,2019-05-01,P3W)"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "(2019-04-10,2019-05-01,P3W)" assert resolution.values[0].type == "daterange" assert resolution.values[0].start == "2019-04-10" assert resolution.values[0].end == "2019-05-01"
def test_datatypes_resolver_date_definite(): today = datetime(2017, 9, 26, 15, 30, 0) resolution = TimexResolver.resolve(["2017-09-28"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "2017-09-28" assert resolution.values[0].type == "date" assert resolution.values[0].value == "2017-09-28" assert resolution.values[0].start is None assert resolution.values[0].end is None
def test_datatypes_resolver_duration_2years(): today = datetime(2017, 9, 7) resolution = TimexResolver.resolve(["P2Y"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "P2Y" assert resolution.values[0].type == "duration" assert resolution.values[0].value == "63072000" assert resolution.values[0].start is None assert resolution.values[0].end is None
def test_datatypes_resolver_duration_6month(): today = datetime(2017, 9, 7) resolution = TimexResolver.resolve(["P6M"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "P6M" assert resolution.values[0].type == "duration" assert resolution.values[0].value == "15552000" assert resolution.values[0].start is None assert resolution.values[0].end is None
def test_datatypes_resolver_datetime_wednesday_4_am(): today = datetime(2017, 9, 7) resolution = TimexResolver.resolve(["2017-10-11T04"], today) assert len(resolution.values) == 1 assert resolution.values[0].timex == "2017-10-11T04" assert resolution.values[0].type == "datetime" assert resolution.values[0].value == "2017-10-11 04:00:00" assert resolution.values[0].start is None assert resolution.values[0].end is None
def test_datatypes_datehelpers_datepartequals(): assert TimexDateHelpers.date_part_equal(datetime(2017, 5, 29), datetime(2017, 5, 29)) is True assert TimexDateHelpers.date_part_equal(datetime(2017, 5, 29, 19, 30, 0), datetime(2017, 5, 29)) is False assert TimexDateHelpers.date_part_equal(datetime(2017, 5, 29), datetime(2017, 11, 15)) is False
def test_datatypes_datehelpers_datesmatchingday(): day = Constants.DAYS['THURSDAY'] start = datetime(2017, 3, 1) end = datetime(2017, 4, 1) result = TimexDateHelpers.dates_matching_day(day, start, end) assert len(result) == 5 assert result[0] == datetime(2017, 3, 2) assert result[1] == datetime(2017, 3, 9) assert result[2] == datetime(2017, 3, 16) assert result[3] == datetime(2017, 3, 23) assert result[4] == datetime(2017, 3, 30)
def test_datatypes_datehelpers_invariance(): d = datetime(2017, 8, 25) before = d TimexDateHelpers.tomorrow(d) TimexDateHelpers.yesterday(d) TimexDateHelpers.date_part_equal(datetime.now(), d) TimexDateHelpers.date_part_equal(d, datetime.now()) TimexDateHelpers.is_next_week(d, datetime.now()) TimexDateHelpers.is_next_week(datetime.now(), d) TimexDateHelpers.is_last_week(datetime.now(), d) TimexDateHelpers.week_of_year(d) after = d assert after is before
def test_datatypes_resolver_date_sunday(): today = datetime(2019, 4, 23, 15, 30, 0) resolution = TimexResolver.resolve(["XXXX-WXX-7"], today) assert len(resolution.values) == 2 assert resolution.values[0].timex == "XXXX-WXX-7" assert resolution.values[0].type == "date" assert resolution.values[0].value == "2019-04-21" assert resolution.values[0].start is None assert resolution.values[0].end is None assert resolution.values[1].timex == "XXXX-WXX-7" assert resolution.values[1].type == "date" assert resolution.values[1].value == "2019-04-28" assert resolution.values[1].start is None assert resolution.values[1].end is None
def test_datatypes_resolver_date_saturday(): today = datetime(2017, 9, 26, 15, 30, 0) resolution = TimexResolver.resolve(["XXXX-WXX-6"], today) assert len(resolution.values) == 2 assert resolution.values[0].timex == "XXXX-WXX-6" assert resolution.values[0].type == "date" assert resolution.values[0].value == "2017-09-23" assert resolution.values[0].start is None assert resolution.values[0].end is None assert resolution.values[1].timex == "XXXX-WXX-6" assert resolution.values[1].type == "date" assert resolution.values[1].value == "2017-09-30" assert resolution.values[1].start is None assert resolution.values[1].end is None
def test_datatypes_resolver_dateRange_september(): today = datetime(2017, 9, 28) resolution = TimexResolver.resolve(["XXXX-09"], today) assert len(resolution.values) == 2 assert resolution.values[0].timex == "XXXX-09" assert resolution.values[0].type == "daterange" assert resolution.values[0].start == "2016-09-01" assert resolution.values[0].end == "2016-10-01" assert resolution.values[0].value is None assert resolution.values[1].timex == "XXXX-09" assert resolution.values[1].type == "daterange" assert resolution.values[1].start == "2017-09-01" assert resolution.values[1].end == "2017-10-01" assert resolution.values[1].value is None
def test_datatypes_datehelpers_dateofnextday_today(): day = Constants.DAYS['THURSDAY'] date = datetime(2017, 9, 28) assert date != TimexDateHelpers.date_of_next_day(day, date)
def test_datatypes_datehelpers_islastweek(): today = datetime(2017, 9, 25) assert TimexDateHelpers.is_last_week(datetime(2017, 9, 20), today) is True assert TimexDateHelpers.is_last_week(datetime(2017, 9, 4), today) is False assert TimexDateHelpers.is_last_week(today, today) is False
def test_datatypes_relativeconvert_date_last_week_cross_year_month_boundary(): timex = Timex(timex='2017-12-25') today = datetime(2018, 1, 4) assert TimexRelativeConvert.convert_timex_to_string_relative( timex, today) == 'last Monday'
def test_datatypes_helpers_daterangefromtimex(): timex = Timex(timex='(2017-09-27,2017-09-29,P2D)') range = TimexHelpers.daterange_from_timex(timex) assert range.start == datetime(2017, 9, 27).date() assert range.end == datetime(2017, 9, 29).date()
def test_datatypes_datehelpers_dateofnextday_wednesday_nextweek(): day = Constants.DAYS['WEDNESDAY'] date = datetime(2017, 9, 28) assert datetime(2017, 10, 4) == TimexDateHelpers.date_of_next_day(day, date)
def test_datatypes_datehelpers_dateoflastday_friday_lastweek(): day = Constants.DAYS['FRIDAY'] date = datetime(2017, 9, 28) assert datetime(2017, 9, 22) == TimexDateHelpers.date_of_last_day(day, date)
def test_datatypes_relativeconvert_date_this_week_2(): timex = Timex(timex='2017-10-25') today = datetime(2017, 9, 9) assert TimexRelativeConvert.convert_timex_to_string_relative( timex, today) == '25th October 2017'
def test_datatypes_timex_fromdate(): assert Timex.from_date(datetime(2017, 12, 5)).timex_value() == '2017-12-05'
def test_datatypes_datehelpers_weekofyear(): assert TimexDateHelpers.week_of_year(datetime(2017, 1, 1)) == 52 assert TimexDateHelpers.week_of_year(datetime(2017, 1, 2)) == 1 assert TimexDateHelpers.week_of_year(datetime(2017, 2, 23)) == 8 assert TimexDateHelpers.week_of_year(datetime(2017, 3, 15)) == 11 assert TimexDateHelpers.week_of_year(datetime(2017, 9, 25)) == 39 assert TimexDateHelpers.week_of_year(datetime(2017, 12, 31)) == 52 assert TimexDateHelpers.week_of_year(datetime(2018, 1, 1)) == 1 assert TimexDateHelpers.week_of_year(datetime(2018, 1, 2)) == 1 assert TimexDateHelpers.week_of_year(datetime(2018, 1, 7)) == 1 assert TimexDateHelpers.week_of_year(datetime(2018, 1, 8)) == 2 assert TimexDateHelpers.week_of_year(datetime(2018, 12, 31)) == 1 assert TimexDateHelpers.week_of_year(datetime(2021, 4, 20)) == 16
def test_datatypes_timex_fromdatetime(): assert Timex.from_date_time(datetime( 2017, 12, 5, 23, 57, 35)).timex_value() == '2017-12-05T23:57:35'
def test_datatypes_timex_tonaturallanguage(): today = datetime(2017, 10, 16) Timex('2017-10-17').to_natural_language(today) assert 'tomorrow' == Timex('2017-10-17').to_natural_language(today)
def test__datatypes_helpers_datefromtimex(): timex = Timex(timex='2017-09-27') date = TimexHelpers.date_from_timex(timex) assert date == datetime(2017, 9, 27).date()
def test_datatypes_relativeconvert_date_last_week(): timex = Timex(timex='2017-09-14') today = datetime(2017, 9, 22) assert TimexRelativeConvert.convert_timex_to_string_relative( timex, today) == 'last Thursday'