Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c2b6937

Browse filesBrowse files
committed
Add examples to zoneinfo hypothesis tests
1 parent af4961b commit c2b6937
Copy full SHA for c2b6937

File tree

1 file changed

+50
-0
lines changed
Filter options

1 file changed

+50
-0
lines changed

‎Lib/test/test_zoneinfo/test_zoneinfo_property.py

Copy file name to clipboardExpand all lines: Lib/test/test_zoneinfo/test_zoneinfo_property.py
+50Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,38 @@ def valid_keys():
7070
return hypothesis.strategies.sampled_from(VALID_KEYS)
7171

7272

73+
KEY_EXAMPLES = [
74+
"Africa/Abidjan",
75+
"Africa/Casablanca",
76+
"America/Los_Angeles",
77+
"America/Santiago",
78+
"Asia/Tokyo",
79+
"Australia/Sydney",
80+
"Europe/Dublin",
81+
"Europe/Lisbon",
82+
"Europe/London",
83+
"Pacific/Kiritimati",
84+
"UTC",
85+
]
86+
87+
88+
def add_key_examples(f):
89+
for key in KEY_EXAMPLES:
90+
f = hypothesis.example(key)(f)
91+
return f
92+
93+
7394
class ZoneInfoTest(ZoneInfoTestBase):
7495
module = py_zoneinfo
7596

7697
@hypothesis.given(key=valid_keys())
98+
@add_key_examples
7799
def test_str(self, key):
78100
zi = self.klass(key)
79101
self.assertEqual(str(zi), key)
80102

81103
@hypothesis.given(key=valid_keys())
104+
@add_key_examples
82105
def test_key(self, key):
83106
zi = self.klass(key)
84107

@@ -89,6 +112,13 @@ def test_key(self, key):
89112
hypothesis.strategies.datetimes(), hypothesis.strategies.times()
90113
)
91114
)
115+
@hypothesis.example(dt=datetime.datetime.min)
116+
@hypothesis.example(dt=datetime.datetime.max)
117+
@hypothesis.example(dt=datetime.datetime(1970, 1, 1))
118+
@hypothesis.example(dt=datetime.datetime(2039, 1, 1))
119+
@hypothesis.example(dt=datetime.time(0))
120+
@hypothesis.example(dt=datetime.time(12, 0))
121+
@hypothesis.example(dt=datetime.time(23, 59, 59, 999999))
92122
def test_utc(self, dt):
93123
zi = self.klass("UTC")
94124
dt_zi = dt.replace(tzinfo=zi)
@@ -113,6 +143,7 @@ def setUp(self):
113143
super().setUp()
114144

115145
@hypothesis.given(key=valid_keys())
146+
@add_key_examples
116147
def test_pickle_unpickle_cache(self, key):
117148
zi = self.klass(key)
118149
pkl_str = pickle.dumps(zi)
@@ -121,6 +152,7 @@ def test_pickle_unpickle_cache(self, key):
121152
self.assertIs(zi, zi_rt)
122153

123154
@hypothesis.given(key=valid_keys())
155+
@add_key_examples
124156
def test_pickle_unpickle_no_cache(self, key):
125157
zi = self.klass.no_cache(key)
126158
pkl_str = pickle.dumps(zi)
@@ -130,6 +162,7 @@ def test_pickle_unpickle_no_cache(self, key):
130162
self.assertEqual(str(zi), str(zi_rt))
131163

132164
@hypothesis.given(key=valid_keys())
165+
@add_key_examples
133166
def test_pickle_unpickle_cache_multiple_rounds(self, key):
134167
"""Test that pickle/unpickle is idempotent."""
135168
zi_0 = self.klass(key)
@@ -147,6 +180,7 @@ def test_pickle_unpickle_cache_multiple_rounds(self, key):
147180
self.assertIs(zi_1, zi_2)
148181

149182
@hypothesis.given(key=valid_keys())
183+
@add_key_examples
150184
def test_pickle_unpickle_no_cache_multiple_rounds(self, key):
151185
"""Test that pickle/unpickle is idempotent."""
152186
zi_cache = self.klass(key)
@@ -178,13 +212,15 @@ class ZoneInfoCacheTest(ZoneInfoTestBase):
178212
module = py_zoneinfo
179213

180214
@hypothesis.given(key=valid_keys())
215+
@add_key_examples
181216
def test_cache(self, key):
182217
zi_0 = self.klass(key)
183218
zi_1 = self.klass(key)
184219

185220
self.assertIs(zi_0, zi_1)
186221

187222
@hypothesis.given(key=valid_keys())
223+
@add_key_examples
188224
def test_no_cache(self, key):
189225
zi_0 = self.klass.no_cache(key)
190226
zi_1 = self.klass.no_cache(key)
@@ -203,13 +239,26 @@ def _is_ambiguous(self, dt):
203239
return dt.replace(fold=not dt.fold).utcoffset() == dt.utcoffset()
204240

205241
@hypothesis.given(dt=hypothesis.strategies.datetimes(), key=valid_keys())
242+
@hypothesis.example(dt=datetime.datetime.min, key="America/New_York")
243+
@hypothesis.example(dt=datetime.datetime.max, key="America/New_York")
244+
@hypothesis.example(dt=datetime.datetime(1970, 1, 1), key="America/New_York")
245+
@hypothesis.example(dt=datetime.datetime(2020, 1, 1), key="Europe/Paris")
246+
@hypothesis.example(dt=datetime.datetime(2020, 6, 1), key="Europe/Paris")
206247
def test_same_str(self, dt, key):
207248
py_dt = dt.replace(tzinfo=py_zoneinfo.ZoneInfo(key))
208249
c_dt = dt.replace(tzinfo=c_zoneinfo.ZoneInfo(key))
209250

210251
self.assertEqual(str(py_dt), str(c_dt))
211252

212253
@hypothesis.given(dt=hypothesis.strategies.datetimes(), key=valid_keys())
254+
@hypothesis.example(dt=datetime.datetime(1970, 1, 1), key="America/New_York")
255+
@hypothesis.example(dt=datetime.datetime(2020, 2, 5), key="America/New_York")
256+
@hypothesis.example(dt=datetime.datetime(2020, 8, 12), key="America/New_York")
257+
@hypothesis.example(dt=datetime.datetime(2040, 1, 1), key="Africa/Casablanca")
258+
@hypothesis.example(dt=datetime.datetime(1970, 1, 1), key="Europe/Paris")
259+
@hypothesis.example(dt=datetime.datetime(2040, 1, 1), key="Europe/Paris")
260+
@hypothesis.example(dt=datetime.datetime.min, key="Asia/Tokyo")
261+
@hypothesis.example(dt=datetime.datetime.max, key="Asia/Tokyo")
213262
def test_same_offsets_and_names(self, dt, key):
214263
py_dt = dt.replace(tzinfo=py_zoneinfo.ZoneInfo(key))
215264
c_dt = dt.replace(tzinfo=c_zoneinfo.ZoneInfo(key))
@@ -294,6 +343,7 @@ def test_same_to_utc(self, dt, key):
294343
self.assertEqual(py_utc, c_utc)
295344

296345
@hypothesis.given(key=valid_keys())
346+
@add_key_examples
297347
def test_cross_module_pickle(self, key):
298348
py_zi = py_zoneinfo.ZoneInfo(key)
299349
c_zi = c_zoneinfo.ZoneInfo(key)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.