@@ -2492,23 +2492,35 @@ def test_get_address_quoted_strings_in_atom_list(self):
24922492 self .assertEqual (address .all_mailboxes [0 ].addr_spec , '"example example"@example.com' )
24932493
24942494 def test_get_address_with_invalid_domain (self ):
2495- address = parser .get_address ("<T@[" )
2496- self .assertEqual (len (address ), 2 )
2497- self .assertEqual (address [0 ].token_type , 'address' )
2498- self .assertEqual (address [0 ].all_mailboxes [0 ].local_part , 'T' )
2499- self .assertEqual (address [0 ].all_mailboxes [0 ].domain , ']' )
2500- self .assertEqual (address [0 ].all_mailboxes [0 ].addr_spec , 'T@]' )
2501- self .assertEqual (str (address [0 ].all_defects [0 ]), "missing trailing '>' on angle-addr" )
2502- self .assertEqual (str (address [0 ].all_defects [1 ]), "end of input inside domain-literal" )
2503-
2504- address = parser .get_address ("!an??:=m==fr2@[C" )
2505- self .assertEqual (len (address ), 2 )
2506- self .assertEqual (address [0 ].token_type , 'address' )
2507- self .assertEqual (address [0 ].all_mailboxes [0 ].local_part , '=m==fr2' )
2508- self .assertEqual (address [0 ].all_mailboxes [0 ].domain , '[C]' )
2509- self .assertEqual (address [0 ].all_mailboxes [0 ].addr_spec , '=m==fr2@[C]' )
2510- self .assertEqual (str (address [0 ].all_defects [0 ]), "end of header in group" )
2511- self .assertEqual (str (address [0 ].all_defects [1 ]), "end of input inside domain-literal" )
2495+ address = self ._test_get_x (parser .get_address ,
2496+ '<T@[' ,
2497+ '<T@[]>' ,
2498+ '<T@[]>' ,
2499+ [errors .InvalidHeaderDefect , # missing trailing '>' on angle-addr
2500+ errors .InvalidHeaderDefect , # end of input inside domain-literal
2501+ ],
2502+ '' )
2503+ self .assertEqual (address .token_type , 'address' )
2504+ self .assertEqual (len (address .mailboxes ), 0 )
2505+ self .assertEqual (len (address .all_mailboxes ), 1 )
2506+ self .assertEqual (address .all_mailboxes [0 ].domain , '[]' )
2507+ self .assertEqual (address .all_mailboxes [0 ].local_part , 'T' )
2508+ self .assertEqual (address [0 ].token_type , 'invalid-mailbox' )
2509+
2510+ address = self ._test_get_x (parser .get_address ,
2511+ '!an??:=m==fr2@[C' ,
2512+ '!an??:=m==fr2@[C];' ,
2513+ '!an??:=m==fr2@[C];' ,
2514+ [errors .InvalidHeaderDefect , # end of header in group
2515+ errors .InvalidHeaderDefect , # end of input inside domain-literal
2516+ ],
2517+ '' )
2518+ self .assertEqual (address .token_type , 'address' )
2519+ self .assertEqual (len (address .mailboxes ), 0 )
2520+ self .assertEqual (len (address .all_mailboxes ), 1 )
2521+ self .assertEqual (address .all_mailboxes [0 ].domain , '[C]' )
2522+ self .assertEqual (address .all_mailboxes [0 ].local_part , '=m==fr2' )
2523+ self .assertEqual (address [0 ].token_type , 'group' )
25122524
25132525 # get_address_list
25142526
@@ -2784,7 +2796,14 @@ def test_parse_valid_message_id(self):
27842796 self .assertEqual (message_id .token_type , 'message-id' )
27852797
27862798 def test_parse_message_id_with_invalid_domain (self ):
2787- message_id = parser .parse_message_id ("<T@[" )
2799+ message_id = self ._test_parse_x (
2800+ parser .parse_message_id ,
2801+ "<T@[" ,
2802+ "<T@[]>" ,
2803+ "<T@[]>" ,
2804+ [errors .ObsoleteHeaderDefect ] + [errors .InvalidHeaderDefect ] * 2 ,
2805+ [],
2806+ )
27882807 self .assertEqual (message_id .token_type , 'message-id' )
27892808 self .assertEqual (str (message_id .all_defects [- 1 ]),
27902809 "end of input inside domain-literal" )
0 commit comments