Marco Ricci
Fix character set subtraction logic
Marco Ricci commited 1e5d605 at 2024-06-08 19:06:56
test_passphrase_generating.py
# SPDX-FileCopyrightText: 2024 Marco Ricci <m@the13thletter.info>
#
# SPDX-License-Identifier: MIT
"""Test passphrase generation via derivepassphrase.Vault."""
import pytest
import derivepassphrase
import sequin
Vault = derivepassphrase.Vault
phrase = b'She cells C shells bye the sea shoars'
@pytest.mark.parametrize('service,expected', [
(b'google', rb': 4TVH#5:aZl8LueOT\{'),
('twitter', rb"[ (HN_N:lI&<ro=)3'g9"),
])
def test_200_basic_configuration(service, expected):
assert Vault(phrase=phrase).generate(service) == expected
def test_201_phrase_dependence():
assert (
Vault(phrase=(phrase + b'X')).generate('google') ==
b'n+oIz6sL>K*lTEWYRO%7'
)
def test_202_reproducibility_and_bytes_service_name():
assert (
Vault(phrase=phrase).generate(b'google') ==
Vault(phrase=phrase).generate('google')
)
def test_203_reproducibility_and_bytearray_service_name():
assert (
Vault(phrase=phrase).generate(b'google') ==
Vault(phrase=phrase).generate(bytearray(b'google'))
)
def test_210_nonstandard_length():
assert Vault(phrase=phrase, length=4).generate('google') == b'xDFu'
def test_211_repetition_limit():
assert (
Vault(phrase=b'', length=24, symbol=0, number=0,
repeat=1).generate('asd') ==
b'IVTDzACftqopUXqDHPkuCIhV'
)
def test_212_without_symbols():
assert (
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX