Marco Ricci commited on 2025-01-25 20:55:43
              Zeige 1 geänderte Dateien mit 19 Einfügungen und 16 Löschungen.
            
| ... | ... | 
                      @@ -10,6 +10,7 @@ import contextlib  | 
                  
| 10 | 10 | 
                        import errno  | 
                    
| 11 | 11 | 
                        import gettext  | 
                    
| 12 | 12 | 
                        import os  | 
                    
| 13 | 
                        +import re  | 
                    |
| 13 | 14 | 
                        import string  | 
                    
| 14 | 15 | 
                        from typing import TYPE_CHECKING, cast  | 
                    
| 15 | 16 | 
                         | 
                    
| ... | ... | 
                      @@ -215,25 +217,27 @@ class TestL10nMachineryWithDebugTranslations:  | 
                  
| 215 | 217 | 
                        """  | 
                    
| 216 | 218 | 
                        with monkeypatched_null_translations():  | 
                    
| 217 | 219 | 
                        ts1 = msg.TranslatedString(s)  | 
                    
| 218 | 
                        - with pytest.raises((KeyError, ValueError)) as excinfo:  | 
                    |
| 219 | 
                        - str(ts1)  | 
                    |
| 220 | 
                        -            if '{spam}' in s:
                       | 
                    |
| 221 | 
                        - assert isinstance(excinfo.value, KeyError)  | 
                    |
| 222 | 
                        - assert excinfo.value.args[0] == 'spam'  | 
                    |
| 223 | 
                        - else:  | 
                    |
| 224 | 
                        - assert isinstance(excinfo.value, ValueError)  | 
                    |
| 225 | 
                        -                assert excinfo.value.args[0].startswith('Single ')
                       | 
                    |
| 226 | 
                        - assert excinfo.value.args[0].endswith(  | 
                    |
| 227 | 
                        - ' encountered in format string'  | 
                    |
| 228 | 
                        - )  | 
                    |
| 229 | 220 | 
                        ts2 = msg.TranslatedString(s, spam='eggs')  | 
                    
| 230 | 
                        - try:  | 
                    |
| 221 | 
                        +            if '{spam}' in s:
                       | 
                    |
| 222 | 
                        + with pytest.raises(KeyError, match=r'spam'):  | 
                    |
| 223 | 
                        + str(ts1)  | 
                    |
| 231 | 224 | 
                                         assert str(ts2) == s.replace('{spam}', 'eggs')
                       | 
                    
| 232 | 
                        - except ValueError as exc:  | 
                    |
| 233 | 
                        -                assert exc.args[0].startswith('Single ')  # noqa: PT017
                       | 
                    |
| 234 | 
                        - assert exc.args[0].endswith( # noqa: PT017  | 
                    |
| 235 | 
                        - ' encountered in format string'  | 
                    |
| 225 | 
                        + else:  | 
                    |
| 226 | 
                        + # Known error message variations:  | 
                    |
| 227 | 
                        + #  | 
                    |
| 228 | 
                        +                # * Single { encountered in the pattern string
                       | 
                    |
| 229 | 
                        + # * Single } encountered in the pattern string  | 
                    |
| 230 | 
                        +                # * Single '{' encountered in the pattern string
                       | 
                    |
| 231 | 
                        + # * Single '}' encountered in the pattern string  | 
                    |
| 232 | 
                        +                # * Single '{'
                       | 
                    |
| 233 | 
                        + # * Single '}'  | 
                    |
| 234 | 
                        + pattern = re.compile(  | 
                    |
| 235 | 
                        +                    r"Single (?:\{|\}|'\{'|'\}')(?: encountered in the pattern string)?"
                       | 
                    |
| 236 | 236 | 
                        )  | 
                    
| 237 | 
                        + with pytest.raises(ValueError, match=pattern):  | 
                    |
| 238 | 
                        + str(ts1)  | 
                    |
| 239 | 
                        + with pytest.raises(ValueError, match=pattern):  | 
                    |
| 240 | 
                        + str(ts2)  | 
                    |
| 237 | 241 | 
                         | 
                    
| 238 | 242 | 
                        @hypothesis.given(  | 
                    
| 239 | 243 | 
                        s=strategies.text(  | 
                    
| 240 | 244 |