Code Duplication    Length = 15-22 lines in 2 locations

test/test_bot.py 2 locations

@@ 147-168 (lines=22) @@
144
    assert not list(results), 'URL must not match any pattern'
145
146
147
def test_register_url_callback_twice(tmpconfig):
148
    """Test register_url_callback replace URL callbacks for a pattern."""
149
    test_pattern = r'https://(www\.)?example\.com'
150
151
    def url_handler(*args, **kwargs):
152
        return None
153
154
    def url_handler_replacement(*args, **kwargs):
155
        return None
156
157
    sopel = bot.Sopel(tmpconfig, daemon=False)
158
    sopel.register_url_callback(test_pattern, url_handler)
159
160
    results = list(sopel.search_url_callbacks('https://www.example.com'))
161
    assert url_handler in results[0]
162
163
    sopel.register_url_callback(test_pattern, url_handler_replacement)
164
165
    results = list(sopel.search_url_callbacks('https://www.example.com'))
166
    assert len(results) == 1, 'There must be one and only one callback'
167
    assert url_handler_replacement in results[0], (
168
        'Handler must have been replaced')
169
170
171
def test_unregister_url_callback(tmpconfig):
@@ 97-111 (lines=15) @@
94
    assert url_handler in results[0], 'Once registered, handler must be found'
95
96
97
def test_search_url_callbacks_pattern(tmpconfig):
98
    """Test search_url_callbacks for a registered regex pattern."""
99
    sopel = bot.Sopel(tmpconfig, daemon=False)
100
101
    def url_handler(*args, **kwargs):
102
        return None
103
104
    sopel.register_url_callback(r'https://(www\.)?example\.com', url_handler)
105
    results = list(sopel.search_url_callbacks('https://example.com'))
106
    assert len(results) == 1, 'Expected 1 handler; found %d' % len(results)
107
    assert url_handler in results[0], 'Once registered, handler must be found'
108
109
    results = list(sopel.search_url_callbacks('https://www.example.com'))
110
    assert len(results) == 1, 'Regex pattern must match both URLs'
111
    assert url_handler in results[0]
112
113
114
def test_search_url_callbacks_compiled_pattern(tmpconfig):