24:class TestEncryption: 25: def test_roundtrip(self): 31: def test_ciphertext_changes_each_call(self): 36: def test_empty_values(self): 41: def test_unicode_roundtrip(self): 45: def test_plaintext_never_in_ciphertext(self): 52:class TestPasswords: 53: def test_hash_and_verify(self): 59: def test_unique_salts(self): 62: def test_bcrypt_format(self): 67:class TestJwt: 68: def test_create_and_decode(self): 73: def test_expired_token_rejected(self): 77: def test_garbage_token_rejected(self): 81: def test_tampered_signature_rejected(self): 86:class TestErrorClassification: 92: def test_temporary_patterns(self, msg): 100: def test_permanent_patterns(self, msg): 103: def test_unknown_when_no_pattern(self): 139:class TestRotationAssigner: 140: def test_sequential_round_robin(self): 146: def test_skips_unauthorized_and_inactive(self): 154: def test_max_per_account_respected(self): 162: def test_cooldown_respected(self): 169: def test_cooldown_expiry_allows_reuse(self): 176: def test_weighted_favors_heavy_account(self): 184: def test_weighted_default_weight_one(self): 192: def test_no_accounts_returns_none(self): 196: def test_status_reporting(self): 204: def test_explicit_account_id_pin(self): 210:class TestSubjectSelector: 211: def test_round_robin(self): 217: def test_random_variety(self): 223: def test_fixed_first(self): 228: def test_empty(self): 232:class TestTemplateSequencer: 233: def test_repeat_mode_cycles(self): 240: def test_stop_mode_halts(self): 248: def test_random_mode(self): 254: def test_empty(self): === 13:class TestInvoiceGeneration: 14: def test_default_format_shape(self): 27: def test_crypto_strong_distinct_values(self): 34: def test_collision_checking_avoids_used(self): 43: def test_custom_prefix_and_format(self): 52: def test_date_token(self): 57: def test_hash_token(self): 64: def test_lowercase_tokens_and_unknown_token_passthrough(self): 71:class TestRandomFinancial: 72: def test_amount_within_range(self): 79: def test_amount_default_range(self): 85: def test_amount_swapped_bounds(self): 90: def test_shipping_within_range(self): 96: def test_random_name_format(self): 103:class TestSubstitution: 116: def test_all_known_variables_substituted(self): 143: def test_missing_value_marked_not_faked(self): 150: def test_unknown_variable_flagged(self): 156: def test_custom_csv_columns(self): 164: def test_orm_style_recipient_dict_via_snake_to_camel(self): 171: def test_used_list_populated(self): 177:class TestAnalysis: 178: def test_analyze_reports_unknown(self): 183: def test_analyze_with_custom_fields(self): 187: def test_analyze_no_vars(self):