[1.6.x] Factorized requires_tz_support decorator in test utils
Thanks Aymeric Augustin for the suggestion. Refs #21165.
Backport of c1c44b2506
from master.
This commit is contained in:
parent
47a65ad40e
commit
5b97b99a01
|
@ -2,6 +2,7 @@ from contextlib import contextmanager
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
import warnings
|
import warnings
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from xml.dom.minidom import parseString, Node
|
from xml.dom.minidom import parseString, Node
|
||||||
|
@ -17,14 +18,16 @@ from django.test.signals import template_rendered, setting_changed
|
||||||
from django.utils.encoding import force_str
|
from django.utils.encoding import force_str
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils.translation import deactivate
|
from django.utils.translation import deactivate
|
||||||
|
from django.utils.unittest import skipUnless
|
||||||
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'Approximate', 'ContextList', 'get_runner', 'override_settings',
|
'Approximate', 'ContextList', 'get_runner', 'override_settings',
|
||||||
'setup_test_environment', 'teardown_test_environment',
|
'requires_tz_support', 'setup_test_environment', 'teardown_test_environment',
|
||||||
)
|
)
|
||||||
|
|
||||||
RESTORE_LOADERS_ATTR = '_original_template_source_loaders'
|
RESTORE_LOADERS_ATTR = '_original_template_source_loaders'
|
||||||
|
TZ_SUPPORT = hasattr(time, 'tzset')
|
||||||
|
|
||||||
|
|
||||||
class Approximate(object):
|
class Approximate(object):
|
||||||
|
@ -436,3 +439,13 @@ def patch_logger(logger_name, log_level):
|
||||||
yield calls
|
yield calls
|
||||||
finally:
|
finally:
|
||||||
setattr(logger, log_level, orig)
|
setattr(logger, log_level, orig)
|
||||||
|
|
||||||
|
|
||||||
|
# On OSes that don't provide tzset (Windows), we can't set the timezone
|
||||||
|
# in which the program runs. As a consequence, we must skip tests that
|
||||||
|
# don't enforce a specific timezone (with timezone.override or equivalent),
|
||||||
|
# or attempt to interpret naive datetimes in the default timezone.
|
||||||
|
|
||||||
|
requires_tz_support = skipUnless(TZ_SUPPORT,
|
||||||
|
"This test relies on the ability to run a program in an arbitrary "
|
||||||
|
"time zone, but your operating system isn't able to do that.")
|
||||||
|
|
|
@ -1,27 +1,14 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
import time
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
from django.test import TestCase, skipUnlessDBFeature
|
from django.test import TestCase, skipUnlessDBFeature
|
||||||
from django.test.utils import override_settings
|
from django.test.utils import override_settings, requires_tz_support
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.unittest import skipUnless
|
|
||||||
|
|
||||||
from .models import Book, BookSigning
|
from .models import Book, BookSigning
|
||||||
|
|
||||||
TZ_SUPPORT = hasattr(time, 'tzset')
|
|
||||||
|
|
||||||
# On OSes that don't provide tzset (Windows), we can't set the timezone
|
|
||||||
# in which the program runs. As a consequence, we must skip tests that
|
|
||||||
# don't enforce a specific timezone (with timezone.override or equivalent),
|
|
||||||
# or attempt to interpret naive datetimes in the default timezone.
|
|
||||||
|
|
||||||
requires_tz_support = skipUnless(TZ_SUPPORT,
|
|
||||||
"This test relies on the ability to run a program in an arbitrary "
|
|
||||||
"time zone, but your operating system isn't able to do that.")
|
|
||||||
|
|
||||||
|
|
||||||
def _make_books(n, base_date):
|
def _make_books(n, base_date):
|
||||||
for i in range(n):
|
for i in range(n):
|
||||||
|
|
|
@ -4,7 +4,6 @@ import datetime
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import time
|
|
||||||
import warnings
|
import warnings
|
||||||
from xml.dom.minidom import parseString
|
from xml.dom.minidom import parseString
|
||||||
|
|
||||||
|
@ -21,11 +20,11 @@ from django.db.models import Min, Max
|
||||||
from django.http import HttpRequest
|
from django.http import HttpRequest
|
||||||
from django.template import Context, RequestContext, Template, TemplateSyntaxError
|
from django.template import Context, RequestContext, Template, TemplateSyntaxError
|
||||||
from django.test import TestCase, skipIfDBFeature, skipUnlessDBFeature
|
from django.test import TestCase, skipIfDBFeature, skipUnlessDBFeature
|
||||||
from django.test.utils import override_settings
|
from django.test.utils import override_settings, requires_tz_support
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.tzinfo import FixedOffset
|
from django.utils.tzinfo import FixedOffset
|
||||||
from django.utils.unittest import skipIf, skipUnless
|
from django.utils.unittest import skipIf
|
||||||
|
|
||||||
from .forms import EventForm, EventSplitForm, EventLocalizedForm, EventModelForm, EventLocalizedModelForm
|
from .forms import EventForm, EventSplitForm, EventLocalizedForm, EventModelForm, EventLocalizedModelForm
|
||||||
from .models import Event, MaybeEvent, Session, SessionEvent, Timestamp, AllDayEvent
|
from .models import Event, MaybeEvent, Session, SessionEvent, Timestamp, AllDayEvent
|
||||||
|
@ -43,17 +42,6 @@ UTC = timezone.utc
|
||||||
EAT = FixedOffset(180) # Africa/Nairobi
|
EAT = FixedOffset(180) # Africa/Nairobi
|
||||||
ICT = FixedOffset(420) # Asia/Bangkok
|
ICT = FixedOffset(420) # Asia/Bangkok
|
||||||
|
|
||||||
TZ_SUPPORT = hasattr(time, 'tzset')
|
|
||||||
|
|
||||||
# On OSes that don't provide tzset (Windows), we can't set the timezone
|
|
||||||
# in which the program runs. As a consequence, we must skip tests that
|
|
||||||
# don't enforce a specific timezone (with timezone.override or equivalent),
|
|
||||||
# or attempt to interpret naive datetimes in the default timezone.
|
|
||||||
|
|
||||||
requires_tz_support = skipUnless(TZ_SUPPORT,
|
|
||||||
"This test relies on the ability to run a program in an arbitrary "
|
|
||||||
"time zone, but your operating system isn't able to do that.")
|
|
||||||
|
|
||||||
|
|
||||||
@override_settings(TIME_ZONE='Africa/Nairobi', USE_TZ=False)
|
@override_settings(TIME_ZONE='Africa/Nairobi', USE_TZ=False)
|
||||||
class LegacyDatabaseTests(TestCase):
|
class LegacyDatabaseTests(TestCase):
|
||||||
|
|
Loading…
Reference in New Issue