Movatterモバイル変換


[0]ホーム

URL:


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

Sign up
Appearance settings

gh-117655: Fixtest_strptime raises a DeprecationWarning#117668

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
gpshead merged 5 commits intopython:mainfromnineteendo:fix-test.test_strptime
May 11, 2024
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletionsLib/test/datetimetester.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -22,6 +22,7 @@

from test import support
from test.support import is_resource_enabled, ALWAYS_EQ, LARGEST, SMALLEST
from test.support import warnings_helper

import datetime as datetime_module
from datetime import MINYEAR, MAXYEAR
Expand DownExpand Up@@ -2793,6 +2794,7 @@ def test_strptime_single_digit(self):
newdate = strptime(string, format)
self.assertEqual(newdate, target, msg=reason)

@warnings_helper.ignore_warnings(category=DeprecationWarning)
def test_strptime_leap_year(self):
# GH-70647: warns if parsing a format with a day and no year.
with self.assertRaises(ValueError):
Expand Down
32 changes: 18 additions & 14 deletionsLib/test/test_strptime.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -7,7 +7,7 @@
import os
import sys
from test import support
from test.support import skip_if_buggy_ucrt_strfptime
from test.support import skip_if_buggy_ucrt_strfptime, warnings_helper
from datetime import date as datetime_date

import _strptime
Expand DownExpand Up@@ -120,7 +120,7 @@ def setUp(self):

def test_pattern(self):
# Test TimeRE.pattern
pattern_string = self.time_re.pattern(r"%a %A %d")
pattern_string = self.time_re.pattern(r"%a %A %d %Y")
self.assertTrue(pattern_string.find(self.locale_time.a_weekday[2]) != -1,
"did not find abbreviated weekday in pattern string '%s'" %
pattern_string)
Expand DownExpand Up@@ -160,10 +160,11 @@ def test_compile(self):
found.group('b')))
for directive in ('a','A','b','B','c','d','G','H','I','j','m','M','p',
'S','u','U','V','w','W','x','X','y','Y','Z','%'):
compiled = self.time_re.compile("%" + directive)
found = compiled.match(time.strftime("%" + directive))
fmt = "%d %Y" if directive == 'd' else "%" + directive
compiled = self.time_re.compile(fmt)
found = compiled.match(time.strftime(fmt))
self.assertTrue(found, "Matching failed on '%s' using '%s' regex" %
(time.strftime("%" + directive),
(time.strftime(fmt),
compiled.pattern))

def test_blankpattern(self):
Expand DownExpand Up@@ -290,8 +291,9 @@ def test_unconverteddata(self):

def helper(self, directive, position):
"""Helper fxn in testing."""
strf_output = time.strftime("%" + directive, self.time_tuple)
strp_output = _strptime._strptime_time(strf_output, "%" + directive)
fmt = "%d %Y" if directive == 'd' else "%" + directive
strf_output = time.strftime(fmt, self.time_tuple)
strp_output = _strptime._strptime_time(strf_output, fmt)
self.assertTrue(strp_output[position] == self.time_tuple[position],
"testing of '%s' directive failed; '%s' -> %s != %s" %
(directive, strf_output, strp_output[position],
Expand DownExpand Up@@ -497,9 +499,11 @@ def test_escaping(self):
need_escaping = r".^$*+?{}\[]|)("
self.assertTrue(_strptime._strptime_time(need_escaping, need_escaping))

@warnings_helper.ignore_warnings(category=DeprecationWarning) # gh-70647
def test_feb29_on_leap_year_without_year(self):
time.strptime("Feb 29", "%b %d")

@warnings_helper.ignore_warnings(category=DeprecationWarning) # gh-70647
def test_mar1_comes_after_feb29_even_when_omitting_the_year(self):
self.assertLess(
time.strptime("Feb 29", "%b %d"),
Expand DownExpand Up@@ -679,33 +683,33 @@ class CacheTests(unittest.TestCase):
def test_time_re_recreation(self):
# Make sure cache is recreated when current locale does not match what
# cached object was created with.
_strptime._strptime_time("10", "%d")
_strptime._strptime_time("10 2004", "%d %Y")
_strptime._strptime_time("2005", "%Y")
_strptime._TimeRE_cache.locale_time.lang = "Ni"
original_time_re = _strptime._TimeRE_cache
_strptime._strptime_time("10", "%d")
_strptime._strptime_time("10 2004", "%d %Y")
self.assertIsNot(original_time_re, _strptime._TimeRE_cache)
self.assertEqual(len(_strptime._regex_cache), 1)

def test_regex_cleanup(self):
# Make sure cached regexes are discarded when cache becomes "full".
try:
del _strptime._regex_cache['%d']
del _strptime._regex_cache['%d %Y']
except KeyError:
pass
bogus_key = 0
while len(_strptime._regex_cache) <= _strptime._CACHE_MAX_SIZE:
_strptime._regex_cache[bogus_key] = None
bogus_key += 1
_strptime._strptime_time("10", "%d")
_strptime._strptime_time("10 2004", "%d %Y")
self.assertEqual(len(_strptime._regex_cache), 1)

def test_new_localetime(self):
# A new LocaleTime instance should be created when a new TimeRE object
# is created.
locale_time_id = _strptime._TimeRE_cache.locale_time
_strptime._TimeRE_cache.locale_time.lang = "Ni"
_strptime._strptime_time("10", "%d")
_strptime._strptime_time("10 2004", "%d %Y")
self.assertIsNot(locale_time_id, _strptime._TimeRE_cache.locale_time)

def test_TimeRE_recreation_locale(self):
Expand All@@ -716,13 +720,13 @@ def test_TimeRE_recreation_locale(self):
except locale.Error:
self.skipTest('test needs en_US.UTF8 locale')
try:
_strptime._strptime_time('10', '%d')
_strptime._strptime_time('10 2004', '%d %Y')
# Get id of current cache object.
first_time_re = _strptime._TimeRE_cache
try:
# Change the locale and force a recreation of the cache.
locale.setlocale(locale.LC_TIME, ('de_DE', 'UTF8'))
_strptime._strptime_time('10', '%d')
_strptime._strptime_time('10 2004', '%d %Y')
# Get the new cache object's id.
second_time_re = _strptime._TimeRE_cache
# They should not be equal.
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp