|
1 | | -from sentry.utils.display_name_filter import check_spam_display_name |
| 1 | +from sentry.utils.display_name_filter import is_spam_display_name |
2 | 2 |
|
3 | 3 |
|
4 | | -class TestCheckSpamDisplayName: |
| 4 | +class TestIsSpamDisplayName: |
5 | 5 | def test_clean_name_passes(self) -> None: |
6 | | - assert check_spam_display_name("My Company Inc.") is None |
| 6 | + assert not is_spam_display_name("My Company Inc.") |
7 | 7 |
|
8 | 8 | def test_single_currency_signal_passes(self) -> None: |
9 | | - assert check_spam_display_name("BTC Analytics") is None |
| 9 | + assert not is_spam_display_name("BTC Analytics") |
10 | 10 |
|
11 | 11 | def test_single_cta_verb_passes(self) -> None: |
12 | | - assert check_spam_display_name("Click Studios") is None |
| 12 | + assert not is_spam_display_name("Click Studios") |
13 | 13 |
|
14 | 14 | def test_single_cta_urgency_passes(self) -> None: |
15 | | - assert check_spam_display_name("Do It Now Labs") is None |
| 15 | + assert not is_spam_display_name("Do It Now Labs") |
16 | 16 |
|
17 | 17 | def test_cta_verb_plus_urgency_alone_passes(self) -> None: |
18 | | - assert check_spam_display_name("Click Here Studios") is None |
| 18 | + assert not is_spam_display_name("Click Here Studios") |
19 | 19 |
|
20 | 20 | def test_single_shorturl_signal_passes(self) -> None: |
21 | | - assert check_spam_display_name("bit.ly/promo team") is None |
| 21 | + assert not is_spam_display_name("bit.ly/promo team") |
22 | 22 |
|
23 | 23 | def test_currency_plus_cta_rejected(self) -> None: |
24 | | - assert check_spam_display_name("Free BTC - Click Here") is not None |
| 24 | + assert is_spam_display_name("Free BTC - Click Here") |
25 | 25 |
|
26 | 26 | def test_currency_plus_shorturl_rejected(self) -> None: |
27 | | - assert check_spam_display_name("Earn $100 via 2g.tel/promo") is not None |
| 27 | + assert is_spam_display_name("Earn $100 via 2g.tel/promo") |
28 | 28 |
|
29 | 29 | def test_shorturl_without_slash_not_matched(self) -> None: |
30 | | - assert check_spam_display_name("support.com Solutions") is None |
| 30 | + assert not is_spam_display_name("support.com Solutions") |
31 | 31 |
|
32 | 32 | def test_cta_plus_shorturl_rejected(self) -> None: |
33 | | - assert check_spam_display_name("Click Here: bit.ly/free") is not None |
| 33 | + assert is_spam_display_name("Click Here: bit.ly/free") |
34 | 34 |
|
35 | 35 | def test_bare_shorturl_domain_without_path_passes(self) -> None: |
36 | | - assert check_spam_display_name("Free BTC bit.ly") is None |
| 36 | + assert not is_spam_display_name("Free BTC bit.ly") |
37 | 37 |
|
38 | 38 | def test_all_three_categories_rejected(self) -> None: |
39 | | - result = check_spam_display_name("Win $50 ETH bit.ly/offer Claim Now") |
40 | | - assert result is not None |
| 39 | + assert is_spam_display_name("Win $50 ETH bit.ly/offer Claim Now") |
41 | 40 |
|
42 | 41 | def test_case_insensitive(self) -> None: |
43 | | - result = check_spam_display_name("FREE BTC - CLICK HERE") |
44 | | - assert result is not None |
| 42 | + assert is_spam_display_name("FREE BTC - CLICK HERE") |
45 | 43 |
|
46 | 44 | def test_currency_emoji_detected(self) -> None: |
47 | | - result = check_spam_display_name( |
48 | | - "\U0001f4b2Compensation Btc: 2g.tel/x Click Your Pay Link." |
49 | | - ) |
50 | | - assert result is not None |
| 45 | + assert is_spam_display_name("\U0001f4b2Compensation Btc: 2g.tel/x Click Your Pay Link.") |
51 | 46 |
|
52 | 47 | def test_single_currency_emoji_passes(self) -> None: |
53 | | - assert check_spam_display_name("My \U0001f4b0 Company") is None |
| 48 | + assert not is_spam_display_name("My \U0001f4b0 Company") |
54 | 49 |
|
55 | 50 | def test_cta_novel_combo_rejected(self) -> None: |
56 | | - result = check_spam_display_name("Withdraw Now - Free BTC") |
57 | | - assert result is not None |
| 51 | + assert is_spam_display_name("Withdraw Now - Free BTC") |
58 | 52 |
|
59 | 53 | def test_substring_sol_in_solutions_not_matched(self) -> None: |
60 | | - assert check_spam_display_name("Impactful Solutions") is None |
| 54 | + assert not is_spam_display_name("Impactful Solutions") |
61 | 55 |
|
62 | 56 | def test_substring_eth_in_method_not_matched(self) -> None: |
63 | | - assert check_spam_display_name("Method Analytics") is None |
| 57 | + assert not is_spam_display_name("Method Analytics") |
64 | 58 |
|
65 | 59 | def test_substring_act_in_contact_not_matched(self) -> None: |
66 | | - assert check_spam_display_name("Contact Knowledge Solutions") is None |
| 60 | + assert not is_spam_display_name("Contact Knowledge Solutions") |
67 | 61 |
|
68 | 62 | def test_substring_now_in_knowledge_not_matched(self) -> None: |
69 | | - assert check_spam_display_name("Knowledge Now Platform") is None |
| 63 | + assert not is_spam_display_name("Knowledge Now Platform") |
70 | 64 |
|
71 | 65 | def test_substring_here_in_where_not_matched(self) -> None: |
72 | | - assert check_spam_display_name("Where We Shine") is None |
| 66 | + assert not is_spam_display_name("Where We Shine") |
73 | 67 |
|
74 | 68 | def test_empty_string_passes(self) -> None: |
75 | | - assert check_spam_display_name("") is None |
76 | | - |
77 | | - def test_error_message_format(self) -> None: |
78 | | - result = check_spam_display_name("Free BTC - Click Here") |
79 | | - assert result is not None |
80 | | - assert "disallowed content" in result |
81 | | - assert "Please choose a different name" in result |
| 69 | + assert not is_spam_display_name("") |
0 commit comments