From 303d0acfcdcc2f505c11ad7ffa435594c4e0dcee Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Sun, 19 Jul 2026 14:22:33 +0200 Subject: [PATCH] [3.13] Add test for explicit `cls` argument bypassing default JSON decoder (GH-154094) (#154114) 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 2250af964c02..e46f19712953 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 @@ class TestDecode: 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 -- 2.47.3