38 lines
900 B
Python
38 lines
900 B
Python
|
"""
|
||
|
Assertion helpers and base class for offsets tests
|
||
|
"""
|
||
|
from __future__ import annotations
|
||
|
|
||
|
|
||
|
def assert_offset_equal(offset, base, expected):
|
||
|
actual = offset + base
|
||
|
actual_swapped = base + offset
|
||
|
actual_apply = offset._apply(base)
|
||
|
try:
|
||
|
assert actual == expected
|
||
|
assert actual_swapped == expected
|
||
|
assert actual_apply == expected
|
||
|
except AssertionError as err:
|
||
|
raise AssertionError(
|
||
|
f"\nExpected: {expected}\nActual: {actual}\nFor Offset: {offset})"
|
||
|
f"\nAt Date: {base}"
|
||
|
) from err
|
||
|
|
||
|
|
||
|
def assert_is_on_offset(offset, date, expected):
|
||
|
actual = offset.is_on_offset(date)
|
||
|
assert actual == expected, (
|
||
|
f"\nExpected: {expected}\nActual: {actual}\nFor Offset: {offset})"
|
||
|
f"\nAt Date: {date}"
|
||
|
)
|
||
|
|
||
|
|
||
|
class WeekDay:
|
||
|
MON = 0
|
||
|
TUE = 1
|
||
|
WED = 2
|
||
|
THU = 3
|
||
|
FRI = 4
|
||
|
SAT = 5
|
||
|
SUN = 6
|