Marco Ricci commited on 2025-01-27 00:35:36
Zeige 1 geänderte Dateien mit 27 Einfügungen und 2 Löschungen.
Check that equivalent service name strings, byte strings and byte arrays all derive the same passphrases.
... | ... |
@@ -59,18 +59,43 @@ class TestVault: |
59 | 59 |
== b'n+oIz6sL>K*lTEWYRO%7' |
60 | 60 |
) |
61 | 61 |
|
62 |
- def test_202_reproducibility_and_bytes_service_name(self) -> None: |
|
62 |
+ def test_202a_reproducibility_and_bytes_service_name(self) -> None: |
|
63 | 63 |
"""Deriving a passphrase works equally for byte strings.""" |
64 | 64 |
assert Vault(phrase=self.phrase).generate(b'google') == Vault( |
65 | 65 |
phrase=self.phrase |
66 | 66 |
).generate('google') |
67 | 67 |
|
68 |
- def test_203_reproducibility_and_bytearray_service_name(self) -> None: |
|
68 |
+ def test_202b_reproducibility_and_bytearray_service_name(self) -> None: |
|
69 | 69 |
"""Deriving a passphrase works equally for byte arrays.""" |
70 | 70 |
assert Vault(phrase=self.phrase).generate(b'google') == Vault( |
71 | 71 |
phrase=self.phrase |
72 | 72 |
).generate(bytearray(b'google')) |
73 | 73 |
|
74 |
+ @hypothesis.given( |
|
75 |
+ phrase=strategies.text( |
|
76 |
+ strategies.characters(min_codepoint=32, max_codepoint=126), |
|
77 |
+ min_size=1, |
|
78 |
+ max_size=32, |
|
79 |
+ ), |
|
80 |
+ service=strategies.text( |
|
81 |
+ strategies.characters(min_codepoint=32, max_codepoint=126), |
|
82 |
+ min_size=1, |
|
83 |
+ max_size=32, |
|
84 |
+ ), |
|
85 |
+ ) |
|
86 |
+ def test_202c_reproducibility_and_binary_service_name( |
|
87 |
+ self, |
|
88 |
+ phrase: str, |
|
89 |
+ service: str, |
|
90 |
+ ) -> None: |
|
91 |
+ """Deriving a passphrase works equally for byte arrays/strings.""" |
|
92 |
+ assert Vault(phrase=phrase).generate(service) == Vault( |
|
93 |
+ phrase=phrase |
|
94 |
+ ).generate(service.encode('utf-8')) |
|
95 |
+ assert Vault(phrase=phrase).generate(service) == Vault( |
|
96 |
+ phrase=phrase |
|
97 |
+ ).generate(bytearray(service.encode('utf-8'))) |
|
98 |
+ |
|
74 | 99 |
def test_210_nonstandard_length(self) -> None: |
75 | 100 |
"""Deriving a passphrase adheres to imposed length limits.""" |
76 | 101 |
assert ( |
77 | 102 |