test_imports.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. import sys
  2. import pytest
  3. HOST_IS_WINDOWS = sys.platform.startswith('win')
  4. def test_import_version_str():
  5. """ Test that dateutil.__version__ can be imported"""
  6. from dateutil import __version__
  7. def test_import_version_root():
  8. import dateutil
  9. assert hasattr(dateutil, '__version__')
  10. # Test that dateutil.easter-related imports work properly
  11. def test_import_easter_direct():
  12. import dateutil.easter
  13. def test_import_easter_from():
  14. from dateutil import easter
  15. def test_import_easter_start():
  16. from dateutil.easter import easter
  17. # Test that dateutil.parser-related imports work properly
  18. def test_import_parser_direct():
  19. import dateutil.parser
  20. def test_import_parser_from():
  21. from dateutil import parser
  22. def test_import_parser_all():
  23. # All interface
  24. from dateutil.parser import parse
  25. from dateutil.parser import parserinfo
  26. # Other public classes
  27. from dateutil.parser import parser
  28. for var in (parse, parserinfo, parser):
  29. assert var is not None
  30. # Test that dateutil.relativedelta-related imports work properly
  31. def test_import_relative_delta_direct():
  32. import dateutil.relativedelta
  33. def test_import_relative_delta_from():
  34. from dateutil import relativedelta
  35. def test_import_relative_delta_all():
  36. from dateutil.relativedelta import relativedelta
  37. from dateutil.relativedelta import MO, TU, WE, TH, FR, SA, SU
  38. for var in (relativedelta, MO, TU, WE, TH, FR, SA, SU):
  39. assert var is not None
  40. # In the public interface but not in all
  41. from dateutil.relativedelta import weekday
  42. assert weekday is not None
  43. # Test that dateutil.rrule related imports work properly
  44. def test_import_rrule_direct():
  45. import dateutil.rrule
  46. def test_import_rrule_from():
  47. from dateutil import rrule
  48. def test_import_rrule_all():
  49. from dateutil.rrule import rrule
  50. from dateutil.rrule import rruleset
  51. from dateutil.rrule import rrulestr
  52. from dateutil.rrule import YEARLY, MONTHLY, WEEKLY, DAILY
  53. from dateutil.rrule import HOURLY, MINUTELY, SECONDLY
  54. from dateutil.rrule import MO, TU, WE, TH, FR, SA, SU
  55. rr_all = (rrule, rruleset, rrulestr,
  56. YEARLY, MONTHLY, WEEKLY, DAILY,
  57. HOURLY, MINUTELY, SECONDLY,
  58. MO, TU, WE, TH, FR, SA, SU)
  59. for var in rr_all:
  60. assert var is not None
  61. # In the public interface but not in all
  62. from dateutil.rrule import weekday
  63. assert weekday is not None
  64. # Test that dateutil.tz related imports work properly
  65. def test_import_tztest_direct():
  66. import dateutil.tz
  67. def test_import_tz_from():
  68. from dateutil import tz
  69. def test_import_tz_all():
  70. from dateutil.tz import tzutc
  71. from dateutil.tz import tzoffset
  72. from dateutil.tz import tzlocal
  73. from dateutil.tz import tzfile
  74. from dateutil.tz import tzrange
  75. from dateutil.tz import tzstr
  76. from dateutil.tz import tzical
  77. from dateutil.tz import gettz
  78. from dateutil.tz import tzwin
  79. from dateutil.tz import tzwinlocal
  80. from dateutil.tz import UTC
  81. from dateutil.tz import datetime_ambiguous
  82. from dateutil.tz import datetime_exists
  83. from dateutil.tz import resolve_imaginary
  84. tz_all = ["tzutc", "tzoffset", "tzlocal", "tzfile", "tzrange",
  85. "tzstr", "tzical", "gettz", "datetime_ambiguous",
  86. "datetime_exists", "resolve_imaginary", "UTC"]
  87. tz_all += ["tzwin", "tzwinlocal"] if sys.platform.startswith("win") else []
  88. lvars = locals()
  89. for var in tz_all:
  90. assert lvars[var] is not None
  91. # Test that dateutil.tzwin related imports work properly
  92. @pytest.mark.skipif(not HOST_IS_WINDOWS, reason="Requires Windows")
  93. def test_import_tz_windows_direct():
  94. import dateutil.tzwin
  95. @pytest.mark.skipif(not HOST_IS_WINDOWS, reason="Requires Windows")
  96. def test_import_tz_windows_from():
  97. from dateutil import tzwin
  98. @pytest.mark.skipif(not HOST_IS_WINDOWS, reason="Requires Windows")
  99. def test_import_tz_windows_star():
  100. from dateutil.tzwin import tzwin
  101. from dateutil.tzwin import tzwinlocal
  102. tzwin_all = [tzwin, tzwinlocal]
  103. for var in tzwin_all:
  104. assert var is not None
  105. # Test imports of Zone Info
  106. def test_import_zone_info_direct():
  107. import dateutil.zoneinfo
  108. def test_import_zone_info_from():
  109. from dateutil import zoneinfo
  110. def test_import_zone_info_star():
  111. from dateutil.zoneinfo import gettz
  112. from dateutil.zoneinfo import gettz_db_metadata
  113. from dateutil.zoneinfo import rebuild
  114. zi_all = (gettz, gettz_db_metadata, rebuild)
  115. for var in zi_all:
  116. assert var is not None