Marco Ricci commited on 2024-10-01 10:15:36
              Zeige 2 geänderte Dateien mit 11 Einfügungen und 15 Löschungen.
            
Instead of introducing a static method, calling it to obtain test parameters, then removing it again, use a declaration within the `pytest.mark.parametrize` decorator arguments, even if that is supposedly more difficult to read (I wouldn't agree). Among the readability benefits (primarily because of compactness), the imperative version via a static method throws errors on Python 3.9, presumably because the `staticmethod` object itself is being returned, not the bound method object, and the former isn't callable in Python 3.9. On a related note, a future import for annotations was missing as well.
| ... | ... | 
                      @@ -21,7 +21,7 @@ import tests  | 
                  
| 21 | 21 | 
                        from derivepassphrase import _types, cli, ssh_agent, vault  | 
                    
| 22 | 22 | 
                         | 
                    
| 23 | 23 | 
                        if TYPE_CHECKING:  | 
                    
| 24 | 
                        - from collections.abc import Iterable, Iterator  | 
                    |
| 24 | 
                        + from collections.abc import Iterable  | 
                    |
| 25 | 25 | 
                         | 
                    
| 26 | 26 | 
                        from typing_extensions import Any  | 
                    
| 27 | 27 | 
                         | 
                    
| ... | ... | 
                      @@ -276,18 +276,14 @@ class TestAgentInteraction:  | 
                  
| 276 | 276 | 
                        with pytest.raises(ValueError, match='unsuitable SSH key'):  | 
                    
| 277 | 277 | 
                        vault.Vault.phrase_from_key(public_key_data)  | 
                    
| 278 | 278 | 
                         | 
                    
| 279 | 
                        - @staticmethod  | 
                    |
| 280 | 
                        - def _params() -> Iterator[tuple[bytes, bool]]:  | 
                    |
| 281 | 
                        - for value in tests.SUPPORTED_KEYS.values():  | 
                    |
| 282 | 
                        - key = value['public_key_data']  | 
                    |
| 283 | 
                        - yield (key, False)  | 
                    |
| 284 | 
                        - singleton_key = tests.list_keys_singleton()[0].key  | 
                    |
| 285 | 
                        - for value in tests.SUPPORTED_KEYS.values():  | 
                    |
| 286 | 
                        - key = value['public_key_data']  | 
                    |
| 287 | 
                        - if key == singleton_key:  | 
                    |
| 288 | 
                        - yield (key, True)  | 
                    |
| 289 | 
                        -  | 
                    |
| 290 | 
                        - @pytest.mark.parametrize(['key', 'single'], list(_params()))  | 
                    |
| 279 | 
                        + @pytest.mark.parametrize(  | 
                    |
| 280 | 
                        + ['key', 'single'],  | 
                    |
| 281 | 
                        + [  | 
                    |
| 282 | 
                        + (value['public_key_data'], False)  | 
                    |
| 283 | 
                        + for value in tests.SUPPORTED_KEYS.values()  | 
                    |
| 284 | 
                        + ]  | 
                    |
| 285 | 
                        + + [(tests.list_keys_singleton()[0].key, True)],  | 
                    |
| 286 | 
                        + )  | 
                    |
| 291 | 287 | 
                        def test_210_ssh_key_selector(  | 
                    
| 292 | 288 | 
                        self,  | 
                    
| 293 | 289 | 
                        monkeypatch: pytest.MonkeyPatch,  | 
                    
| ... | ... | 
                      @@ -345,8 +341,6 @@ class TestAgentInteraction:  | 
                  
| 345 | 341 | 
                                 for snippet in ('Suitable SSH keys:\n', text, f'\n{b64_key}\n'):
                       | 
                    
| 346 | 342 | 
                        assert result.clean_exit(output=snippet), 'expected clean exit'  | 
                    
| 347 | 343 | 
                         | 
                    
| 348 | 
                        - del _params  | 
                    |
| 349 | 
                        -  | 
                    |
| 350 | 344 | 
                        def test_300_constructor_bad_running_agent(  | 
                    
| 351 | 345 | 
                        self,  | 
                    
| 352 | 346 | 
                        monkeypatch: pytest.MonkeyPatch,  | 
                    
| 353 | 347 |