|
@@ -3,59 +3,101 @@ import pytest
|
|
|
|
|
|
from ioex.datetimeex import Duration
|
|
from ioex.datetimeex import Duration
|
|
|
|
|
|
-@pytest.mark.parametrize(('years'), [
|
|
|
|
- 0,
|
|
|
|
- 13,
|
|
|
|
- ])
|
|
|
|
-def test_init(years):
|
|
|
|
- d = Duration(years = years)
|
|
|
|
- assert d.years == years
|
|
|
|
|
|
+
|
|
|
|
+@pytest.mark.parametrize(('init_kwargs'), [
|
|
|
|
+ {'years': 0},
|
|
|
|
+ {'years': 13},
|
|
|
|
+ {'days': 0},
|
|
|
|
+ {'days': 13},
|
|
|
|
+ {'years': 1, 'days': 3},
|
|
|
|
+])
|
|
|
|
+def test_init(init_kwargs):
|
|
|
|
+ d = Duration(**init_kwargs)
|
|
|
|
+ for attr in ['years', 'days']:
|
|
|
|
+ if attr in init_kwargs:
|
|
|
|
+ assert init_kwargs[attr] == getattr(d, attr)
|
|
|
|
+ else:
|
|
|
|
+ assert 0 == getattr(d, attr)
|
|
|
|
+
|
|
|
|
|
|
def test_init_default():
|
|
def test_init_default():
|
|
d = Duration()
|
|
d = Duration()
|
|
- assert d.years == 0
|
|
|
|
- None,
|
|
|
|
|
|
+ assert 0 == d.years
|
|
|
|
+ assert 0 == d.days
|
|
|
|
|
|
-@pytest.mark.parametrize(('years', 'exception_type'), [
|
|
|
|
- [-2, ValueError],
|
|
|
|
- ['1', TypeError],
|
|
|
|
- ])
|
|
|
|
-def test_init_fail(years, exception_type):
|
|
|
|
|
|
+
|
|
|
|
+@pytest.mark.parametrize(('init_kwargs', 'exception_type'), [
|
|
|
|
+ [{'years': -2}, ValueError],
|
|
|
|
+ [{'years': '1'}, TypeError],
|
|
|
|
+ [{'days': -2}, ValueError],
|
|
|
|
+ [{'days': '1'}, TypeError],
|
|
|
|
+])
|
|
|
|
+def test_init_fail(init_kwargs, exception_type):
|
|
with pytest.raises(exception_type):
|
|
with pytest.raises(exception_type):
|
|
- Duration(years = years)
|
|
|
|
|
|
+ Duration(**init_kwargs)
|
|
|
|
+
|
|
|
|
|
|
@pytest.mark.parametrize(('years'), [
|
|
@pytest.mark.parametrize(('years'), [
|
|
0,
|
|
0,
|
|
13,
|
|
13,
|
|
- ])
|
|
|
|
|
|
+])
|
|
def test_set_years(years):
|
|
def test_set_years(years):
|
|
d = Duration()
|
|
d = Duration()
|
|
d.years = years
|
|
d.years = years
|
|
assert d.years == years
|
|
assert d.years == years
|
|
|
|
|
|
|
|
+
|
|
@pytest.mark.parametrize(('years', 'exception_type'), [
|
|
@pytest.mark.parametrize(('years', 'exception_type'), [
|
|
[-2, ValueError],
|
|
[-2, ValueError],
|
|
['1', TypeError],
|
|
['1', TypeError],
|
|
- ])
|
|
|
|
|
|
+])
|
|
def test_set_years_fail(years, exception_type):
|
|
def test_set_years_fail(years, exception_type):
|
|
d = Duration()
|
|
d = Duration()
|
|
with pytest.raises(exception_type):
|
|
with pytest.raises(exception_type):
|
|
d.years = years
|
|
d.years = years
|
|
|
|
|
|
|
|
+
|
|
|
|
+@pytest.mark.parametrize(('days'), [
|
|
|
|
+ 0,
|
|
|
|
+ 13,
|
|
|
|
+])
|
|
|
|
+def test_set_days(days):
|
|
|
|
+ d = Duration()
|
|
|
|
+ d.days = days
|
|
|
|
+ assert d.days == days
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+@pytest.mark.parametrize(('days', 'exception_type'), [
|
|
|
|
+ [-2, ValueError],
|
|
|
|
+ ['1', TypeError],
|
|
|
|
+])
|
|
|
|
+def test_set_days_fail(days, exception_type):
|
|
|
|
+ d = Duration()
|
|
|
|
+ with pytest.raises(exception_type):
|
|
|
|
+ d.days = days
|
|
|
|
+
|
|
|
|
+
|
|
@pytest.mark.parametrize(('init_params', 'iso'), [
|
|
@pytest.mark.parametrize(('init_params', 'iso'), [
|
|
[{'years': 0}, 'P0Y'],
|
|
[{'years': 0}, 'P0Y'],
|
|
- [{'years': 3}, 'P3Y'],
|
|
|
|
[{'years': 30}, 'P30Y'],
|
|
[{'years': 30}, 'P30Y'],
|
|
- ])
|
|
|
|
|
|
+ [{'years': 3}, 'P3Y'],
|
|
|
|
+ [{'days': 30}, 'P30D'],
|
|
|
|
+ [{'days': 3}, 'P3D'],
|
|
|
|
+ [{'years': 10, 'days': 30}, 'P10Y30D'],
|
|
|
|
+])
|
|
def test_get_isoformat(init_params, iso):
|
|
def test_get_isoformat(init_params, iso):
|
|
d = Duration(**init_params)
|
|
d = Duration(**init_params)
|
|
assert d.isoformat == iso
|
|
assert d.isoformat == iso
|
|
|
|
|
|
|
|
+
|
|
@pytest.mark.parametrize(('a', 'b'), [
|
|
@pytest.mark.parametrize(('a', 'b'), [
|
|
- [Duration(), Duration(years = 0)],
|
|
|
|
- [Duration(years = 0), Duration(years = 0)],
|
|
|
|
- [Duration(years = 3), Duration(years = 3)],
|
|
|
|
- ])
|
|
|
|
|
|
+ [Duration(), Duration(years=0, days=0)],
|
|
|
|
+ [Duration(years=0), Duration(years=0)],
|
|
|
|
+ [Duration(years=3), Duration(years=3)],
|
|
|
|
+ [Duration(days=0), Duration(days=0)],
|
|
|
|
+ [Duration(days=3), Duration(days=3)],
|
|
|
|
+ [Duration(years=1, days=3), Duration(years=1, days=3)],
|
|
|
|
+])
|
|
def test_eq(a, b):
|
|
def test_eq(a, b):
|
|
assert a == b
|
|
assert a == b
|
|
assert b == a
|
|
assert b == a
|