test_duration.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. from ioex.datetimeex import Duration
  4. @pytest.mark.parametrize(('years'), [
  5. 0,
  6. 13,
  7. ])
  8. def test_init(years):
  9. d = Duration(years = years)
  10. assert d.years == years
  11. def test_init_default():
  12. d = Duration()
  13. assert d.years == 0
  14. None,
  15. @pytest.mark.parametrize(('years', 'exception_type'), [
  16. [-2, ValueError],
  17. ['1', TypeError],
  18. ])
  19. def test_init_fail(years, exception_type):
  20. with pytest.raises(exception_type):
  21. Duration(years = years)
  22. @pytest.mark.parametrize(('years'), [
  23. 0,
  24. 13,
  25. ])
  26. def test_set_years(years):
  27. d = Duration()
  28. d.years = years
  29. assert d.years == years
  30. @pytest.mark.parametrize(('years', 'exception_type'), [
  31. [-2, ValueError],
  32. ['1', TypeError],
  33. ])
  34. def test_set_years_fail(years, exception_type):
  35. d = Duration()
  36. with pytest.raises(exception_type):
  37. d.years = years
  38. @pytest.mark.parametrize(('init_params', 'iso'), [
  39. [{'years': 0}, 'P0Y'],
  40. [{'years': 3}, 'P3Y'],
  41. ])
  42. def test_get_isoformat(init_params, iso):
  43. d = Duration(**init_params)
  44. assert d.isoformat == iso
  45. @pytest.mark.parametrize(('a', 'b'), [
  46. [Duration(), Duration(years = 0)],
  47. [Duration(years = 0), Duration(years = 0)],
  48. [Duration(years = 3), Duration(years = 3)],
  49. ])
  50. def test_eq(a, b):
  51. assert a == b
  52. assert b == a