From f9871c17adeba7dc553e6cf848626751a4a63a12 Mon Sep 17 00:00:00 2001 From: Dominic H Date: Sun, 19 Jul 2026 13:58:06 +0200 Subject: [PATCH] Add test for explicit `cls` argument bypassing default JSON decoder (GH-154094) * Add test for skipped `cls=None` case * Fix lint * Add new line between classes (cherry picked from commit 5380589615515fa9e2c48820073a3fd8e32a930d) Co-authored-by: Dominic H. --- Lib/test/test_json/test_decode.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Lib/test/test_json/test_decode.py b/Lib/test/test_json/test_decode.py index 2250af964c022bf..e46f19712953546 100644 --- a/Lib/test/test_json/test_decode.py +++ b/Lib/test/test_json/test_decode.py @@ -1,4 +1,5 @@ import decimal +import unittest.mock from io import StringIO from collections import OrderedDict from test.test_json import PyTest, CTest @@ -130,6 +131,15 @@ def test_limit_int(self): with self.assertRaises(ValueError): self.loads('1' * (maxdigits + 1)) + def test_explicit_cls_skips_json_decoder_default(self): + class CustomDecoder: + pass + + with unittest.mock.patch.object( + CustomDecoder, 'decode', create=True) as mock_decode: + self.loads('{}', cls=CustomDecoder) + mock_decode.assert_called_once() + class TestPyDecode(TestDecode, PyTest): pass class TestCDecode(TestDecode, CTest): pass