@@ -49,7 +49,9 @@ def test_type_error(self):
4949 self .assertEqual (str (exc_info .exception ), "Expected str object, not 'bool'" )
5050
5151 def test_module_name (self ):
52- self .assertEqual (tomllib .TOMLDecodeError ().__module__ , tomllib .__name__ )
52+ self .assertEqual (
53+ tomllib .TOMLDecodeError ("" , "" , 0 ).__module__ , tomllib .__name__
54+ )
5355
5456 def test_invalid_parse_float (self ):
5557 def dict_returner (s : str ) -> dict :
@@ -64,3 +66,33 @@ def list_returner(s: str) -> list:
6466 self .assertEqual (
6567 str (exc_info .exception ), "parse_float must not return dicts or lists"
6668 )
69+
70+ def test_deprecated_tomldecodeerror (self ):
71+ for args in [
72+ (),
73+ ("err msg" ,),
74+ (None ,),
75+ (None , "doc" ),
76+ ("err msg" , None ),
77+ (None , "doc" , None ),
78+ ("err msg" , "doc" , None ),
79+ ("one" , "two" , "three" , "four" ),
80+ ("one" , "two" , 3 , "four" , "five" ),
81+ ]:
82+ with self .assertWarns (DeprecationWarning ):
83+ e = tomllib .TOMLDecodeError (* args ) # type: ignore[arg-type]
84+ self .assertEqual (e .args , args )
85+
86+ def test_tomldecodeerror (self ):
87+ msg = "error parsing"
88+ doc = "v=1\n [table]\n v='val'"
89+ pos = 13
90+ formatted_msg = "error parsing (at line 3, column 2)"
91+ e = tomllib .TOMLDecodeError (msg , doc , pos )
92+ self .assertEqual (e .args , (formatted_msg ,))
93+ self .assertEqual (str (e ), formatted_msg )
94+ self .assertEqual (e .msg , msg )
95+ self .assertEqual (e .doc , doc )
96+ self .assertEqual (e .pos , pos )
97+ self .assertEqual (e .lineno , 3 )
98+ self .assertEqual (e .colno , 2 )
0 commit comments