Skip to content

Commit d5b134a

Browse files
committed
Make test layer usable on Windows
1 parent c450fd0 commit d5b134a

3 files changed

Lines changed: 33 additions & 31 deletions

File tree

news/2027.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Make calls to time.tzset() in tests conditional on operating system. Windows does not support it.

src/plone/restapi/testing.py

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
11
# pylint: disable=E1002
22
# E1002: Use of super on an old style class
3+
import os
4+
import re
5+
import time
6+
from urllib.parse import urljoin, urlparse
7+
8+
import collective.MockMailHost
9+
import requests
310
from plone.app.contenttypes.testing import PLONE_APP_CONTENTTYPES_FIXTURE
4-
from plone.app.i18n.locales.interfaces import IContentLanguages
5-
from plone.app.i18n.locales.interfaces import IMetadataLanguages
6-
from plone.app.testing import applyProfile
7-
from plone.app.testing import FunctionalTesting
8-
from plone.app.testing import IntegrationTesting
9-
from plone.app.testing import login
10-
from plone.app.testing import PloneSandboxLayer
11-
from plone.app.testing import quickInstallProduct
12-
from plone.app.testing import setRoles
13-
from plone.app.testing import SITE_OWNER_NAME
14-
from plone.app.testing import SITE_OWNER_PASSWORD
15-
from plone.app.testing import TEST_USER_ID
11+
from plone.app.i18n.locales.interfaces import IContentLanguages, IMetadataLanguages
12+
from plone.app.testing import (
13+
SITE_OWNER_NAME,
14+
SITE_OWNER_PASSWORD,
15+
TEST_USER_ID,
16+
FunctionalTesting,
17+
IntegrationTesting,
18+
PloneSandboxLayer,
19+
applyProfile,
20+
login,
21+
quickInstallProduct,
22+
setRoles,
23+
)
1624
from plone.i18n.interfaces import ILanguageSchema
1725
from plone.registry.interfaces import IRegistry
18-
from plone.restapi.tests.dxtypes import INDEXES as DX_TYPES_INDEXES
19-
from plone.restapi.tests.helpers import add_catalog_indexes
2026
from plone.testing import zope
2127
from plone.testing.layer import Layer
2228
from plone.uuid.interfaces import IUUIDGenerator
2329
from Products.CMFCore.utils import getToolByName
2430
from requests.exceptions import ConnectionError
25-
from urllib.parse import urljoin
26-
from urllib.parse import urlparse
27-
from zope.component import getGlobalSiteManager
28-
from zope.component import getUtility
31+
from zope.component import getGlobalSiteManager, getUtility
2932
from zope.configuration import xmlconfig
3033
from zope.interface import implementer
3134

32-
import collective.MockMailHost
33-
import os
34-
import re
35-
import requests
36-
import time
35+
from plone.restapi.tests.dxtypes import INDEXES as DX_TYPES_INDEXES
36+
from plone.restapi.tests.helpers import add_catalog_indexes
3737

3838
try:
3939
from plone.app.caching.testing import PloneAppCachingBase
@@ -77,7 +77,8 @@ class DateTimeFixture(Layer):
7777
def setUp(self):
7878
tz = "UTC"
7979
os.environ["TZ"] = tz
80-
time.tzset()
80+
if os.name != "nt":
81+
time.tzset()
8182

8283
# Patch DateTime's timezone for deterministic behavior.
8384
from DateTime import DateTime
@@ -95,7 +96,8 @@ def setUp(self):
9596
def tearDown(self):
9697
if "TZ" in os.environ:
9798
del os.environ["TZ"]
98-
time.tzset()
99+
if os.name != "nt":
100+
time.tzset()
99101

100102
from DateTime import DateTime
101103

src/plone/restapi/tests/test_dxfield_publication.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313

1414
class TestPublicationFields(unittest.TestCase):
15-
1615
layer = PLONE_RESTAPI_DX_INTEGRATION_TESTING
1716

1817
def setUp(self):
@@ -22,7 +21,8 @@ def setUp(self):
2221

2322
tz = "Europe/Rome"
2423
os.environ["TZ"] = tz
25-
time.tzset()
24+
if os.name != "nt":
25+
time.tzset()
2626

2727
# Patch DateTime's timezone for deterministic behavior.
2828
self.DT_orig_localZone = DateTime.localZone
@@ -46,7 +46,8 @@ def setUp(self):
4646

4747
def tearDown(self):
4848
os.environ["TZ"] = "UTC"
49-
time.tzset()
49+
if os.name != "nt":
50+
time.tzset()
5051

5152
from DateTime import DateTime
5253

@@ -66,9 +67,7 @@ def tearDown(self):
6667
def test_effective_date_deserialization_localized(self):
6768
self.portal.invokeFactory("Document", id="doc-test", title="Test Document")
6869
doc = self.portal["doc-test"]
69-
deserializer = getMultiAdapter(
70-
(self.portal["doc-test"], self.request), IDeserializeFromJson
71-
)
70+
deserializer = getMultiAdapter((self.portal["doc-test"], self.request), IDeserializeFromJson)
7271
deserializer(data={"effective": "2015-05-20T10:39:54.361+00"})
7372
self.assertEqual(str(doc.effective_date), "2015/05/20 12:39:00 Europe/Rome")
7473

0 commit comments

Comments
 (0)