|
@@ 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): |