From f44b321f37419fc51cb2e7e22654a90ab3146f0d Mon Sep 17 00:00:00 2001 From: emil User Date: Mon, 13 Jul 2026 01:05:20 +0000 Subject: [PATCH] DEVX-129: test: cover crypto.py line 37 (retry on leading dash) --- tests/unit/test_utils_crypto.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/unit/test_utils_crypto.py b/tests/unit/test_utils_crypto.py index 24fd9f7..b698f16 100644 --- a/tests/unit/test_utils_crypto.py +++ b/tests/unit/test_utils_crypto.py @@ -3,6 +3,7 @@ from __future__ import annotations import re +from unittest.mock import patch from devx.utils.crypto import ( _DIGITS, @@ -35,6 +36,13 @@ class TestGenerateSecret: assert "+" not in secret assert "/" not in secret + def test_retries_on_leading_dash(self) -> None: + """When token_urlsafe returns a value starting with '-', it retries.""" + # First call returns a dash-prefixed value, second returns a clean one + with patch("devx.utils.crypto.secrets.token_urlsafe", side_effect=["-bad-value", "good-value"]): + secret = generate_secret() + assert secret == "good-value" + class TestGeneratePassword: def test_default_length(self) -> None: