◐ Shell
reader mode source ↗
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
File filter
Conversations
Jump to
Diff view
Apply and reload
Show whitespace
Diff view
Apply and reload
21 changes: 4 additions & 17 deletions Lib/test/test_cmd_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -532,26 +532,26 @@ def test_xdev(self):
out = self.run_xdev("-c", code)
self.assertEqual(out,
"ignore::BytesWarning "
"always::ResourceWarning "
"default::Warning")

out = self.run_xdev("-b", "-c", code)
self.assertEqual(out,
"default::BytesWarning "
"always::ResourceWarning "
"default::Warning")

out = self.run_xdev("-bb", "-c", code)
self.assertEqual(out,
"error::BytesWarning "
"always::ResourceWarning "
"default::Warning")

out = self.run_xdev("-Werror", "-c", code)
self.assertEqual(out,
"error::Warning "
"ignore::BytesWarning "
"always::ResourceWarning "
"default::Warning")

try:
Expand All @@ -573,19 +573,6 @@ def test_xdev(self):
out = self.run_xdev("-c", code)
self.assertEqual(out, "True")

# Make sure that ResourceWarning emitted twice at the same line number
# is logged twice
filename = support.TESTFN
self.addCleanup(support.unlink, filename)
with open(filename, "w", encoding="utf8") as fp:
print("def func(): open(__file__)", file=fp)
print("func()", file=fp)
print("func()", file=fp)
fp.flush()

out = self.run_xdev(filename)
self.assertEqual(out.count(':1: ResourceWarning: '), 2, out)


class IgnoreEnvironmentTest(unittest.TestCase):

Expand Down
2 changes: 1 addition & 1 deletion Lib/warnings.py
Original file line number Diff line number Diff line change
@@ -540,7 +540,7 @@ def _filters_mutated():

# resource usage warnings are enabled by default in pydebug mode
if dev_mode or py_debug:
resource_action = "always"
else:
resource_action = "ignore"
simplefilter(resource_action, category=ResourceWarning, append=1)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
5 changes: 2 additions & 3 deletions Python/_warnings.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ _Py_IDENTIFIER(argv);
_Py_IDENTIFIER(stderr);
_Py_IDENTIFIER(ignore);
_Py_IDENTIFIER(error);
_Py_IDENTIFIER(always);
_Py_static_string(PyId_default, "default");

static int
Expand Down Expand Up @@ -1208,9 +1207,9 @@ init_filters(const _PyCoreConfig *config)
_Py_Identifier *resource_action;
/* resource usage warnings are enabled by default in pydebug mode */
#ifdef Py_DEBUG
resource_action = &PyId_always;
#else
resource_action = (dev_mode ? &PyId_always : &PyId_ignore);
#endif
PyList_SET_ITEM(filters, pos++, create_filter(PyExc_ResourceWarning,
resource_action));
Expand Down
Toggle all file notes Toggle all file annotations