SYMBOL INDEX (2670 symbols across 359 files) FILE: apprise/apprise.py class Apprise (line 59) | class Apprise: method __init__ (line 62) | def __init__( method instantiate (line 114) | def instantiate( method add (line 266) | def add( method clear (line 348) | def clear(self) -> None: method find (line 352) | def find( method notify (line 396) | def notify( method async_notify (line 456) | async def async_notify( method _create_notify_calls (line 487) | def _create_notify_calls(self, *args, **kwargs): method _create_notify_gen (line 507) | def _create_notify_gen( method _notify_sequential (line 667) | def _notify_sequential(*servers_kwargs): method _notify_parallel_threadpool (line 691) | def _notify_parallel_threadpool(*servers_kwargs): method _notify_parallel_asyncio (line 734) | async def _notify_parallel_asyncio(*servers_kwargs): method json (line 774) | def json( method details (line 823) | def details( method urls (line 905) | def urls(self, privacy: bool = False) -> list[str]: method pop (line 916) | def pop(self, index: int) -> NotifyBase: method __getitem__ (line 961) | def __getitem__(self, index: int) -> NotifyBase: method __getstate__ (line 993) | def __getstate__(self) -> dict[str, object]: method __setstate__ (line 1014) | def __setstate__(self, state: dict[str, object]) -> None: method __bool__ (line 1031) | def __bool__(self) -> bool: method __iter__ (line 1038) | def __iter__(self) -> Iterator[NotifyBase]: method __len__ (line 1052) | def __len__(self) -> int: FILE: apprise/apprise_attachment.py class AppriseAttachment (line 43) | class AppriseAttachment: method __init__ (line 46) | def __init__( method add (line 127) | def add( method instantiate (line 240) | def instantiate( method sync (line 305) | def sync( method clear (line 321) | def clear(self) -> None: method size (line 325) | def size(self) -> int: method pop (line 329) | def pop(self, index: int = -1) -> AttachBase: method __getitem__ (line 337) | def __getitem__(self, index: int) -> AttachBase: method __bool__ (line 341) | def __bool__(self) -> bool: method __iter__ (line 348) | def __iter__(self) -> Iterator[AttachBase]: method __len__ (line 352) | def __len__(self) -> int: FILE: apprise/apprise_config.py class AppriseConfig (line 48) | class AppriseConfig: method __init__ (line 55) | def __init__( method add (line 133) | def add( method add_config (line 242) | def add_config( method servers (line 312) | def servers( method instantiate (line 363) | def instantiate( method clear (line 439) | def clear(self) -> None: method server_pop (line 443) | def server_pop(self, index: int) -> NotifyBase: method pop (line 470) | def pop(self, index: int = -1) -> ConfigBase: method __getitem__ (line 479) | def __getitem__(self, index: int) -> ConfigBase: method __bool__ (line 484) | def __bool__(self) -> bool: method __iter__ (line 491) | def __iter__(self): # type: () -> Iterator[ConfigBase] method __len__ (line 495) | def __len__(self) -> int: FILE: apprise/asset.py class AppriseAsset (line 47) | class AppriseAsset: method __init__ (line 218) | def __init__( method color (line 308) | def color( method ascii (line 344) | def ascii(self, notify_type: NotifyType) -> str: method image_url (line 350) | def image_url( method image_path (line 388) | def image_path( method image_raw (line 425) | def image_raw( method details (line 450) | def details(self) -> dict[str, str]: method hex_to_rgb (line 463) | def hex_to_rgb(value: str) -> tuple[int, int, int]: method hex_to_int (line 476) | def hex_to_int(value: str) -> int: method plugin_paths (line 485) | def plugin_paths(self) -> list[str]: method storage_path (line 490) | def storage_path(self) -> Optional[str]: method storage_mode (line 495) | def storage_mode(self) -> PersistentStoreMode: method storage_salt (line 501) | def storage_salt(self) -> bytes: method storage_idlen (line 506) | def storage_idlen(self) -> int: method tzinfo (line 512) | def tzinfo(self) -> tzinfo: FILE: apprise/attachment/base.py class AttachBase (line 41) | class AttachBase(URLBase): method __init__ (line 104) | def __init__(self, name=None, mimetype=None, cache=None, **kwargs): method path (line 192) | def path(self): method name (line 206) | def name(self): method mimetype (line 228) | def mimetype(self): method exists (line 259) | def exists(self, retrieve_if_missing=True): method base64 (line 297) | def base64(self, encoding="ascii"): method invalidate (line 333) | def invalidate(self): method download (line 353) | def download(self): method open (line 367) | def open(self, mode="rb"): method chunk (line 373) | def chunk(self, size=5242880): method __enter__ (line 387) | def __enter__(self): method __exit__ (line 391) | def __exit__(self, value_type, value, traceback): method parse_url (line 397) | def parse_url(url, verify_host=True, mimetype_db=None, sanitize=True): method __len__ (line 446) | def __len__(self): method __bool__ (line 458) | def __bool__(self): method __del__ (line 465) | def __del__(self): FILE: apprise/attachment/file.py class AttachFile (line 37) | class AttachFile(AttachBase): method __init__ (line 50) | def __init__(self, path, **kwargs): method url (line 62) | def url(self, privacy=False, *args, **kwargs): method download (line 85) | def download(self, **kwargs): method parse_url (line 131) | def parse_url(url): FILE: apprise/attachment/http.py class AttachHTTP (line 42) | class AttachHTTP(AttachBase): method __init__ (line 63) | def __init__(self, headers=None, **kwargs): method download (line 95) | def download(self, **kwargs): method invalidate (line 284) | def invalidate(self): method __del__ (line 300) | def __del__(self): method url (line 304) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 363) | def parse_url(url): FILE: apprise/attachment/memory.py class AttachMemory (line 40) | class AttachMemory(AttachBase): method __init__ (line 53) | def __init__( method url (line 100) | def url(self, privacy=False, *args, **kwargs): method open (line 113) | def open(self, *args, **kwargs): method __enter__ (line 119) | def __enter__(self): method download (line 125) | def download(self, **kwargs): method base64 (line 145) | def base64(self, encoding="ascii"): method invalidate (line 163) | def invalidate(self): method exists (line 168) | def exists(self): method parse_url (line 181) | def parse_url(url): method path (line 201) | def path(self): method __len__ (line 209) | def __len__(self): method __bool__ (line 213) | def __bool__(self): FILE: apprise/cli.py class PersistentStorageMode (line 223) | class PersistentStorageMode: function print_version_msg (line 248) | def print_version_msg(): class CustomHelpCommand (line 257) | class CustomHelpCommand(click.Command): method format_help (line 258) | def format_help(self, ctx, formatter): function main (line 601) | def main( FILE: apprise/common.py class NotifyType (line 35) | class NotifyType(str, Enum): class NotifyImageSize (line 49) | class NotifyImageSize(str, Enum): class NotifyFormat (line 64) | class NotifyFormat(str, Enum): class OverflowMode (line 77) | class OverflowMode(str, Enum): class ConfigFormat (line 99) | class ConfigFormat(str, Enum): class ContentIncludeMode (line 117) | class ContentIncludeMode(str, Enum): class ContentLocation (line 141) | class ContentLocation(str, Enum): class PersistentStoreMode (line 168) | class PersistentStoreMode(str, Enum): class PersistentStoreState (line 185) | class PersistentStoreState(str, Enum): FILE: apprise/compat.py function dataclass_compat (line 36) | def dataclass_compat(*dargs: Any, **dkwargs: Any) -> Callable[[_T], _T]: FILE: apprise/config/base.py class ConfigBase (line 56) | class ConfigBase(URLBase): method __init__ (line 82) | def __init__( method servers (line 176) | def servers( method read (line 346) | def read(self) -> str | None: method expired (line 350) | def expired(self) -> bool: method __normalize_tag_groups (line 372) | def __normalize_tag_groups(group_tags: dict[str, set[str]]) -> None: method parse_url (line 447) | def parse_url( method detect_config_format (line 501) | def detect_config_format( method config_parse (line 579) | def config_parse( method config_parse_text (line 620) | def config_parse_text( method config_parse_yaml (line 836) | def config_parse_yaml( method pop (line 1347) | def pop(self, index: int = -1) -> object: method clear_cache (line 1361) | def clear_cache(self) -> None: method _special_token_handler (line 1367) | def _special_token_handler( method __getitem__ (line 1494) | def __getitem__(self, index: int) -> object: method __iter__ (line 1503) | def __iter__(self) -> object: method __len__ (line 1511) | def __len__(self) -> int: method __bool__ (line 1519) | def __bool__(self) -> bool: FILE: apprise/config/file.py class ConfigFile (line 37) | class ConfigFile(ConfigBase): method __init__ (line 49) | def __init__(self, path, **kwargs): method url (line 68) | def url(self, privacy=False, *args, **kwargs): method read (line 93) | def read(self, **kwargs): method parse_url (line 160) | def parse_url(url): FILE: apprise/config/http.py class ConfigHTTP (line 50) | class ConfigHTTP(ConfigBase): method __init__ (line 71) | def __init__(self, headers=None, **kwargs): method url (line 92) | def url(self, privacy=False, *args, **kwargs): method read (line 146) | def read(self, **kwargs): method parse_url (line 261) | def parse_url(url): FILE: apprise/config/memory.py class ConfigMemory (line 32) | class ConfigMemory(ConfigBase): method __init__ (line 42) | def __init__(self, content, **kwargs): method url (line 61) | def url(self, privacy=False, *args, **kwargs): method read (line 66) | def read(self, **kwargs): method parse_url (line 72) | def parse_url(url): FILE: apprise/conversion.py function convert_between (line 37) | def convert_between(from_format, to_format, content): function markdown_to_html (line 56) | def markdown_to_html(content): function text_to_html (line 64) | def text_to_html(content): function html_to_text (line 71) | def html_to_text(content): class HTMLConverter (line 80) | class HTMLConverter(HTMLParser): method __init__ (line 125) | def __init__(self, **kwargs): method close (line 138) | def close(self): method _finalize (line 142) | def _finalize(self, result): method handle_data (line 174) | def handle_data(self, data, *args, **kwargs): method handle_starttag (line 184) | def handle_starttag(self, tag, attrs): method handle_endtag (line 207) | def handle_endtag(self, tag): FILE: apprise/decorators/base.py class CustomNotifyPlugin (line 42) | class CustomNotifyPlugin(NotifyBase): method parse_url (line 66) | def parse_url(url): method url (line 70) | def url(self, privacy=False, *args, **kwargs): method instantiate_plugin (line 75) | def instantiate_plugin(url, send_func, name=None): FILE: apprise/decorators/notify.py function notify (line 31) | def notify(on, name=None): FILE: apprise/emojis.py function apply_emojis (line 2153) | def apply_emojis(content): FILE: apprise/exception.py class AppriseException (line 30) | class AppriseException(Exception): method __init__ (line 33) | def __init__(self, message, error_code=0): class ApprisePluginException (line 38) | class ApprisePluginException(AppriseException): method __init__ (line 41) | def __init__(self, message, error_code=600): class AppriseDiskIOError (line 45) | class AppriseDiskIOError(AppriseException): method __init__ (line 48) | def __init__(self, message, error_code=errno.EIO): class AppriseInvalidData (line 52) | class AppriseInvalidData(AppriseException): method __init__ (line 55) | def __init__(self, message, error_code=errno.EINVAL): class AppriseFileNotFound (line 59) | class AppriseFileNotFound(AppriseDiskIOError, FileNotFoundError): method __init__ (line 62) | def __init__(self, message): FILE: apprise/locale.py class AppriseLocale (line 54) | class AppriseLocale: method __init__ (line 80) | def __init__(self, language=None): method add (line 104) | def add(self, lang=None, set_default=True): method lang_at (line 144) | def lang_at(self, lang, mapto=_fn): method gettext (line 172) | def gettext(self): method detect_language (line 180) | def detect_language(lang=None, detect_fallback=True): method __getstate__ (line 233) | def __getstate__(self): method __setstate__ (line 242) | def __setstate__(self, state): class LazyTranslation (line 257) | class LazyTranslation: method __init__ (line 261) | def __init__(self, text, *args, **kwargs): method __str__ (line 267) | def __str__(self): function gettext_lazy (line 272) | def gettext_lazy(text): FILE: apprise/logger.py function trace (line 48) | def trace(self, message, *args, **kwargs): function deprecate (line 56) | def deprecate(self, message, *args, **kwargs): class LogCapture (line 70) | class LogCapture: method __init__ (line 85) | def __init__( method __enter__ (line 138) | def __enter__(self): method __exit__ (line 171) | def __exit__(self, exc_type, exc_value, tb): FILE: apprise/manager.py class PluginManager (line 45) | class PluginManager(metaclass=Singleton): method __init__ (line 67) | def __init__(self, *args, **kwargs): method unload_modules (line 111) | def unload_modules(self, disable_native=False): method load_modules (line 150) | def load_modules(self, path=None, name=None, force=False): method module_detection (line 291) | def module_detection(self, paths, cache=True): method add (line 454) | def add(self, plugin, schemas=None, url=None, send_func=None, force=Fa... method remove (line 581) | def remove(self, *schemas, unload=True): method plugins (line 591) | def plugins(self, include_disabled=True): method schemas (line 603) | def schemas(self, include_disabled=True): method disable (line 620) | def disable(self, *schemas): method enable_only (line 637) | def enable_only(self, *schemas): method __contains__ (line 667) | def __contains__(self, schema): method __delitem__ (line 675) | def __delitem__(self, schema): method __setitem__ (line 681) | def __setitem__(self, schema, plugin): method _unmap_schema (line 709) | def _unmap_schema(self, schema, *, unload=True): method __getitem__ (line 779) | def __getitem__(self, schema): method __iter__ (line 787) | def __iter__(self): method __len__ (line 795) | def __len__(self): method __bool__ (line 803) | def __bool__(self): FILE: apprise/manager_attachment.py class AttachmentManager (line 34) | class AttachmentManager(PluginManager): FILE: apprise/manager_config.py class ConfigurationManager (line 34) | class ConfigurationManager(PluginManager): FILE: apprise/manager_plugins.py class NotificationManager (line 34) | class NotificationManager(PluginManager): FILE: apprise/persistent_store.py function _ntf_tidy (line 58) | def _ntf_tidy(ntf): class CacheObject (line 81) | class CacheObject: method __init__ (line 86) | def __init__( method set (line 104) | def set( method set_expiry (line 127) | def set_expiry(self, expires: method hash (line 152) | def hash(self) -> str: method json (line 158) | def json(self) -> Optional[dict[str, Any]]: method instantiate (line 181) | def instantiate( method value (line 253) | def value(self) -> Any: method persistent (line 258) | def persistent(self) -> bool: method expires (line 263) | def expires(self) -> Optional[datetime]: method expires_sec (line 268) | def expires_sec(self) -> Optional[float]: method __bool__ (line 282) | def __bool__(self) -> bool: method __eq__ (line 291) | def __eq__(self, other) -> bool: method __str__ (line 298) | def __str__(self) -> str: class CacheJSONEncoder (line 308) | class CacheJSONEncoder(json.JSONEncoder): method default (line 311) | def default(self, entry): class PersistentStore (line 328) | class PersistentStore: method __init__ (line 373) | def __init__( method read (line 447) | def read( method write (line 487) | def write( method __move (line 652) | def __move(self, src, dst): method open (line 747) | def open( method get (line 813) | def get( method set (line 835) | def set( method clear (line 870) | def clear(self, *args: str) -> Optional[bool]: method prune (line 907) | def prune(self) -> bool: method __load_cache (line 931) | def __load_cache(self, _recovery=False): method __prepare (line 1017) | def __prepare(self, flush=True): method flush (line 1082) | def flush( method files (line 1275) | def files( method disk_scan (line 1351) | def disk_scan( method disk_prune (line 1411) | def disk_prune( method size (line 1603) | def size( method __del__ (line 1630) | def __del__(self) -> None: method __delitem__ (line 1637) | def __delitem__(self, key: str) -> None: method __contains__ (line 1660) | def __contains__(self, key: str) -> bool: method __setitem__ (line 1671) | def __setitem__(self, key: str, value: Any) -> None: method __getitem__ (line 1694) | def __getitem__(self, key: str) -> Any: method keys (line 1706) | def keys(self) -> builtins.set[str]: method delete (line 1714) | def delete( method cache_file (line 1852) | def cache_file(self) -> str: method path (line 1860) | def path(self) -> Optional[str]: method mode (line 1865) | def mode(self) -> PersistentStoreMode: FILE: apprise/plugins/__init__.py function _sanitize_token (line 61) | def _sanitize_token(tokens, default_delimiter): function details (line 150) | def details(plugin): function requirements (line 335) | def requirements(plugin): function url_to_dict (line 418) | def url_to_dict(url, secure_logging=True): FILE: apprise/plugins/africas_talking.py class AfricasTalkingSMSMode (line 46) | class AfricasTalkingSMSMode: class NotifyAfricasTalking (line 86) | class NotifyAfricasTalking(NotifyBase): method __init__ (line 188) | def __init__( method send (line 277) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 394) | def url_identifier(self): method url (line 402) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 431) | def __len__(self): method parse_url (line 446) | def parse_url(url): FILE: apprise/plugins/apprise_api.py class AppriseAPIMethod (line 43) | class AppriseAPIMethod: class NotifyAppriseAPI (line 56) | class NotifyAppriseAPI(NotifyBase): method __init__ (line 159) | def __init__( method url (line 198) | def url(self, privacy=False, *args, **kwargs): method send (line 255) | def send( method parse_native_url (line 448) | def parse_native_url(url): method parse_url (line 494) | def parse_url(url): FILE: apprise/plugins/aprs.py class NotifyAprs (line 111) | class NotifyAprs(NotifyBase): method __init__ (line 219) | def __init__(self, targets=None, locale=None, delay=None, **kwargs): method socket_close (line 322) | def socket_close(self): method socket_open (line 329) | def socket_open(self): method aprsis_login (line 382) | def aprsis_login(self): method socket_send (line 461) | def socket_send(self, tx_data): method socket_reset (line 507) | def socket_reset(self): method socket_receive (line 514) | def socket_receive(self, rx_len): method send (line 565) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 656) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 697) | def url_identifier(self): method __len__ (line 705) | def __len__(self): method __del__ (line 710) | def __del__(self): method parse_url (line 715) | def parse_url(url): FILE: apprise/plugins/bark.py class NotifyBarkLevel (line 79) | class NotifyBarkLevel: class NotifyBark (line 99) | class NotifyBark(NotifyBase): method __init__ (line 224) | def __init__( method send (line 334) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 480) | def url_identifier(self): method url (line 494) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 561) | def __len__(self): method parse_url (line 566) | def parse_url(url): FILE: apprise/plugins/base.py class RequirementsSpec (line 54) | class RequirementsSpec(TypedDict, total=False): class NotifyBase (line 62) | class NotifyBase(URLBase): method __init__ (line 302) | def __init__(self, **kwargs): method image_url (line 383) | def image_url( method image_path (line 403) | def image_path( method image_raw (line 418) | def image_raw( method color (line 433) | def color( method ascii (line 446) | def ascii( method notify (line 456) | def notify(self, *args: Any, **kwargs: Any) -> bool: method async_notify (line 472) | async def async_notify(self, *args: Any, **kwargs: Any) -> bool: method _build_send_calls (line 497) | def _build_send_calls( method _apply_overflow (line 579) | def _apply_overflow( method send (line 851) | def send( method url_parameters (line 863) | def url_parameters( method parse_url (line 893) | def parse_url( method parse_native_url (line 958) | def parse_native_url(url: str) -> Optional[dict[str, Any]]: method store (line 975) | def store(self): method tzinfo (line 1000) | def tzinfo(self) -> tzinfo: FILE: apprise/plugins/bluesky.py class NotifyBlueSky (line 53) | class NotifyBlueSky(NotifyBase): method __init__ (line 132) | def __init__(self, **kwargs): method send (line 161) | def send( method get_identifier (line 290) | def get_identifier(self, user=None, login=False): method login (line 400) | def login(self): method _fetch (line 490) | def _fetch( method url_identifier (line 642) | def url_identifier(self): method url (line 654) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 675) | def parse_url(url): FILE: apprise/plugins/brevo.py class NotifyBrevo (line 70) | class NotifyBrevo(NotifyBase): method __init__ (line 158) | def __init__( method url_identifier (line 257) | def url_identifier(self): method url (line 265) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 308) | def __len__(self): method send (line 312) | def send( method parse_url (line 517) | def parse_url(url): FILE: apprise/plugins/bulksms.py class BulkSMSRoutingGroup (line 52) | class BulkSMSRoutingGroup: class BulkSMSEncoding (line 68) | class BulkSMSEncoding: class NotifyBulkSMS (line 76) | class NotifyBulkSMS(NotifyBase): method __init__ (line 177) | def __init__( method send (line 252) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 415) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 453) | def url_identifier(self): method __len__ (line 465) | def __len__(self): method parse_url (line 483) | def parse_url(url): FILE: apprise/plugins/bulkvs.py class NotifyBulkVS (line 46) | class NotifyBulkVS(NotifyBase): method __init__ (line 138) | def __init__(self, source=None, targets=None, batch=None, **kwargs): method send (line 187) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 323) | def url_identifier(self): method url (line 331) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 364) | def __len__(self): method parse_url (line 380) | def parse_url(url): FILE: apprise/plugins/burstsms.py class BurstSMSCountryCode (line 47) | class BurstSMSCountryCode: class NotifyBurstSMS (line 66) | class NotifyBurstSMS(NotifyBase): method __init__ (line 173) | def __init__( method send (line 260) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 367) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 396) | def url_identifier(self): method __len__ (line 404) | def __len__(self): method parse_url (line 419) | def parse_url(url): FILE: apprise/plugins/chanify.py class NotifyChanify (line 43) | class NotifyChanify(NotifyBase): method __init__ (line 93) | def __init__(self, token, **kwargs): method send (line 107) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 169) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 182) | def url_identifier(self): method parse_url (line 191) | def parse_url(url): FILE: apprise/plugins/clickatell.py class NotifyClickatell (line 41) | class NotifyClickatell(NotifyBase): method __init__ (line 110) | def __init__(self, apikey, source=None, targets=None, **kwargs): method url_identifier (line 156) | def url_identifier(self): method url (line 164) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 180) | def __len__(self): method send (line 187) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 274) | def parse_url(url): FILE: apprise/plugins/clicksend.py class NotifyClickSend (line 57) | class NotifyClickSend(NotifyBase): method __init__ (line 137) | def __init__(self, targets=None, batch=False, **kwargs): method send (line 164) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 266) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 295) | def url_identifier(self): method __len__ (line 303) | def __len__(self): method parse_url (line 318) | def parse_url(url): FILE: apprise/plugins/custom_form.py class FORMPayloadField (line 38) | class FORMPayloadField: class NotifyForm (line 52) | class NotifyForm(NotifyBase): method __init__ (line 179) | def __init__( method send (line 278) | def send( method url_identifier (line 450) | def url_identifier(self): method url (line 465) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 524) | def parse_url(url): FILE: apprise/plugins/custom_json.py class JSONPayloadField (line 41) | class JSONPayloadField: class NotifyJSON (line 56) | class NotifyJSON(NotifyBase): method __init__ (line 155) | def __init__( method send (line 197) | def send( method url_identifier (line 352) | def url_identifier(self): method url (line 367) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 421) | def parse_url(url): FILE: apprise/plugins/custom_xml.py class XMLPayloadField (line 41) | class XMLPayloadField: class NotifyXML (line 55) | class NotifyXML(NotifyBase): method __init__ (line 155) | def __init__( method send (line 248) | def send( method url_identifier (line 442) | def url_identifier(self): method url (line 457) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 512) | def parse_url(url): FILE: apprise/plugins/d7networks.py class NotifyD7Networks (line 60) | class NotifyD7Networks(NotifyBase): method __init__ (line 151) | def __init__( method send (line 199) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 345) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 370) | def url_identifier(self): method __len__ (line 378) | def __len__(self): method parse_url (line 386) | def parse_url(url): FILE: apprise/plugins/dapnet.py class DapnetPriority (line 60) | class DapnetPriority: class NotifyDapnet (line 82) | class NotifyDapnet(NotifyBase): method __init__ (line 174) | def __init__( method send (line 227) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 314) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 349) | def url_identifier(self): method __len__ (line 357) | def __len__(self): method parse_url (line 372) | def parse_url(url): FILE: apprise/plugins/dbus.py class DBusUrgency (line 113) | class DBusUrgency: class NotifyDBus (line 145) | class NotifyDBus(NotifyBase): method __init__ (line 233) | def __init__( method send (line 291) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 390) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 417) | def parse_url(url): FILE: apprise/plugins/dingtalk.py class NotifyDingTalk (line 57) | class NotifyDingTalk(NotifyBase): method __init__ (line 133) | def __init__(self, token, targets=None, secret=None, **kwargs): method get_signature (line 181) | def get_signature(self): method send (line 193) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method title_maxlen (line 283) | def title_maxlen(self): method url (line 291) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 320) | def url_identifier(self): method __len__ (line 328) | def __len__(self): method parse_url (line 334) | def parse_url(url): FILE: apprise/plugins/discord.py class NotifyDiscord (line 67) | class NotifyDiscord(NotifyBase): method __init__ (line 211) | def __init__( method send (line 305) | def send( method _send (line 463) | def _send( method url (line 645) | def url(self, privacy: bool = False, *args: Any, **kwargs: Any) -> str: method url_identifier (line 691) | def url_identifier(self) -> tuple[str, str, str]: method parse_url (line 696) | def parse_url(url: str) -> dict[str, Any] | None: method parse_native_url (line 784) | def parse_native_url(url: str) -> dict[str, Any] | None: method ping_payload (line 816) | def ping_payload(self, *args: str) -> dict[str, Any]: method extract_markdown_sections (line 869) | def extract_markdown_sections( FILE: apprise/plugins/dot.py class NotifyDot (line 86) | class NotifyDot(NotifyBase): method __init__ (line 199) | def __init__( method send (line 278) | def send( method url_identifier (line 472) | def url_identifier(self): method url (line 483) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 532) | def __len__(self): method parse_url (line 537) | def parse_url(url): FILE: apprise/plugins/email/base.py class NotifyEmail (line 63) | class NotifyEmail(NotifyBase): method __init__ (line 213) | def __init__( method apply_email_defaults (line 439) | def apply_email_defaults(self, secure_mode=None, port=None, **kwargs): method send (line 531) | def send( method url (line 645) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 786) | def url_identifier(self): method __len__ (line 805) | def __len__(self): method parse_url (line 812) | def parse_url(url): method _get_charset (line 917) | def _get_charset(input_string): method prepare_emails (line 930) | def prepare_emails( FILE: apprise/plugins/email/common.py class AppriseEmailException (line 34) | class AppriseEmailException(ApprisePluginException): method __init__ (line 39) | def __init__(self, message, error_code=601): class WebBaseLogin (line 43) | class WebBaseLogin: class SecureMailMode (line 57) | class SecureMailMode: class EmailMessage (line 78) | class EmailMessage: FILE: apprise/plugins/emby.py class NotifyEmby (line 44) | class NotifyEmby(NotifyBase): method __init__ (line 119) | def __init__(self, modal=False, **kwargs): method login (line 151) | def login(self, **kwargs): method sessions (line 278) | def sessions(self, user_controlled=True): method logout (line 428) | def logout(self, **kwargs): method send (line 504) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 605) | def url_identifier(self): method url (line 619) | def url(self, privacy=False, *args, **kwargs): method is_authenticated (line 658) | def is_authenticated(self): method emby_auth_header (line 663) | def emby_auth_header(self): method parse_url (line 681) | def parse_url(url): method __del__ (line 694) | def __del__(self): FILE: apprise/plugins/enigma2.py class Enigma2MessageType (line 46) | class Enigma2MessageType: class NotifyEnigma2 (line 62) | class NotifyEnigma2(NotifyBase): method __init__ (line 158) | def __init__(self, timeout=None, headers=None, **kwargs): method url_identifier (line 188) | def url_identifier(self): method url (line 203) | def url(self, privacy=False, *args, **kwargs): method send (line 246) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 352) | def parse_url(url): FILE: apprise/plugins/fcm/__init__.py class GoogleOAuth (line 77) | class GoogleOAuth: class NotifyFCM (line 89) | class NotifyFCM(NotifyBase): method __init__ (line 220) | def __init__( method access_token (line 328) | def access_token(self): method send (line 356) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 532) | def url_identifier(self): method url (line 540) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 583) | def __len__(self): method parse_url (line 588) | def parse_url(url): FILE: apprise/plugins/fcm/color.py class FCMColorManager (line 42) | class FCMColorManager: method __init__ (line 59) | def __init__(self, color, asset=None): method get (line 94) | def get(self, notify_type=NotifyType.INFO): method __str__ (line 108) | def __str__(self): method __bool__ (line 116) | def __bool__(self): FILE: apprise/plugins/fcm/common.py class FCMMode (line 29) | class FCMMode: FILE: apprise/plugins/fcm/oauth.py class GoogleOAuth (line 49) | class GoogleOAuth: method __init__ (line 66) | def __init__( method __reset (line 83) | def __reset(self): method load (line 100) | def load(self, path): method access_token (line 184) | def access_token(self): method project_id (line 321) | def project_id(self): FILE: apprise/plugins/fcm/priority.py class NotificationPriority (line 38) | class NotificationPriority: class FCMPriority (line 68) | class FCMPriority: class FCMPriorityManager (line 91) | class FCMPriorityManager: method __init__ (line 157) | def __init__(self, mode, priority=None): method payload (line 181) | def payload(self): method __str__ (line 189) | def __str__(self): method __bool__ (line 193) | def __bool__(self): FILE: apprise/plugins/feishu.py class NotifyFeishu (line 45) | class NotifyFeishu(NotifyBase): method __init__ (line 99) | def __init__(self, token, **kwargs): method send (line 113) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 197) | def url_identifier(self): method url (line 205) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 218) | def parse_url(url): FILE: apprise/plugins/flock.py class NotifyFlock (line 62) | class NotifyFlock(NotifyBase): method __init__ (line 147) | def __init__(self, token, targets=None, include_image=True, **kwargs): method send (line 196) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _post (line 256) | def _post(self, url, headers, payload): method url_identifier (line 310) | def url_identifier(self): method url (line 318) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 338) | def __len__(self): method parse_url (line 344) | def parse_url(url): method parse_native_url (line 371) | def parse_native_url(url): FILE: apprise/plugins/fluxer.py class FluxerMode (line 74) | class FluxerMode: class NotifyFluxer (line 90) | class NotifyFluxer(NotifyBase): method __init__ (line 265) | def __init__( method send (line 390) | def send( method _send (line 541) | def _send( method url (line 757) | def url(self, privacy: bool = False, *args: Any, **kwargs: Any) -> str: method url_identifier (line 830) | def url_identifier(self) -> tuple[Any, ...]: method parse_url (line 850) | def parse_url(url: str) -> dict[str, Any] | None: method parse_native_url (line 963) | def parse_native_url(url: str) -> dict[str, Any] | None: method ping_payload (line 996) | def ping_payload(self, *args: str) -> dict[str, Any]: method extract_markdown_sections (line 1042) | def extract_markdown_sections( FILE: apprise/plugins/fortysixelks.py class Notify46Elks (line 54) | class Notify46Elks(NotifyBase): method __init__ (line 130) | def __init__( method send (line 180) | def send( method url_identifier (line 275) | def url_identifier(self): method url (line 283) | def url(self, privacy: bool = False, *args: Any, **kwargs: Any) -> str: method __len__ (line 307) | def __len__(self): method parse_native_url (line 313) | def parse_native_url(url): method parse_url (line 338) | def parse_url(url): FILE: apprise/plugins/freemobile.py class NotifyFreeMobile (line 44) | class NotifyFreeMobile(NotifyBase): method __init__ (line 91) | def __init__(self, **kwargs): method url_identifier (line 105) | def url_identifier(self): method url (line 113) | def url(self, privacy=False, *args, **kwargs): method send (line 126) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 189) | def parse_url(url): FILE: apprise/plugins/glib.py class GLibUrgency (line 80) | class GLibUrgency: class NotifyGLib (line 112) | class NotifyGLib(NotifyBase): method __init__ (line 194) | def __init__(self, urgency=None, x_axis=None, y_axis=None, method send (line 233) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 332) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 361) | def parse_url(url): FILE: apprise/plugins/gnome.py class GnomeUrgency (line 61) | class GnomeUrgency: class NotifyGnome (line 92) | class NotifyGnome(NotifyBase): method __init__ (line 162) | def __init__(self, urgency=None, include_image=True, **kwargs): method send (line 184) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 232) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 251) | def parse_url(url): FILE: apprise/plugins/google_chat.py class NotifyGoogleChat (line 67) | class NotifyGoogleChat(NotifyBase): method __init__ (line 150) | def __init__( method send (line 200) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 290) | def url_identifier(self): method url (line 303) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 323) | def parse_url(url): method parse_native_url (line 383) | def parse_native_url(url): FILE: apprise/plugins/gotify.py class GotifyPriority (line 44) | class GotifyPriority: class NotifyGotify (line 89) | class NotifyGotify(NotifyBase): method __init__ (line 161) | def __init__(self, token, priority=None, **kwargs): method send (line 197) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 276) | def url_identifier(self): method url (line 291) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 323) | def parse_url(url): FILE: apprise/plugins/growl.py class GrowlPriority (line 50) | class GrowlPriority: class NotifyGrowl (line 87) | class NotifyGrowl(NotifyBase): method __init__ (line 189) | def __init__( method register (line 232) | def register(self): method send (line 292) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 362) | def url_identifier(self): method url (line 376) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 417) | def parse_url(url): FILE: apprise/plugins/guilded.py class NotifyGuilded (line 52) | class NotifyGuilded(discord.NotifyDiscord): method parse_native_url (line 71) | def parse_native_url(url): FILE: apprise/plugins/home_assistant.py class NotifyHomeAssistant (line 43) | class NotifyHomeAssistant(NotifyBase): method __init__ (line 120) | def __init__(self, accesstoken, nid=None, **kwargs): method send (line 154) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 242) | def url_identifier(self): method url (line 262) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 318) | def parse_url(url): FILE: apprise/plugins/httpsms.py class NotifyHttpSMS (line 41) | class NotifyHttpSMS(NotifyBase): method __init__ (line 123) | def __init__(self, apikey=None, source=None, targets=None, **kwargs): method send (line 166) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 262) | def url_identifier(self): method url (line 270) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 293) | def __len__(self): method parse_url (line 299) | def parse_url(url): FILE: apprise/plugins/ifttt.py class NotifyIFTTT (line 53) | class NotifyIFTTT(NotifyBase): method __init__ (line 138) | def __init__( method send (line 190) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 296) | def url_identifier(self): method url (line 304) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 323) | def __len__(self): method parse_url (line 328) | def parse_url(url): method parse_native_url (line 365) | def parse_native_url(url): FILE: apprise/plugins/irc/base.py class NotifyIRC (line 70) | class NotifyIRC(NotifyBase): method __init__ (line 176) | def __init__( method apply_irc_defaults (line 242) | def apply_irc_defaults(self, port=None, **kwargs): method send (line 278) | def send( method url_identifier (line 382) | def url_identifier( method url (line 392) | def url(self, privacy: bool = False, *args: Any, **kwargs: Any) -> str: method parse_url (line 456) | def parse_url(url: str) -> Optional[dict[str, Any]]: FILE: apprise/plugins/irc/client.py class IRCClient (line 53) | class IRCClient: method __init__ (line 70) | def __init__( method nickname (line 119) | def nickname(self) -> str: method connect (line 123) | def connect(self) -> None: method close (line 126) | def close(self) -> None: method _queue (line 129) | def _queue(self, line: str) -> None: method _write (line 136) | def _write(self, line: Union[str, bytes], deadline: float) -> None: method _flush (line 150) | def _flush(self, deadline: float) -> None: method _read (line 156) | def _read(self, deadline: float) -> Optional[str]: method _nickname_collision_handler (line 179) | def _nickname_collision_handler(self, prefix: str) -> str: method _tick (line 194) | def _tick(self, deadline: float) -> float: method _handshake (line 200) | def _handshake(self, deadline: float, prefix: str) -> None: method register (line 225) | def register(self, timeout: float, prefix: str) -> None: method check_connection (line 266) | def check_connection(self, timeout: float) -> bool: method join (line 288) | def join( method privmsg (line 313) | def privmsg(self, target: str, message: str, timeout: float) -> None: method identify (line 320) | def identify(self, timeout: float) -> None: method quit (line 340) | def quit(self, message: str, timeout: float) -> None: method nick_generation (line 348) | def nick_generation( FILE: apprise/plugins/irc/protocol.py class IRCAuthMode (line 55) | class IRCAuthMode: class IRCMessage (line 95) | class IRCMessage: method numeric (line 123) | def numeric(self) -> Optional[int]: function parse_irc_line (line 131) | def parse_irc_line(line: str) -> IRCMessage: function is_ping (line 177) | def is_ping(msg: IRCMessage) -> bool: function ping_payload (line 182) | def ping_payload(msg: IRCMessage) -> str: function extract_welcome_nick (line 189) | def extract_welcome_nick(msg: IRCMessage) -> Optional[str]: function normalise_channel (line 198) | def normalise_channel(name: str) -> str: FILE: apprise/plugins/irc/state.py class IRCState (line 50) | class IRCState(Enum): class IRCActionKind (line 61) | class IRCActionKind(Enum): class IRCAction (line 70) | class IRCAction: class IRCContext (line 79) | class IRCContext: function _err (line 92) | def _err(msg: IRCMessage) -> str: class IRCStateMachine (line 117) | class IRCStateMachine: method __init__ (line 120) | def __init__(self, ctx: IRCContext) -> None: method start_registration (line 124) | def start_registration(self) -> list[IRCAction]: method on_message (line 141) | def on_message(self, msg: IRCMessage) -> list[IRCAction]: method request_join (line 203) | def request_join( method request_quit (line 213) | def request_quit(self, message: str) -> list[IRCAction]: FILE: apprise/plugins/jellyfin.py class NotifyJellyfin (line 40) | class NotifyJellyfin(emby.NotifyEmby): FILE: apprise/plugins/join.py class JoinPriority (line 66) | class JoinPriority: class NotifyJoin (line 103) | class NotifyJoin(NotifyBase): method __init__ (line 200) | def __init__( method send (line 258) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 362) | def url_identifier(self): method url (line 370) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 394) | def __len__(self): method parse_url (line 399) | def parse_url(url): FILE: apprise/plugins/kavenegar.py class NotifyKavenegar (line 75) | class NotifyKavenegar(NotifyBase): method __init__ (line 155) | def __init__(self, apikey, source=None, targets=None, **kwargs): method send (line 196) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 313) | def url_identifier(self): method url (line 321) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 337) | def __len__(self): method parse_url (line 342) | def parse_url(url): FILE: apprise/plugins/kodi.py class NotifyXBMC (line 40) | class NotifyXBMC(NotifyBase): method __init__ (line 137) | def __init__(self, include_image=True, duration=None, **kwargs): method _payload_60 (line 167) | def _payload_60(self, title, body, notify_type, **kwargs): method _payload_20 (line 205) | def _payload_20(self, title, body, notify_type, **kwargs): method send (line 235) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 312) | def url_identifier(self): method url (line 340) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 390) | def parse_url(url): FILE: apprise/plugins/kumulos.py class NotifyKumulos (line 55) | class NotifyKumulos(NotifyBase): method __init__ (line 108) | def __init__(self, apikey, serverkey, **kwargs): method send (line 130) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 201) | def url_identifier(self): method url (line 209) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 223) | def parse_url(url): FILE: apprise/plugins/lametric.py class LametricMode (line 111) | class LametricMode: class LametricPriority (line 127) | class LametricPriority: class LametricIconType (line 162) | class LametricIconType: class LametricSoundCategory (line 186) | class LametricSoundCategory: class LametricSound (line 193) | class LametricSound: class NotifyLametric (line 363) | class NotifyLametric(NotifyBase): method __init__ (line 529) | def __init__( method sound_lookup (line 664) | def sound_lookup(lookup): method _cloud_notification_payload (line 677) | def _cloud_notification_payload(self, body, notify_type, headers): method _device_notification_payload (line 732) | def _device_notification_payload(self, body, notify_type, headers): method send (line 800) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 881) | def url_identifier(self): method url (line 911) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 982) | def parse_url(url): method parse_native_url (line 1114) | def parse_native_url(url): FILE: apprise/plugins/lark.py class NotifyLark (line 43) | class NotifyLark(NotifyBase): method __init__ (line 76) | def __init__(self, token, **kwargs): method url (line 95) | def url(self, privacy=False, *args, **kwargs): method send (line 104) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 146) | def url_identifier(self): method parse_url (line 155) | def parse_url(url): method parse_native_url (line 174) | def parse_native_url(url): FILE: apprise/plugins/line.py class NotifyLine (line 46) | class NotifyLine(NotifyBase): method __init__ (line 116) | def __init__(self, token, targets=None, include_image=True, **kwargs): method send (line 138) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 239) | def url_identifier(self): method url (line 247) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 270) | def __len__(self): method parse_url (line 275) | def parse_url(url): FILE: apprise/plugins/macosx.py class NotifyMacOSX (line 53) | class NotifyMacOSX(NotifyBase): method __init__ (line 134) | def __init__(self, sound=None, include_image=True, click=None, **kwargs): method send (line 154) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 209) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 230) | def parse_url(url): FILE: apprise/plugins/mailgun.py class MailgunRegion (line 78) | class MailgunRegion: class NotifyMailgun (line 96) | class NotifyMailgun(NotifyBase): method __init__ (line 213) | def __init__( method send (line 355) | def send( method url_identifier (line 619) | def url_identifier(self): method url (line 632) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 693) | def __len__(self): method parse_url (line 707) | def parse_url(url): FILE: apprise/plugins/mastodon.py class MastodonMessageVisibility (line 57) | class MastodonMessageVisibility: class NotifyMastodon (line 87) | class NotifyMastodon(NotifyBase): method __init__ (line 242) | def __init__( method url_identifier (line 362) | def url_identifier(self): method url (line 375) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 421) | def __len__(self): method send (line 426) | def send( method _whoami (line 786) | def _whoami(self, lazy=True): method _request (line 844) | def _request(self, path, payload=None, method="POST"): method parse_url (line 998) | def parse_url(url): FILE: apprise/plugins/matrix.py class MatrixDiscoveryException (line 60) | class MatrixDiscoveryException(AppriseException): class MatrixMessageType (line 89) | class MatrixMessageType: class MatrixVersion (line 103) | class MatrixVersion: class MatrixWebhookMode (line 118) | class MatrixWebhookMode: class NotifyMatrix (line 141) | class NotifyMatrix(NotifyBase): method __init__ (line 316) | def __init__( method send (line 452) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _send_webhook_notification (line 467) | def _send_webhook_notification( method _slack_webhook_payload (line 553) | def _slack_webhook_payload( method _matrix_webhook_payload (line 603) | def _matrix_webhook_payload( method _t2bot_webhook_payload (line 641) | def _t2bot_webhook_payload( method _send_server_notification (line 662) | def _send_server_notification( method _send_attachments (line 848) | def _send_attachments(self, attach): method _register (line 903) | def _register(self): method _login (line 961) | def _login(self): method _logout (line 1032) | def _logout(self): method _room_join (line 1073) | def _room_join(self, room): method _room_create (line 1211) | def _room_create(self, room): method _joined_rooms (line 1273) | def _joined_rooms(self): method _room_id (line 1291) | def _room_id(self, room): method _fetch (line 1336) | def _fetch( method __del__ (line 1536) | def __del__(self): method url_identifier (line 1557) | def url_identifier(self): method url (line 1575) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 1625) | def __len__(self): method parse_url (line 1631) | def parse_url(url): method parse_native_url (line 1720) | def parse_native_url(url): method server_discovery (line 1750) | def server_discovery(self): method base_url (line 1948) | def base_url(self): method identity_url (line 1971) | def identity_url(self): FILE: apprise/plugins/mattermost.py class MattermostMode (line 77) | class MattermostMode: class NotifyMattermost (line 94) | class NotifyMattermost(NotifyBase): method __init__ (line 231) | def __init__( method __len__ (line 314) | def __len__(self) -> int: method _channel_lookup (line 318) | def _channel_lookup(self, channel: str) -> str | None: method send (line 411) | def send( method url_identifier (line 554) | def url_identifier(self) -> tuple[Any, ...]: method url (line 570) | def url(self, privacy: bool = False, *args: Any, **kwargs: Any) -> str: method parse_url (line 638) | def parse_url(url: str): method parse_native_url (line 710) | def parse_native_url(url: str) -> dict[str, Any] | None: FILE: apprise/plugins/messagebird.py class NotifyMessageBird (line 42) | class NotifyMessageBird(NotifyBase): method __init__ (line 118) | def __init__(self, apikey, source, targets=None, **kwargs): method send (line 164) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 296) | def url_identifier(self): method url (line 304) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 320) | def __len__(self): method parse_url (line 326) | def parse_url(url): FILE: apprise/plugins/misskey.py class MisskeyVisibility (line 56) | class MisskeyVisibility: class NotifyMisskey (line 78) | class NotifyMisskey(NotifyBase): method __init__ (line 151) | def __init__(self, token=None, visibility=None, **kwargs): method url_identifier (line 196) | def url_identifier(self): method url (line 209) | def url(self, privacy=False, *args, **kwargs): method send (line 230) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 298) | def parse_url(url): FILE: apprise/plugins/mqtt.py class NotifyMQTT (line 81) | class NotifyMQTT(NotifyBase): method __init__ (line 218) | def __init__( method send (line 330) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 486) | def url_identifier(self): method url (line 510) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 562) | def __len__(self): method parse_url (line 567) | def parse_url(url): method CA_CERTIFICATE_FILE_LOCATIONS (line 620) | def CA_CERTIFICATE_FILE_LOCATIONS(self): FILE: apprise/plugins/msg91.py class MSG91PayloadField (line 53) | class MSG91PayloadField: class NotifyMSG91 (line 64) | class NotifyMSG91(NotifyBase): method __init__ (line 153) | def __init__( method send (line 214) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 334) | def url_identifier(self): method url (line 342) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 367) | def __len__(self): method parse_url (line 373) | def parse_url(url): FILE: apprise/plugins/msteams.py class NotifyMSTeams (line 92) | class NotifyMSTeams(NotifyBase): method __init__ (line 227) | def __init__( method gen_payload (line 343) | def gen_payload( method send (line 440) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 530) | def url_identifier(self): method url (line 544) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 607) | def parse_url(url): method parse_native_url (line 683) | def parse_native_url(url): FILE: apprise/plugins/nextcloud.py class NextcloudGroupDiscoveryException (line 55) | class NextcloudGroupDiscoveryException(AppriseException): class NotifyNextcloud (line 59) | class NotifyNextcloud(NotifyBase): method __init__ (line 186) | def __init__( method _fetch (line 249) | def _fetch(self, payload=None, target=None, group=None): method send (line 390) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method users_by_group (line 436) | def users_by_group(self, group): method all_users (line 474) | def all_users(self): method url_identifier (line 512) | def url_identifier(self): method url (line 527) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 584) | def __len__(self): method parse_url (line 590) | def parse_url(url): FILE: apprise/plugins/nextcloudtalk.py class NotifyNextcloudTalk (line 39) | class NotifyNextcloudTalk(NotifyBase): method __init__ (line 127) | def __init__(self, targets=None, headers=None, url_prefix=None, **kwar... method send (line 149) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 270) | def url_identifier(self): method url (line 284) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 321) | def __len__(self): method parse_url (line 327) | def parse_url(url): FILE: apprise/plugins/notica.py class NoticaMode (line 53) | class NoticaMode: class NotifyNotica (line 71) | class NotifyNotica(NotifyBase): method __init__ (line 161) | def __init__(self, token, headers=None, **kwargs): method send (line 187) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 275) | def url_identifier(self): method url (line 291) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 345) | def parse_url(url): method parse_native_url (line 389) | def parse_native_url(url): FILE: apprise/plugins/notifiarr.py class NotifyNotifiarr (line 53) | class NotifyNotifiarr(NotifyBase): method __init__ (line 141) | def __init__( method url_identifier (line 207) | def url_identifier(self): method url (line 218) | def url(self, privacy=False, *args, **kwargs): method send (line 250) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _send (line 340) | def _send(self, payload): method __len__ (line 401) | def __len__(self): method parse_url (line 407) | def parse_url(url): FILE: apprise/plugins/notificationapi.py class NotificationAPIRegion (line 58) | class NotificationAPIRegion: class NotificationAPIChannel (line 81) | class NotificationAPIChannel: class NotificationAPIMode (line 103) | class NotificationAPIMode: class NotifyNotificationAPI (line 117) | class NotifyNotificationAPI(NotifyBase): method __init__ (line 252) | def __init__(self, client_id, client_secret, message_type=None, method url_identifier (line 515) | def url_identifier(self): method url (line 523) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 603) | def __len__(self): method gen_payload (line 610) | def gen_payload(self, body, title="", notify_type=NotifyType.INFO, method send (line 752) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 856) | def parse_url(url): FILE: apprise/plugins/notifico.py class NotificoFormat (line 53) | class NotificoFormat: class NotificoColor (line 64) | class NotificoColor: class NotifyNotifico (line 87) | class NotifyNotifico(NotifyBase): method __init__ (line 161) | def __init__(self, project_id, msghook, color=True, prefix=True, **kwa... method url_identifier (line 202) | def url_identifier(self): method url (line 210) | def url(self, privacy=False, *args, **kwargs): method send (line 229) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 341) | def parse_url(url): method parse_native_url (line 371) | def parse_native_url(url): FILE: apprise/plugins/ntfy.py class NtfyMode (line 59) | class NtfyMode: class NtfyAuth (line 79) | class NtfyAuth: class NtfyPriority (line 95) | class NtfyPriority: class NotifyNtfy (line 145) | class NotifyNtfy(NotifyBase): method __init__ (line 316) | def __init__( method send (line 434) | def send( method _send (line 510) | def _send( method url_identifier (line 730) | def url_identifier(self): method url (line 763) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 846) | def __len__(self): method parse_url (line 851) | def parse_url(url): method parse_native_url (line 998) | def parse_native_url(url): FILE: apprise/plugins/office365.py class NotifyOffice365 (line 57) | class NotifyOffice365(NotifyBase): method __init__ (line 178) | def __init__( method send (line 317) | def send( method upload_attachment (line 638) | def upload_attachment(self, attachment, message_id, name=None): method authenticate (line 717) | def authenticate(self): method _fetch (line 793) | def _fetch( method url_identifier (line 941) | def url_identifier(self): method url (line 955) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 1002) | def __len__(self): method parse_url (line 1007) | def parse_url(url): FILE: apprise/plugins/one_signal.py class OneSignalCategory (line 47) | class OneSignalCategory: class NotifyOneSignal (line 65) | class NotifyOneSignal(NotifyBase): method __init__ (line 204) | def __init__( method send (line 368) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 517) | def url_identifier(self): method url (line 530) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 609) | def __len__(self): method parse_url (line 629) | def parse_url(url): FILE: apprise/plugins/opsgenie.py class OpsgenieCategory (line 59) | class OpsgenieCategory(NotifyBase): class OpsgenieAlertAction (line 76) | class OpsgenieAlertAction: class OpsgenieRegion (line 117) | class OpsgenieRegion: class OpsgeniePriority (line 136) | class OpsgeniePriority: class NotifyOpsgenie (line 179) | class NotifyOpsgenie(NotifyBase): method __init__ (line 334) | def __init__( method _fetch (line 523) | def _fetch(self, method, url, payload, params=None): method send (line 602) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 751) | def url_identifier(self): method url (line 759) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 828) | def __len__(self): method parse_url (line 842) | def parse_url(url): FILE: apprise/plugins/pagerduty.py class PagerDutySeverity (line 44) | class PagerDutySeverity: class PagerDutyRegion (line 73) | class PagerDutyRegion: class NotifyPagerDuty (line 91) | class NotifyPagerDuty(NotifyBase): method __init__ (line 207) | def __init__( method send (line 326) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 445) | def url_identifier(self): method url (line 458) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 504) | def parse_url(url): FILE: apprise/plugins/pagertree.py class PagerTreeAction (line 40) | class PagerTreeAction: class PagerTreeUrgency (line 47) | class PagerTreeUrgency: class NotifyPagerTree (line 79) | class NotifyPagerTree(NotifyBase): method __init__ (line 155) | def __init__( method send (line 226) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 318) | def url_identifier(self): method url (line 326) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 366) | def parse_url(url): FILE: apprise/plugins/parseplatform.py class ParsePlatformDevice (line 43) | class ParsePlatformDevice: class NotifyParsePlatform (line 61) | class NotifyParsePlatform(NotifyBase): method __init__ (line 134) | def __init__(self, app_id, master_key, device=None, **kwargs): method send (line 189) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 275) | def url_identifier(self): method url (line 290) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 321) | def parse_url(url): FILE: apprise/plugins/plivo.py class NotifyPlivo (line 49) | class NotifyPlivo(NotifyBase): method __init__ (line 144) | def __init__( method send (line 207) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 319) | def url_identifier(self): method url (line 332) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 356) | def __len__(self): method parse_url (line 364) | def parse_url(url): FILE: apprise/plugins/popcorn_notify.py class NotifyPopcornNotify (line 42) | class NotifyPopcornNotify(NotifyBase): method __init__ (line 111) | def __init__(self, apikey, targets=None, batch=False, **kwargs): method send (line 148) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 256) | def url_identifier(self): method url (line 264) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 284) | def __len__(self): method parse_url (line 299) | def parse_url(url): FILE: apprise/plugins/prowl.py class ProwlPriority (line 39) | class ProwlPriority: class NotifyProwl (line 82) | class NotifyProwl(NotifyBase): method __init__ (line 149) | def __init__(self, apikey, providerkey=None, priority=None, **kwargs): method send (line 195) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 265) | def url_identifier(self): method url (line 273) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 296) | def parse_url(url): FILE: apprise/plugins/pushbullet.py class NotifyPushBullet (line 47) | class NotifyPushBullet(NotifyBase): method __init__ (line 121) | def __init__(self, accesstoken, targets=None, **kwargs): method send (line 141) | def send( method _send (line 306) | def _send(self, url, payload, **kwargs): method url_identifier (line 419) | def url_identifier(self): method url (line 427) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 446) | def __len__(self): method parse_url (line 451) | def parse_url(url): FILE: apprise/plugins/pushdeer.py class NotifyPushDeer (line 39) | class NotifyPushDeer(NotifyBase): method __init__ (line 94) | def __init__(self, pushkey, **kwargs): method send (line 107) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 183) | def url_identifier(self): method url (line 196) | def url(self, privacy=False): method parse_url (line 212) | def parse_url(url): FILE: apprise/plugins/pushed.py class NotifyPushed (line 47) | class NotifyPushed(NotifyBase): method __init__ (line 123) | def __init__(self, app_key, app_secret, targets=None, **kwargs): method send (line 182) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _send (line 249) | def _send(self, payload, notify_type, **kwargs): method url_identifier (line 313) | def url_identifier(self): method url (line 321) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 345) | def __len__(self): method parse_url (line 351) | def parse_url(url): FILE: apprise/plugins/pushjet.py class NotifyPushjet (line 39) | class NotifyPushjet(NotifyBase): method __init__ (line 108) | def __init__(self, secret_key, **kwargs): method url_identifier (line 124) | def url_identifier(self): method url (line 139) | def url(self, privacy=False, *args, **kwargs): method send (line 173) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 257) | def parse_url(url): FILE: apprise/plugins/pushme.py class NotifyPushMe (line 36) | class NotifyPushMe(NotifyBase): method __init__ (line 88) | def __init__(self, token, status=None, **kwargs): method send (line 104) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 177) | def url_identifier(self): method url (line 185) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 204) | def parse_url(url): FILE: apprise/plugins/pushover.py class PushoverPriority (line 49) | class PushoverPriority: class PushoverSound (line 58) | class PushoverSound: class NotifyPushover (line 142) | class NotifyPushover(NotifyBase): method __init__ (line 257) | def __init__( method send (line 367) | def send( method _send (line 439) | def _send(self, payload, attach=None): method url_identifier (line 584) | def url_identifier(self): method url (line 592) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 632) | def parse_url(url): FILE: apprise/plugins/pushplus.py class NotifyPushplus (line 44) | class NotifyPushplus(NotifyBase): method __init__ (line 77) | def __init__(self, token, **kwargs): method url (line 89) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 99) | def url_identifier(self): method send (line 103) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 144) | def parse_url(url): method parse_native_url (line 159) | def parse_native_url(url): FILE: apprise/plugins/pushsafer.py class PushSaferSound (line 41) | class PushSaferSound: class PushSaferPriority (line 252) | class PushSaferPriority: class PushSaferVibration (line 286) | class PushSaferVibration: class NotifyPushSafer (line 317) | class NotifyPushSafer(NotifyBase): method __init__ (line 407) | def __init__( method send (line 569) | def send( method _send (line 708) | def _send(self, payload, **kwargs): method url_identifier (line 817) | def url_identifier(self): method url (line 828) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 873) | def __len__(self): method parse_url (line 878) | def parse_url(url): FILE: apprise/plugins/pushy.py class NotifyPushy (line 50) | class NotifyPushy(NotifyBase): method __init__ (line 127) | def __init__(self, apikey, targets=None, sound=None, badge=None, **kwa... method send (line 181) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 315) | def url_identifier(self): method url (line 323) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 352) | def __len__(self): method parse_url (line 357) | def parse_url(url): FILE: apprise/plugins/qq.py class NotifyQQ (line 42) | class NotifyQQ(NotifyBase): method __init__ (line 75) | def __init__(self, token, **kwargs): method url (line 93) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 103) | def url_identifier(self): method send (line 107) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 142) | def parse_url(url): method parse_native_url (line 157) | def parse_native_url(url): FILE: apprise/plugins/reddit.py class RedditMessageKind (line 67) | class RedditMessageKind: class NotifyReddit (line 88) | class NotifyReddit(NotifyBase): method __init__ (line 233) | def __init__( method url_identifier (line 334) | def url_identifier(self): method url (line 348) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 395) | def __len__(self): method login (line 399) | def login(self): method send (line 464) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _fetch (line 542) | def _fetch(self, url, payload=None): method parse_url (line 721) | def parse_url(url): FILE: apprise/plugins/resend.py class NotifyResend (line 65) | class NotifyResend(NotifyBase): method __init__ (line 163) | def __init__( method url_identifier (line 280) | def url_identifier(self): method url (line 288) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 346) | def __len__(self): method send (line 350) | def send( method parse_url (line 535) | def parse_url(url): FILE: apprise/plugins/revolt.py class NotifyRevolt (line 49) | class NotifyRevolt(NotifyBase): method __init__ (line 141) | def __init__(self, bot_token, targets, icon_url=None, link=None, **kwa... method send (line 181) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _send (line 223) | def _send(self, payload, channel_id, retries=1, **kwargs): method url_identifier (line 360) | def url_identifier(self): method url (line 368) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 391) | def __len__(self): method parse_url (line 396) | def parse_url(url): FILE: apprise/plugins/rocketchat.py class RocketChatAuthMode (line 51) | class RocketChatAuthMode: class NotifyRocketChat (line 72) | class NotifyRocketChat(NotifyBase): method __init__ (line 195) | def __init__( method url_identifier (line 325) | def url_identifier(self): method url (line 344) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 402) | def __len__(self): method send (line 407) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _send_webhook_notification (line 422) | def _send_webhook_notification( method _send_basic_notification (line 465) | def _send_basic_notification( method _payload (line 516) | def _payload(self, body, title="", notify_type=NotifyType.INFO): method _send (line 530) | def _send( method login (line 600) | def login(self): method logout (line 676) | def logout(self): method parse_url (line 725) | def parse_url(url): FILE: apprise/plugins/rsyslog.py class syslog (line 37) | class syslog: class SyslogFacility (line 68) | class SyslogFacility: class NotifyRSyslog (line 142) | class NotifyRSyslog(NotifyBase): method __init__ (line 211) | def __init__(self, facility=None, log_pid=True, **kwargs): method send (line 234) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 305) | def url_identifier(self): method url (line 321) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 350) | def parse_url(url): FILE: apprise/plugins/ryver.py class RyverWebhookMode (line 47) | class RyverWebhookMode: class NotifyRyver (line 61) | class NotifyRyver(NotifyBase): method __init__ (line 132) | def __init__( method send (line 194) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 282) | def url_identifier(self): method url (line 290) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 318) | def parse_url(url): method parse_native_url (line 349) | def parse_native_url(url): FILE: apprise/plugins/sendgrid.py class NotifySendGrid (line 74) | class NotifySendGrid(NotifyBase): method __init__ (line 171) | def __init__( method url_identifier (line 264) | def url_identifier(self): method url (line 272) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 314) | def __len__(self): method send (line 318) | def send( method parse_url (line 514) | def parse_url(url): FILE: apprise/plugins/sendpulse.py class NotifySendPulse (line 48) | class NotifySendPulse(NotifyBase): method __init__ (line 181) | def __init__(self, client_id, client_secret, from_addr=None, targets=N... method url_identifier (line 336) | def url_identifier(self): method url (line 344) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 399) | def __len__(self): method login (line 405) | def login(self): method send (line 448) | def send(self, body, title="", notify_type=NotifyType.INFO, attach=None, method _fetch (line 587) | def _fetch(self, url, payload, target=None, retry=0): method parse_url (line 694) | def parse_url(url): FILE: apprise/plugins/serverchan.py class NotifyServerChan (line 44) | class NotifyServerChan(NotifyBase): method __init__ (line 79) | def __init__(self, token, **kwargs): method send (line 92) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 150) | def url_identifier(self): method url (line 158) | def url(self, privacy=False): method parse_url (line 167) | def parse_url(url): FILE: apprise/plugins/ses.py class NotifySES (line 115) | class NotifySES(NotifyBase): method __init__ (line 225) | def __init__( method send (line 380) | def send( method _post (line 553) | def _post(self, payload, to): method aws_prepare_request (line 624) | def aws_prepare_request(self, payload, reference=None): method aws_auth_signature (line 707) | def aws_auth_signature(self, to_sign, reference): method aws_response_to_dict (line 730) | def aws_response_to_dict(aws_response): method url_identifier (line 810) | def url_identifier(self): method url (line 824) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 892) | def __len__(self): method parse_url (line 898) | def parse_url(url): FILE: apprise/plugins/seven.py class NotifySeven (line 42) | class NotifySeven(NotifyBase): method __init__ (line 124) | def __init__( method url_identifier (line 166) | def url_identifier(self): method send (line 174) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 288) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 311) | def __len__(self): method parse_url (line 317) | def parse_url(url): FILE: apprise/plugins/sfr.py class NotifySFR (line 54) | class NotifySFR(NotifyBase): method __init__ (line 163) | def __init__( method send (line 233) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 365) | def url_identifier(self): method url (line 378) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 408) | def __len__(self): method parse_url (line 413) | def parse_url(url): FILE: apprise/plugins/signal_api.py class NotifySignalAPI (line 49) | class NotifySignalAPI(NotifyBase): method __init__ (line 167) | def __init__( method send (line 227) | def send( method url_identifier (line 429) | def url_identifier(self): method url (line 444) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 503) | def __len__(self): method parse_url (line 518) | def parse_url(url): FILE: apprise/plugins/signl4.py class NotifySIGNL4 (line 44) | class NotifySIGNL4(NotifyBase): method __init__ (line 112) | def __init__( method send (line 160) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 250) | def url_identifier(self): method url (line 260) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 301) | def parse_url(url): FILE: apprise/plugins/simplepush.py class NotifySimplePush (line 58) | class NotifySimplePush(NotifyBase): method __init__ (line 132) | def __init__(self, apikey, event=None, **kwargs): method _encrypt (line 163) | def _encrypt(self, content): method send (line 214) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 316) | def url_identifier(self): method url (line 324) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 353) | def parse_url(url): FILE: apprise/plugins/sinch.py class SinchRegion (line 49) | class SinchRegion: class NotifySinch (line 60) | class NotifySinch(NotifyBase): method __init__ (line 171) | def __init__( method send (line 266) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 405) | def url_identifier(self): method url (line 418) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 442) | def __len__(self): method parse_url (line 448) | def parse_url(url): FILE: apprise/plugins/slack.py class SlackMode (line 100) | class SlackMode: class NotifySlack (line 126) | class NotifySlack(NotifyBase): method __init__ (line 343) | def __init__( method send (line 470) | def send( method lookup_userid (line 823) | def lookup_userid(self, email): method _send (line 981) | def _send( method url_identifier (line 1149) | def url_identifier(self): method url (line 1163) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 1211) | def __len__(self): method parse_url (line 1216) | def parse_url(url): method parse_native_url (line 1311) | def parse_native_url(url): FILE: apprise/plugins/smpp.py class NotifySMPP (line 49) | class NotifySMPP(NotifyBase): method __init__ (line 135) | def __init__(self, source=None, targets=None, **kwargs): method url_identifier (line 178) | def url_identifier(self): method url (line 193) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 213) | def __len__(self): method send (line 220) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 282) | def parse_url(url): FILE: apprise/plugins/smseagle.py class SMSEaglePriority (line 54) | class SMSEaglePriority: class SMSEagleCategory (line 73) | class SMSEagleCategory: class NotifySMSEagle (line 89) | class NotifySMSEagle(NotifyBase): method __init__ (line 218) | def __init__( method send (line 350) | def send( method url_identifier (line 630) | def url_identifier(self): method url (line 643) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 699) | def __len__(self): method parse_url (line 724) | def parse_url(url): FILE: apprise/plugins/smsmanager.py class SMSManagerGateway (line 49) | class SMSManagerGateway: class NotifySMSManager (line 67) | class NotifySMSManager(NotifyBase): method __init__ (line 159) | def __init__( method send (line 221) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 345) | def url_identifier(self): method url (line 353) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 378) | def __len__(self): method parse_url (line 396) | def parse_url(url): FILE: apprise/plugins/smtp2go.py class NotifySMTP2Go (line 65) | class NotifySMTP2Go(NotifyBase): method __init__ (line 166) | def __init__( method send (line 279) | def send( method url_identifier (line 509) | def url_identifier(self): method url (line 517) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 574) | def __len__(self): method parse_url (line 589) | def parse_url(url): FILE: apprise/plugins/sns.py class NotifySNS (line 69) | class NotifySNS(NotifyBase): method __init__ (line 164) | def __init__( method send (line 240) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _post (line 313) | def _post(self, payload, to): method aws_prepare_request (line 384) | def aws_prepare_request(self, payload, reference=None): method aws_auth_signature (line 471) | def aws_auth_signature(self, to_sign, reference): method aws_response_to_dict (line 494) | def aws_response_to_dict(aws_response): method url_identifier (line 570) | def url_identifier(self): method url (line 583) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 614) | def __len__(self): method parse_url (line 619) | def parse_url(url): FILE: apprise/plugins/sparkpost.py class SparkPostRegion (line 84) | class SparkPostRegion: class NotifySparkPost (line 104) | class NotifySparkPost(NotifyBase): method __init__ (line 228) | def __init__( method __post (line 368) | def __post(self, payload, retry): method send (line 495) | def send( method url_identifier (line 688) | def url_identifier(self): method url (line 696) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 757) | def __len__(self): method parse_url (line 772) | def parse_url(url): FILE: apprise/plugins/spike.py class NotifySpike (line 44) | class NotifySpike(NotifyBase): method __init__ (line 77) | def __init__(self, token, **kwargs): method url_identifier (line 92) | def url_identifier(self): method url (line 100) | def url(self, privacy=False, *args, **kwargs): method send (line 109) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 149) | def parse_url(url): method parse_native_url (line 167) | def parse_native_url(url): FILE: apprise/plugins/splunk.py class SplunkAction (line 47) | class SplunkAction: class SplunkMessageType (line 84) | class SplunkMessageType: class NotifySplunk (line 113) | class NotifySplunk(NotifyBase): method __init__ (line 218) | def __init__( method send (line 304) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 407) | def url_identifier(self): method url (line 420) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 445) | def parse_url(url): method parse_native_url (line 500) | def parse_native_url(url): FILE: apprise/plugins/spugpush.py class NotifySpugpush (line 44) | class NotifySpugpush(NotifyBase): method __init__ (line 77) | def __init__(self, token, **kwargs): method url (line 91) | def url(self, privacy=False, *args, **kwargs): method url_identifier (line 101) | def url_identifier(self): method send (line 105) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 144) | def parse_url(url): method parse_native_url (line 159) | def parse_native_url(url): FILE: apprise/plugins/streamlabs.py class StrmlabsCall (line 47) | class StrmlabsCall: class StrmlabsAlert (line 60) | class StrmlabsAlert: class NotifyStreamlabs (line 76) | class NotifyStreamlabs(NotifyBase): method __init__ (line 178) | def __init__( method send (line 274) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 379) | def url_identifier(self): method url (line 387) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 415) | def parse_url(url): FILE: apprise/plugins/synology.py class NotifySynology (line 41) | class NotifySynology(NotifyBase): method __init__ (line 133) | def __init__(self, token=None, headers=None, file_url=None, **kwargs): method url_identifier (line 161) | def url_identifier(self): method url (line 177) | def url(self, privacy=False, *args, **kwargs): method send (line 231) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 329) | def parse_url(url): FILE: apprise/plugins/syslog.py class SyslogFacility (line 36) | class SyslogFacility: class NotifySyslog (line 110) | class NotifySyslog(NotifyBase): method __init__ (line 175) | def __init__( method send (line 218) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 248) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 271) | def parse_url(url): FILE: apprise/plugins/techuluspush.py class NotifyTechulusPush (line 68) | class NotifyTechulusPush(NotifyBase): method __init__ (line 106) | def __init__(self, apikey, **kwargs): method send (line 119) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 186) | def url_identifier(self): method url (line 194) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 207) | def parse_url(url): FILE: apprise/plugins/telegram.py class TelegramMarkdownVersion (line 84) | class TelegramMarkdownVersion: class TelegramContentPlacement (line 111) | class TelegramContentPlacement: class NotifyTelegram (line 127) | class NotifyTelegram(NotifyBase): method __init__ (line 416) | def __init__( method send_media (line 542) | def send_media(self, target, notify_type, payload=None, attach=None): method detect_bot_owner (line 663) | def detect_bot_owner(self): method send (line 785) | def send( method _send_attachments (line 1014) | def _send_attachments(self, target, notify_type, attach, payload=None): method url_identifier (line 1041) | def url_identifier(self): method url (line 1049) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 1092) | def __len__(self): method parse_url (line 1097) | def parse_url(url): FILE: apprise/plugins/threema.py class ThreemaRecipientTypes (line 45) | class ThreemaRecipientTypes: class NotifyThreema (line 53) | class NotifyThreema(NotifyBase): method __init__ (line 141) | def __init__(self, secret=None, targets=None, **kwargs): method send (line 202) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 303) | def url_identifier(self): method url (line 311) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 339) | def __len__(self): method parse_url (line 345) | def parse_url(url): FILE: apprise/plugins/twilio.py class TwilioNotificationMethod (line 63) | class TwilioNotificationMethod: class TwilioMessageMode (line 76) | class TwilioMessageMode: class NotifyTwilio (line 86) | class NotifyTwilio(NotifyBase): method __init__ (line 211) | def __init__( method send (line 371) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method body_maxlen (line 504) | def body_maxlen(self): method url_identifier (line 512) | def url_identifier(self): method url (line 525) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 561) | def __len__(self): method parse_url (line 567) | def parse_url(url): FILE: apprise/plugins/twist.py class NotifyTwist (line 59) | class NotifyTwist(NotifyBase): method __init__ (line 139) | def __init__(self, email=None, targets=None, **kwargs): method url_identifier (line 229) | def url_identifier(self): method url (line 243) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 270) | def __len__(self): method login (line 274) | def login(self): method logout (line 364) | def logout(self): method get_workspaces (line 380) | def get_workspaces(self): method get_channels (line 424) | def get_channels(self, wid): method _channel_migration (line 475) | def _channel_migration(self): method send (line 567) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method _fetch (line 621) | def _fetch(self, url, payload=None, method="POST", login=False): method parse_url (line 750) | def parse_url(url): method __del__ (line 807) | def __del__(self): FILE: apprise/plugins/twitter.py class TwitterMessageMode (line 49) | class TwitterMessageMode: class NotifyTwitter (line 66) | class NotifyTwitter(NotifyBase): method __init__ (line 200) | def __init__( method send (line 294) | def send( method _send_tweet (line 400) | def _send_tweet( method _send_dm (line 518) | def _send_dm( method _whoami (line 604) | def _whoami(self, lazy=True): method _user_lookup (line 635) | def _user_lookup(self, screen_name, lazy=True): method _fetch (line 687) | def _fetch(self, url, payload=None, method="POST", json=True): method body_maxlen (line 836) | def body_maxlen(self): method url_identifier (line 843) | def url_identifier(self): method url (line 857) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 894) | def __len__(self): method parse_url (line 900) | def parse_url(url): FILE: apprise/plugins/vapid/__init__.py class VapidPushMode (line 45) | class VapidPushMode: class NotifyVapid (line 86) | class NotifyVapid(NotifyBase): method __init__ (line 212) | def __init__( method send (line 330) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 468) | def url_identifier(self): method url (line 476) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 519) | def __len__(self): method parse_url (line 525) | def parse_url(url): method jwt_token (line 588) | def jwt_token(self): method public_key (line 614) | def public_key(self): FILE: apprise/plugins/vapid/subscription.py class WebPushSubscription (line 47) | class WebPushSubscription: method __init__ (line 58) | def __init__(self, content: Union[str, dict, None] = None) -> None: method load (line 72) | def load(self, content: Union[str, dict, None] = None) -> bool: method write (line 132) | def write(self, path: str, indent: int = 2) -> bool: method auth (line 152) | def auth(self) -> Optional[str]: method endpoint (line 156) | def endpoint(self) -> Optional[str]: method p256dh (line 160) | def p256dh(self) -> Optional[str]: method auth_secret (line 164) | def auth_secret(self) -> Optional[bytes]: method public_key (line 168) | def public_key(self) -> Optional["ec.EllipticCurvePublicKey"]: method dict (line 172) | def dict(self) -> dict: method json (line 191) | def json(self, indent: int = 2) -> str: method __bool__ (line 195) | def __bool__(self) -> bool: method __str__ (line 199) | def __str__(self) -> str: class WebPushSubscriptionManager (line 208) | class WebPushSubscriptionManager: method __init__ (line 232) | def __init__(self, asset: Optional["AppriseAsset"] = None) -> None: method __getitem__ (line 243) | def __getitem__(self, key: str) -> WebPushSubscription: method __setitem__ (line 247) | def __setitem__( method add (line 255) | def add( method __bool__ (line 276) | def __bool__(self) -> bool: method __len__ (line 280) | def __len__(self) -> int: method __iadd__ (line 289) | def __iadd__( method __contains__ (line 298) | def __contains__(self, key: str) -> bool: method clear (line 302) | def clear(self) -> None: method dict (line 307) | def dict(self) -> dict: method load (line 315) | def load(self, path: str, byte_limit=0) -> bool: method write (line 395) | def write(self, path: str, indent: int = 2) -> bool: method json (line 411) | def json(self, indent: int = 2) -> str: FILE: apprise/plugins/viber.py class NotifyViber (line 45) | class NotifyViber(NotifyBase): method __init__ (line 114) | def __init__( method __len__ (line 144) | def __len__(self) -> int: method url (line 148) | def url(self, privacy: bool = False, *args: Any, **kwargs: Any) -> str: method url_identifier (line 175) | def url_identifier(self) -> str: method send (line 183) | def send( method parse_url (line 296) | def parse_url(url: str) -> dict[str, Any]: FILE: apprise/plugins/voipms.py class NotifyVoipms (line 47) | class NotifyVoipms(NotifyBase): method __init__ (line 128) | def __init__(self, email, source=None, targets=None, **kwargs): method send (line 196) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 319) | def url_identifier(self): method url (line 332) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 354) | def __len__(self): method parse_url (line 360) | def parse_url(url): FILE: apprise/plugins/vonage.py class NotifyVonage (line 44) | class NotifyVonage(NotifyBase): method __init__ (line 145) | def __init__( method send (line 214) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 310) | def url_identifier(self): method url (line 318) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 342) | def __len__(self): method parse_url (line 348) | def parse_url(url): FILE: apprise/plugins/webexteams.py class NotifyWebexTeams (line 81) | class NotifyWebexTeams(NotifyBase): method __init__ (line 134) | def __init__(self, token, **kwargs): method send (line 147) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 218) | def url_identifier(self): method url (line 226) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 239) | def parse_url(url): method parse_native_url (line 259) | def parse_native_url(url): FILE: apprise/plugins/wecombot.py class NotifyWeComBot (line 68) | class NotifyWeComBot(NotifyBase): method __init__ (line 119) | def __init__(self, key, **kwargs): method url_identifier (line 137) | def url_identifier(self): method url (line 145) | def url(self, privacy=False, *args, **kwargs): method send (line 157) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method parse_url (line 225) | def parse_url(url): method parse_native_url (line 244) | def parse_native_url(url): FILE: apprise/plugins/whatsapp.py class NotifyWhatsApp (line 54) | class NotifyWhatsApp(NotifyBase): method __init__ (line 174) | def __init__( method send (line 312) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 486) | def url_identifier(self): method url (line 494) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 530) | def __len__(self): method parse_url (line 536) | def parse_url(url): FILE: apprise/plugins/windows.py class NotifyWindows (line 54) | class NotifyWindows(NotifyBase): method __init__ (line 114) | def __init__(self, include_image=True, duration=None, **kwargs): method _on_destroy (line 133) | def _on_destroy(self, hwnd, msg, wparam, lparam): method send (line 142) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url (line 250) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 265) | def parse_url(url): FILE: apprise/plugins/workflows.py class APIVersion (line 73) | class APIVersion: class NotifyWorkflows (line 81) | class NotifyWorkflows(NotifyBase): method __init__ (line 206) | def __init__( method gen_payload (line 293) | def gen_payload( method send (line 401) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 497) | def url_identifier(self): method url (line 511) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 552) | def parse_url(url): method parse_native_url (line 644) | def parse_native_url(url): FILE: apprise/plugins/wxpusher.py class WxPusherContentType (line 80) | class WxPusherContentType: class SubscriptionType (line 88) | class SubscriptionType: class NotifyWxPusher (line 95) | class NotifyWxPusher(NotifyBase): method __init__ (line 167) | def __init__(self, token, targets=None, **kwargs): method send (line 209) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 327) | def url_identifier(self): method url (line 335) | def url(self, privacy=False, *args, **kwargs): method parse_url (line 360) | def parse_url(url): FILE: apprise/plugins/xmpp/adapter.py class XMPPConfig (line 67) | class XMPPConfig: function bridge_slixmpp_logging (line 86) | def bridge_slixmpp_logging() -> None: function _close_awaitable (line 118) | def _close_awaitable(obj: Any) -> None: function _get_client_subclass (line 138) | def _get_client_subclass(base_cls: type[Any]) -> type[Any]: function _build_client (line 289) | def _build_client(*args: Any, **kwargs: Any) -> Any: class SlixmppAdapter (line 297) | class SlixmppAdapter: method __init__ (line 317) | def __init__( method __del__ (line 356) | def __del__(self) -> None: method _ssl_context (line 362) | def _ssl_context(verify: bool) -> ssl.SSLContext: method _loop_tick (line 370) | def _loop_tick(loop: asyncio.AbstractEventLoop) -> None: method _finalize_loop (line 380) | def _finalize_loop(loop: asyncio.AbstractEventLoop) -> None: method close (line 419) | def close(self) -> None: method process (line 463) | def process(self) -> bool: method _ensure_keepalive_worker (line 627) | def _ensure_keepalive_worker(self) -> bool: method _keepalive_runner (line 660) | def _keepalive_runner(self) -> None: method _connect_if_required (line 741) | async def _connect_if_required(self) -> bool: method _send_keepalive_async (line 805) | async def _send_keepalive_async( method send_message (line 840) | def send_message( method package_dependency (line 898) | def package_dependency() -> str: method supported_version (line 904) | def supported_version(version: Optional[str] = None) -> bool: FILE: apprise/plugins/xmpp/base.py class NotifyXMPP (line 59) | class NotifyXMPP(NotifyBase): method __init__ (line 153) | def __init__( method __del__ (line 239) | def __del__(self) -> None: method url_identifier (line 250) | def url_identifier(self) -> tuple[str, str, str, str, Optional[int]]: method url (line 257) | def url(self, privacy: bool = False, *args: Any, **kwargs: Any) -> str: method send (line 300) | def send( method title_maxlen (line 365) | def title_maxlen(self) -> Optional[int]: method normalize_jid (line 375) | def normalize_jid(value: str, default_host: str) -> str: method parse_url (line 406) | def parse_url(url: str) -> Optional[dict[str, Any]]: FILE: apprise/plugins/xmpp/common.py class SecureXMPPMode (line 31) | class SecureXMPPMode: FILE: apprise/plugins/zulip.py class NotifyZulip (line 89) | class NotifyZulip(NotifyBase): method __init__ (line 179) | def __init__(self, botname, organization, token, targets=None, **kwargs): method send (line 240) | def send(self, body, title="", notify_type=NotifyType.INFO, **kwargs): method url_identifier (line 341) | def url_identifier(self): method url (line 354) | def url(self, privacy=False, *args, **kwargs): method __len__ (line 381) | def __len__(self): method parse_url (line 386) | def parse_url(url): FILE: apprise/url.py class PrivacyMode (line 51) | class PrivacyMode: class URLBase (line 76) | class URLBase: method __init__ (line 199) | def __init__(self, asset=None, **kwargs): method throttle (line 279) | def throttle(self, last_io=None, wait=None): method url (line 323) | def url(self, privacy=False, *args, **kwargs): method url_id (line 363) | def url_id(self, lazy=True, hash_engine=hashlib.sha256): method __contains__ (line 501) | def __contains__(self, tags): method __str__ (line 513) | def __str__(self): method escape_html (line 518) | def escape_html(html, convert_new_lines=False, whitespace=True): method unquote (line 546) | def unquote(content, encoding="utf-8", errors="replace"): method quote (line 573) | def quote(content, safe="/", encoding=None, errors=None): method pprint (line 600) | def pprint( method urlencode (line 645) | def urlencode(query, doseq=False, safe="", encoding=None, errors=None): method split_path (line 678) | def split_path(path, unquote=True): method parse_list (line 705) | def parse_list(content, allow_whitespace=True, unquote=True): method parse_phone_no (line 731) | def parse_phone_no(content, unquote=True, prefix=False): method app_id (line 759) | def app_id(self): method app_desc (line 763) | def app_desc(self): method app_url (line 767) | def app_url(self): method request_timeout (line 771) | def request_timeout(self): method request_auth (line 777) | def request_auth(self): method request_url (line 783) | def request_url(self): method url_parameters (line 799) | def url_parameters(self, *args, **kwargs): method post_process_parse_url_results (line 826) | def post_process_parse_url_results(results): method parse_url (line 897) | def parse_url( method http_response_code_lookup (line 938) | def http_response_code_lookup(code, response_mask=None): method __len__ (line 959) | def __len__(self): method schemas (line 967) | def schemas(self): FILE: apprise/utils/base64.py function base64_urlencode (line 33) | def base64_urlencode(data: bytes) -> str: function base64_urldecode (line 43) | def base64_urldecode(data: str) -> bytes: function decode_b64_dict (line 56) | def decode_b64_dict(di: dict) -> dict: function encode_b64_dict (line 86) | def encode_b64_dict(di: dict, encoding="utf-8") -> tuple[dict, bool]: FILE: apprise/utils/cwe312.py function cwe312_word (line 32) | def cwe312_word(word, force=False, advanced=True, threshold=5): function cwe312_url (line 117) | def cwe312_url(url): FILE: apprise/utils/disk.py function path_decode (line 60) | def path_decode(path): function tidy_path (line 65) | def tidy_path(path): function dir_size (line 82) | def dir_size(path, max_depth=3, missing_okay=True, _depth=0, _errors=None): function bytes_to_str (line 142) | def bytes_to_str(value): FILE: apprise/utils/format.py function html_adjust (line 49) | def html_adjust( function markdown_adjust (line 85) | def markdown_adjust( function smart_split (line 122) | def smart_split( FILE: apprise/utils/json.py class AppriseJSONEncoder (line 36) | class AppriseJSONEncoder(json.JSONEncoder): method default (line 39) | def default(self, entry): FILE: apprise/utils/logic.py function is_exclusive_match (line 33) | def is_exclusive_match( function dict_full_update (line 106) | def dict_full_update(dict1, dict2): FILE: apprise/utils/module.py function import_module (line 34) | def import_module(path, name): FILE: apprise/utils/parse.py function is_ipaddr (line 151) | def is_ipaddr(addr, ipv4=True, ipv6=True): function is_hostname (line 200) | def is_hostname(hostname, ipv4=True, ipv6=True, underscore=True): function is_uuid (line 244) | def is_uuid(uuid): function is_phone_no (line 265) | def is_phone_no(phone, min_len=10): function is_call_sign (line 354) | def is_call_sign(callsign): function is_email (line 385) | def is_email(address): function parse_qsd (line 439) | def parse_qsd(qs, simple=False, plus_to_space=False, sanitize=True): function parse_url (line 535) | def parse_url( function parse_bool (line 809) | def parse_bool(arg, default=False): function parse_phone_no (line 853) | def parse_phone_no(*args, store_unparseable=True, prefix=False, **kwargs): function parse_call_sign (line 887) | def parse_call_sign(*args, store_unparseable=True, **kwargs): function parse_emails (line 917) | def parse_emails(*args, store_unparseable=True, **kwargs): function url_assembly (line 945) | def url_assembly(encode=False, **kwargs): function urlencode (line 986) | def urlencode(query, doseq=False, safe="", encoding=None, errors=None): function parse_urls (line 1021) | def parse_urls(*args, store_unparseable=True, **kwargs): function parse_list (line 1049) | def parse_list(*args, cast=None, allow_whitespace=True, sort=True): function validate_regex (line 1109) | def validate_regex(value, regex=r"[^\s]+", flags=re.I, strip=True, fmt=N... FILE: apprise/utils/pem.py class ApprisePEMException (line 71) | class ApprisePEMException(ApprisePluginException): method __init__ (line 74) | def __init__(self, message, error_code=612): class ApprisePEMController (line 78) | class ApprisePEMController: method __init__ (line 92) | def __init__( method load_private_key (line 137) | def load_private_key( method load_public_key (line 205) | def load_public_key(self, path: Optional[str] = None, *names: str) -> ... method keygen (line 269) | def keygen(self, name: "Optional[str]" = None, force: bool = False): method public_keyfile (line 390) | def public_keyfile(self, *names: str) -> Optional[str]: method private_keyfile (line 441) | def private_keyfile(self, *names: str) -> Optional[str]: method public_key (line 492) | def public_key( method private_key (line 528) | def private_key( method encrypt_webpush (line 554) | def encrypt_webpush( method encrypt (line 633) | def encrypt( method decrypt (line 709) | def decrypt( method sign (line 804) | def sign(self, content: bytes) -> Optional[bytes]: method pub_keyfile (line 824) | def pub_keyfile(self) -> Optional[Union[str, bool]]: method prv_keyfile (line 839) | def prv_keyfile(self) -> Optional[Union[str, bool]]: method x962_str (line 854) | def x962_str(self) -> str: method __bool__ (line 867) | def __bool__(self) -> bool: FILE: apprise/utils/pgp.py class ApprisePGPException (line 48) | class ApprisePGPException(ApprisePluginException): method __init__ (line 52) | def __init__(self, message, error_code=602): class ApprisePGPController (line 56) | class ApprisePGPController: method __init__ (line 63) | def __init__( method keygen (line 101) | def keygen(self, email=None, name=None, force=False): method public_keyfile (line 216) | def public_keyfile(self, *emails): method public_key (line 270) | def public_key(self, *emails, autogen=None): method encrypt (line 318) | def encrypt(self, message, *emails): method prune (line 342) | def prune(self): method pub_keyfile (line 351) | def pub_keyfile(self): FILE: apprise/utils/sanitize.py class SanitizeOptions (line 62) | class SanitizeOptions: function sanitize_payload (line 105) | def sanitize_payload( FILE: apprise/utils/singleton.py class Singleton (line 29) | class Singleton(type): method __call__ (line 34) | def __call__(cls, *args, **kwargs): FILE: apprise/utils/socket.py class AppriseSocketError (line 46) | class AppriseSocketError(AppriseException): class SocketTransport (line 50) | class SocketTransport: method __init__ (line 68) | def __init__( method _coerce_timeout (line 104) | def _coerce_timeout( method connected (line 135) | def connected(self) -> bool: method is_tls (line 139) | def is_tls(self) -> bool: method close (line 142) | def close(self) -> None: method _refresh_wrappers (line 174) | def _refresh_wrappers(self) -> None: method can_read (line 185) | def can_read(self, timeout: float = 0.0) -> Optional[bool]: method can_write (line 203) | def can_write(self, timeout: float = 0.0) -> Optional[bool]: method connect (line 218) | def connect(self) -> None: method _server_hostname_for_tls (line 276) | def _server_hostname_for_tls(self) -> str: method _build_ssl_context (line 298) | def _build_ssl_context(self) -> ssl.SSLContext: method start_tls (line 331) | def start_tls(self) -> None: method _attempt_reconnect (line 372) | def _attempt_reconnect( method read (line 414) | def read( method write (line 552) | def write( FILE: apprise/utils/templates.py class TemplateType (line 31) | class TemplateType: function apply_template (line 43) | def apply_template(template, app_mode=TemplateType.RAW, **kwargs): FILE: apprise/utils/time.py function zoneinfo (line 35) | def zoneinfo(name: str) -> Optional[ZoneInfo]: FILE: setup.py function read_version (line 41) | def read_version() -> str: FILE: tests/conftest.py function mimetypes_always_available (line 52) | def mimetypes_always_available(): function no_throttling_everywhere (line 60) | def no_throttling_everywhere(session_mocker): function collect_all_garbage (line 75) | def collect_all_garbage(session_mocker): FILE: tests/helpers/asyncio.py class OuterEventLoop (line 31) | class OuterEventLoop: method __init__ (line 35) | def __init__(self): method __enter__ (line 38) | def __enter__(self): method __exit__ (line 44) | def __exit__(self, type, value, traceback): FILE: tests/helpers/environment.py function environ (line 39) | def environ(*remove, **update): FILE: tests/helpers/module.py function reload_plugin (line 58) | def reload_plugin(name): FILE: tests/helpers/rest.py class AppriseURLTester (line 53) | class AppriseURLTester: method __init__ (line 83) | def __init__(self, tests=None, *args, **kwargs): method add (line 102) | def add(self, url, meta): method run_all (line 109) | def run_all(self, tmpdir=None): method run (line 118) | def run(self, url, meta, tmpdir, mock_request, mock_post, mock_get): method __notify (line 335) | def __notify( FILE: tests/test_api.py function test_apprise_object (line 71) | def test_apprise_object(): function test_apprise_async (line 83) | def test_apprise_async(): function apprise_test (line 98) | def apprise_test(do_notify): function test_apprise_pretty_print (line 611) | def test_apprise_pretty_print(): function test_apprise_tagging (line 667) | def test_apprise_tagging(mock_request): function test_apprise_tagging_async (line 680) | def test_apprise_tagging_async(mock_request): function apprise_tagging_test (line 695) | def apprise_tagging_test(mock_request, do_notify): function test_apprise_schemas (line 835) | def test_apprise_schemas(): function test_apprise_urlbase_object (line 899) | def test_apprise_urlbase_object(): function test_apprise_unique_id (line 956) | def test_apprise_unique_id(): function test_apprise_notify_formats (line 1078) | def test_apprise_notify_formats(): function test_apprise_asset (line 1169) | def test_apprise_asset(tmpdir): function test_apprise_disabled_plugins (line 1340) | def test_apprise_disabled_plugins(): function test_apprise_details (line 1461) | def test_apprise_details(): function test_apprise_details_plugin_verification (line 1727) | def test_apprise_details_plugin_verification(): function test_apprise_async_mode (line 2137) | def test_apprise_async_mode(mock_threadpool, mock_gather, mock_request): function test_notify_matrix_dynamic_importing (line 2224) | def test_notify_matrix_dynamic_importing(tmpdir): FILE: tests/test_apprise_asset.py function test_timezone (line 44) | def test_timezone(): FILE: tests/test_apprise_attachments.py function test_apprise_attachment (line 52) | def test_apprise_attachment(): function test_apprise_attachment_truncate (line 284) | def test_apprise_attachment_truncate(mock_request): function test_apprise_attachment_instantiate (line 356) | def test_apprise_attachment_instantiate(): function test_attachment_matrix_dynamic_importing (line 391) | def test_attachment_matrix_dynamic_importing(tmpdir): FILE: tests/test_apprise_cli.py function test_apprise_cli_nux_env (line 56) | def test_apprise_cli_nux_env(tmpdir): function test_apprise_cli_modules (line 907) | def test_apprise_cli_modules(tmpdir): function test_apprise_cli_persistent_storage (line 1007) | def test_apprise_cli_persistent_storage(tmpdir): function test_apprise_cli_details (line 1630) | def test_apprise_cli_details(tmpdir): function test_apprise_cli_print_help (line 1853) | def test_apprise_cli_print_help(): function test_apprise_cli_plugin_loading (line 1876) | def test_apprise_cli_plugin_loading(mock_request, tmpdir): function test_apprise_cli_windows_env (line 2348) | def test_apprise_cli_windows_env(mock_system): FILE: tests/test_apprise_config.py function test_apprise_config (line 59) | def test_apprise_config(tmpdir): function test_apprise_multi_config_entries (line 236) | def test_apprise_multi_config_entries(tmpdir): function test_apprise_add_config (line 294) | def test_apprise_add_config(): function test_apprise_config_tagging (line 394) | def test_apprise_config_tagging(tmpdir): function test_apprise_config_instantiate (line 452) | def test_apprise_config_instantiate(): function test_invalid_apprise_config (line 494) | def test_invalid_apprise_config(tmpdir): function test_apprise_config_with_apprise_obj (line 549) | def test_apprise_config_with_apprise_obj(tmpdir): function test_recursive_config_inclusion (line 722) | def test_recursive_config_inclusion(tmpdir): function test_apprise_config_file_loading (line 907) | def test_apprise_config_file_loading(tmpdir): function test_apprise_config_matrix_load (line 929) | def test_apprise_config_matrix_load(): function test_configmatrix_dynamic_importing (line 987) | def test_configmatrix_dynamic_importing(tmpdir): function test_config_base_parse_inaccessible_text_file (line 1058) | def test_config_base_parse_inaccessible_text_file(mock_getsize, tmpdir): function test_config_base_parse_yaml_file01 (line 1084) | def test_config_base_parse_yaml_file01(tmpdir): function test_config_base_parse_yaml_file02 (line 1102) | def test_config_base_parse_yaml_file02(tmpdir): function test_config_base_parse_yaml_file03 (line 1148) | def test_config_base_parse_yaml_file03(tmpdir): function test_config_base_parse_yaml_file04 (line 1199) | def test_config_base_parse_yaml_file04(tmpdir): function test_apprise_config_template_parse (line 1252) | def test_apprise_config_template_parse(tmpdir): function test_config_base_yaml_trace_logging (line 1429) | def test_config_base_yaml_trace_logging(tmpdir): function test_config_base_clear_cache (line 1456) | def test_config_base_clear_cache(tmpdir): function test_config_base_parse_url_cache_variants (line 1482) | def test_config_base_parse_url_cache_variants(): function test_config_base_parse_url_invalid_format_removed (line 1501) | def test_config_base_parse_url_invalid_format_removed(): function test_config_base_expired_with_int_cache (line 1513) | def test_config_base_expired_with_int_cache(monkeypatch): FILE: tests/test_apprise_emojis.py function test_emojis (line 40) | def test_emojis(): FILE: tests/test_apprise_helpers.py function test_environ_temporary_change (line 41) | def test_environ_temporary_change(): FILE: tests/test_apprise_jsonencoder.py function test_apprise_json_encoder_datetime_naive (line 50) | def test_apprise_json_encoder_datetime_naive(): function test_apprise_json_encoder_datetime_aware (line 62) | def test_apprise_json_encoder_datetime_aware(): function test_apprise_json_encoder_bytes (line 73) | def test_apprise_json_encoder_bytes(): function test_apprise_json_encoder_set (line 92) | def test_apprise_json_encoder_set(): function test_apprise_json_encoder_frozenset (line 105) | def test_apprise_json_encoder_frozenset(): function test_apprise_json_encoder_tuple (line 118) | def test_apprise_json_encoder_tuple(): function test_apprise_json_encoder_lazy_translation (line 131) | def test_apprise_json_encoder_lazy_translation(): function test_apprise_json_encoder_unsupported_type (line 144) | def test_apprise_json_encoder_unsupported_type(): function test_apprise_json_encoder_nested (line 154) | def test_apprise_json_encoder_nested(): function test_apprise_json_method_no_path (line 177) | def test_apprise_json_method_no_path(): function test_apprise_json_method_indent (line 200) | def test_apprise_json_method_indent(): function test_apprise_json_method_with_path (line 212) | def test_apprise_json_method_with_path(tmpdir): function test_apprise_json_method_with_path_and_indent (line 229) | def test_apprise_json_method_with_path_and_indent(tmpdir): function test_apprise_json_method_write_failure (line 241) | def test_apprise_json_method_write_failure(tmpdir): function test_apprise_json_method_write_eoferror (line 252) | def test_apprise_json_method_write_eoferror(tmpdir): FILE: tests/test_apprise_pickle.py function test_apprise_pickle_asset (line 41) | def test_apprise_pickle_asset(tmpdir): function test_apprise_pickle_locale (line 72) | def test_apprise_pickle_locale(tmpdir): function test_apprise_pickle_core (line 84) | def test_apprise_pickle_core(tmpdir): FILE: tests/test_apprise_translations.py function test_apprise_trans (line 45) | def test_apprise_trans(): function test_apprise_trans_gettext_init (line 54) | def test_apprise_trans_gettext_init(): function test_apprise_trans_gettext_translations (line 75) | def test_apprise_trans_gettext_translations( function test_apprise_trans_gettext_lang_at (line 102) | def test_apprise_trans_gettext_lang_at(mock_getlocale): function test_apprise_trans_add (line 198) | def test_apprise_trans_add(): function test_apprise_trans_windows_users_win (line 233) | def test_apprise_trans_windows_users_win(mock_getlocale): function test_apprise_trans_windows_users_nux (line 280) | def test_apprise_trans_windows_users_nux(mock_getlocale): function test_detect_language_using_env (line 332) | def test_detect_language_using_env(mock_getlocale): function test_apprise_trans_gettext_missing (line 375) | def test_apprise_trans_gettext_missing(tmpdir): function test_apprise_locale_add_existing_language (line 407) | def test_apprise_locale_add_existing_language(mock_translation): function test_apprise_trans_successful_translation (line 421) | def test_apprise_trans_successful_translation( FILE: tests/test_apprise_utils.py function test_parse_qsd (line 50) | def test_parse_qsd(): function test_parse_url_general (line 72) | def test_parse_url_general(): function test_parse_url_simple (line 817) | def test_parse_url_simple(): function test_url_assembly (line 1256) | def test_url_assembly(): function test_parse_bool (line 1335) | def test_parse_bool(): function test_is_uuid (line 1384) | def test_is_uuid(): function test_is_hostname (line 1403) | def test_is_hostname(): function test_is_ipaddr (line 1498) | def test_is_ipaddr(): function test_is_email (line 1536) | def test_is_email(): function test_is_call_sign_no (line 1669) | def test_is_call_sign_no(): function test_is_phone_no (line 1736) | def test_is_phone_no(): function test_parse_call_sign (line 1846) | def test_parse_call_sign(): function test_parse_phone_no (line 1897) | def test_parse_phone_no(): function test_parse_emails (line 1983) | def test_parse_emails(): function test_parse_urls (line 2101) | def test_parse_urls(): function test_dict_full_update (line 2233) | def test_dict_full_update(): function test_parse_list (line 2275) | def test_parse_list(): function test_import_module (line 2368) | def test_import_module(tmpdir): function test_module_detection (line 2384) | def test_module_detection(tmpdir): function test_exclusive_match (line 2720) | def test_exclusive_match(): function test_apprise_validate_regex (line 2883) | def test_apprise_validate_regex(): function test_apply_templating (line 2954) | def test_apply_templating(): function test_cwe312_word (line 3016) | def test_cwe312_word(): function test_cwe312_url (line 3043) | def test_cwe312_url(): function test_base64_encode_decode (line 3086) | def test_base64_encode_decode(): function test_dict_base64_codec (line 3107) | def test_dict_base64_codec(tmpdir): function test_dir_size (line 3130) | def test_dir_size(tmpdir): function test_bytes_to_str (line 3253) | def test_bytes_to_str(): function test_time_zoneinfo (line 3274) | def test_time_zoneinfo(): FILE: tests/test_asyncio.py function test_apprise_asyncio_runtime_error (line 45) | def test_apprise_asyncio_runtime_error(): FILE: tests/test_attach_base.py function test_mimetype_initialization (line 39) | def test_mimetype_initialization(): function test_attach_base (line 59) | def test_attach_base(): FILE: tests/test_attach_file.py function test_attach_file_parse_url (line 48) | def test_attach_file_parse_url(): function test_file_expiry (line 61) | def test_file_expiry(tmpdir): function test_attach_mimetype (line 90) | def test_attach_mimetype(): function test_attach_file (line 115) | def test_attach_file(): function test_attach_file_base64 (line 277) | def test_attach_file_base64(): FILE: tests/test_attach_http.py function test_attach_http_parse_url (line 63) | def test_attach_http_parse_url(): function test_attach_http_query_string_dictionary (line 76) | def test_attach_http_query_string_dictionary(): function test_attach_http (line 118) | def test_attach_http(mock_get, mock_request): FILE: tests/test_attach_memory.py function test_attach_memory_parse_url (line 43) | def test_attach_memory_parse_url(): function test_attach_memory (line 99) | def test_attach_memory(): FILE: tests/test_compat_py39.py function test_compat_dataclass_no_exception (line 39) | def test_compat_dataclass_no_exception(): function test_compat_dataclass_strips_slots_on_typeerror (line 54) | def test_compat_dataclass_strips_slots_on_typeerror(): function test_compat_dataclass_reraises_when_no_slots (line 72) | def test_compat_dataclass_reraises_when_no_slots(): FILE: tests/test_config_base.py function requests_remote_config (line 50) | def requests_remote_config(mocker: MockerFixture) -> Mock: function test_config_base (line 83) | def test_config_base(): function test_config_base_detect_config_format (line 145) | def test_config_base_detect_config_format(): function test_config_base_config_parse (line 185) | def test_config_base_config_parse(): function test_config_base_discord_bug_report_01 (line 276) | def test_config_base_discord_bug_report_01(): function test_config_base_config_parse_text (line 305) | def test_config_base_config_parse_text(): function test_config_base_config_tag_groups_text (line 441) | def test_config_base_config_tag_groups_text(): function test_config_base_config_parse_text_with_url (line 587) | def test_config_base_config_parse_text_with_url(): function test_config_base_config_parse_yaml (line 625) | def test_config_base_config_parse_yaml(): function test_config_base_config_parse_yaml_includes (line 1290) | def test_config_base_config_parse_yaml_includes( function test_yaml_vs_text_tagging (line 1332) | def test_yaml_vs_text_tagging(): function test_config_base_config_tag_groups_yaml_01 (line 1357) | def test_config_base_config_tag_groups_yaml_01(): function test_config_base_config_tag_groups_yaml_02 (line 1473) | def test_config_base_config_tag_groups_yaml_02(): function test_config_base_config_parse_yaml_globals (line 1595) | def test_config_base_config_parse_yaml_globals(): function test_config_base_config_parse_yaml_list (line 1644) | def test_config_base_config_parse_yaml_list(): function test_yaml_asset_timezone_and_asset_tokens (line 1677) | def test_yaml_asset_timezone_and_asset_tokens(tmpdir): function test_yaml_asset_timezone_invalid_and_precedence (line 1717) | def test_yaml_asset_timezone_invalid_and_precedence(tmpdir): function test_yaml_asset_tz_garbage_types_only (line 1756) | def test_yaml_asset_tz_garbage_types_only(tmpdir, garbage_yaml): function test_config_base_parse_yaml_file05_tags_alias_dict_form (line 1790) | def test_config_base_parse_yaml_file05_tags_alias_dict_form(tmpdir): function test_config_base_parse_yaml_file06_tags_alias_list_form (line 1832) | def test_config_base_parse_yaml_file06_tags_alias_list_form(tmpdir): function test_config_base_parse_yaml_file07_tag_priority_over_tags (line 1872) | def test_config_base_parse_yaml_file07_tag_priority_over_tags(tmpdir): FILE: tests/test_config_file.py function test_config_file (line 39) | def test_config_file(tmpdir): function test_config_file_exceptions (line 103) | def test_config_file_exceptions(tmpdir): FILE: tests/test_config_http.py function test_config_http (line 58) | def test_config_http(mock_post): FILE: tests/test_config_memory.py function test_config_memory (line 36) | def test_config_memory(): FILE: tests/test_conversion.py function test_conversion_html_to_text (line 41) | def test_conversion_html_to_text(): function test_conversion_text_to (line 231) | def test_conversion_text_to(): function test_conversion_markdown_to_html (line 247) | def test_conversion_markdown_to_html(): FILE: tests/test_decorator_notify.py function test_notify_simple_decoration (line 51) | def test_notify_simple_decoration(): function test_notify_complex_decoration (line 297) | def test_notify_complex_decoration(): function test_notify_decorator_urls_with_space (line 451) | def test_notify_decorator_urls_with_space(): function test_notify_multi_instance_decoration (line 527) | def test_notify_multi_instance_decoration(tmpdir): function test_custom_notify_plugin_decoration (line 670) | def test_custom_notify_plugin_decoration(): FILE: tests/test_escapes.py function test_apprise_interpret_escapes (line 37) | def test_apprise_interpret_escapes(mock_request): function test_apprise_escaping (line 132) | def test_apprise_escaping(mock_request): FILE: tests/test_logger.py function test_apprise_logger (line 42) | def test_apprise_logger(): function test_apprise_log_memory_captures (line 73) | def test_apprise_log_memory_captures(): function test_apprise_log_file_captures (line 217) | def test_apprise_log_file_captures(tmpdir): function test_apprise_secure_logging (line 359) | def test_apprise_secure_logging(mock_request): FILE: tests/test_notification_manager.py function test_notification_manager_general (line 47) | def test_notification_manager_general(): function test_notification_manager_add_force_overrides_schema_without_unload (line 242) | def test_notification_manager_add_force_overrides_schema_without_unload(): function test_notification_manager_module_loading (line 284) | def test_notification_manager_module_loading(tmpdir): function test_notification_manager_decorators (line 338) | def test_notification_manager_decorators(tmpdir): function test_notification_manager_add_force_returns_false_if_conflict_persists (line 446) | def test_notification_manager_add_force_returns_false_if_conflict_persists( FILE: tests/test_notify_base.py function test_notify_base (line 42) | def test_notify_base(): function test_notify_base_urls (line 286) | def test_notify_base_urls(): FILE: tests/test_persistent_store.py function test_persistent_storage_asset (line 58) | def test_persistent_storage_asset(tmpdir): function test_persistent_storage_bad_mode (line 73) | def test_persistent_storage_bad_mode(tmpdir): function test_disabled_persistent_storage (line 85) | def test_disabled_persistent_storage(tmpdir): function test_persistent_storage_init (line 135) | def test_persistent_storage_init(tmpdir): function test_persistent_storage_general (line 160) | def test_persistent_storage_general(tmpdir): function test_persistent_storage_auto_mode (line 214) | def test_persistent_storage_auto_mode(tmpdir): function test_persistent_storage_flush_mode (line 252) | def test_persistent_storage_flush_mode(tmpdir): function test_persistent_storage_corruption_handling (line 539) | def test_persistent_storage_corruption_handling(tmpdir): function test_persistent_custom_io (line 982) | def test_persistent_custom_io(tmpdir): function test_persistent_storage_cache_object (line 1156) | def test_persistent_storage_cache_object(tmpdir): function test_persistent_storage_disk_prune (line 1377) | def test_persistent_storage_disk_prune(tmpdir): function test_persistent_storage_disk_changes (line 1591) | def test_persistent_storage_disk_changes(tmpdir): FILE: tests/test_plugin_africas_talking.py function test_plugin_atalk_urls (line 143) | def test_plugin_atalk_urls(): function test_plugin_atalk_edge_cases (line 151) | def test_plugin_atalk_edge_cases(mock_post): FILE: tests/test_plugin_apprise_api.py function test_plugin_apprise_api_urls (line 278) | def test_plugin_apprise_api_urls(): function test_notify_apprise_api_payload_check (line 286) | def test_notify_apprise_api_payload_check(mock_post): function test_notify_apprise_api_attachments (line 367) | def test_notify_apprise_api_attachments(mock_post): FILE: tests/test_plugin_aprs.py function test_plugin_aprs_urls (line 40) | def test_plugin_aprs_urls(mock_create_connection): function test_plugin_aprs_edge_cases (line 189) | def test_plugin_aprs_edge_cases(mock_create_connection): function test_plugin_aprs_config_files (line 359) | def test_plugin_aprs_config_files(): FILE: tests/test_plugin_bark.py function test_plugin_bark_urls (line 288) | def test_plugin_bark_urls(): FILE: tests/test_plugin_base_formatting.py function assert_body (line 50) | def assert_body( function test_notify_overflow_truncate_with_amalgamation (line 75) | def test_notify_overflow_truncate_with_amalgamation(): function test_notify_overflow_truncate_no_amalgamation (line 311) | def test_notify_overflow_truncate_no_amalgamation(): function test_notify_overflow_split_with_amalgamation (line 548) | def test_notify_overflow_split_with_amalgamation(): function test_notify_overflow_split_with_amalgamation_force_title_always (line 1077) | def test_notify_overflow_split_with_amalgamation_force_title_always(): function test_notify_overflow_split_with_amalgamation_force_title_once (line 1688) | def test_notify_overflow_split_with_amalgamation_force_title_once(): function test_notify_overflow_split_no_amalgamation (line 2259) | def test_notify_overflow_split_no_amalgamation(): function test_notify_overflow_split_no_amalgamation_force_title_always (line 2716) | def test_notify_overflow_split_no_amalgamation_force_title_always(): function test_notify_overflow_split_no_amalgamation_force_title_once (line 3197) | def test_notify_overflow_split_no_amalgamation_force_title_once(): function test_notify_markdown_general (line 3773) | def test_notify_markdown_general(): function test_notify_emoji_general (line 3832) | def test_notify_emoji_general(mock_request): FILE: tests/test_plugin_bluesky.py function good_response (line 217) | def good_response(data=None): function bad_response (line 255) | def bad_response(data=None): function bluesky_url (line 272) | def bluesky_url(): function good_message_response (line 278) | def good_message_response(): function bad_message_response (line 285) | def bad_message_response(): function good_media_response (line 292) | def good_media_response(): function test_plugin_bluesky_urls (line 308) | def test_plugin_bluesky_urls(): function test_plugin_bluesky_general (line 315) | def test_plugin_bluesky_general(mocker): function test_plugin_bluesky_edge_cases (line 455) | def test_plugin_bluesky_edge_cases(): function test_plugin_bluesky_attachments_basic (line 464) | def test_plugin_bluesky_attachments_basic( function test_plugin_bluesky_attachments_bad_message_response (line 525) | def test_plugin_bluesky_attachments_bad_message_response( function test_plugin_bluesky_attachments_upload_fails (line 580) | def test_plugin_bluesky_attachments_upload_fails( function test_plugin_bluesky_attachments_invalid_attachment (line 631) | def test_plugin_bluesky_attachments_invalid_attachment( function test_plugin_bluesky_attachments_multiple_batch (line 680) | def test_plugin_bluesky_attachments_multiple_batch( function test_plugin_bluesky_auth_failure (line 839) | def test_plugin_bluesky_auth_failure( function test_plugin_bluesky_did_web_and_plc_resolution (line 877) | def test_plugin_bluesky_did_web_and_plc_resolution( function test_plugin_bluesky_pds_resolution_failures (line 932) | def test_plugin_bluesky_pds_resolution_failures(mock_get): function test_plugin_bluesky_missing_pds_endpoint (line 954) | def test_plugin_bluesky_missing_pds_endpoint(mock_get): FILE: tests/test_plugin_brevo.py function test_plugin_brevo_urls (line 176) | def test_plugin_brevo_urls(): function test_plugin_brevo_edge_cases (line 185) | def test_plugin_brevo_edge_cases(mock_post, mock_get): function test_plugin_brevo_attachments (line 218) | def test_plugin_brevo_attachments(mock_post): FILE: tests/test_plugin_bulksms.py function test_plugin_bulksms_urls (line 175) | def test_plugin_bulksms_urls(): function test_plugin_bulksms_edge_cases (line 183) | def test_plugin_bulksms_edge_cases(mock_post): FILE: tests/test_plugin_bulkvs.py function test_plugin_bulkvs_urls (line 154) | def test_plugin_bulkvs_urls(): function test_plugin_bulkvs_edge_cases (line 162) | def test_plugin_bulkvs_edge_cases(mock_post): FILE: tests/test_plugin_burstsms.py function test_plugin_burstsms_urls (line 176) | def test_plugin_burstsms_urls(): function test_plugin_burstsms_edge_cases (line 184) | def test_plugin_burstsms_edge_cases(mock_post): FILE: tests/test_plugin_chanify.py function test_plugin_chanify_urls (line 102) | def test_plugin_chanify_urls(): FILE: tests/test_plugin_clickatell.py function test_plugin_clickatell_urls (line 173) | def test_plugin_clickatell_urls(): function test_plugin_clickatell_edge_cases (line 181) | def test_plugin_clickatell_edge_cases(mock_post): FILE: tests/test_plugin_clicksend.py function test_plugin_clicksend_urls (line 112) | def test_plugin_clicksend_urls(): FILE: tests/test_plugin_custom_form.py function test_plugin_custom_form_urls (line 231) | def test_plugin_custom_form_urls(): function test_plugin_custom_form_attachments (line 239) | def test_plugin_custom_form_attachments(mock_request): function test_plugin_custom_form_edge_cases (line 446) | def test_plugin_custom_form_edge_cases(mock_request): FILE: tests/test_plugin_custom_json.py function test_plugin_custom_json_urls (line 227) | def test_plugin_custom_json_urls(): function test_plugin_custom_json_edge_cases (line 235) | def test_plugin_custom_json_edge_cases(mock_request): function test_notify_json_plugin_attachments (line 351) | def test_notify_json_plugin_attachments(mock_request): function test_plugin_custom_form_for_synology (line 433) | def test_plugin_custom_form_for_synology(mock_request): FILE: tests/test_plugin_custom_xml.py function test_plugin_custom_xml_urls (line 259) | def test_plugin_custom_xml_urls(): function test_notify_xml_plugin_attachments (line 267) | def test_notify_xml_plugin_attachments(mock_request): function test_plugin_custom_xml_edge_cases (line 347) | def test_plugin_custom_xml_edge_cases(mock_request): FILE: tests/test_plugin_d7networks.py function test_plugin_d7networks_urls (line 172) | def test_plugin_d7networks_urls(): function test_plugin_d7networks_edge_cases (line 180) | def test_plugin_d7networks_edge_cases(mock_post): FILE: tests/test_plugin_dapnet.py function test_plugin_dapnet_urls (line 180) | def test_plugin_dapnet_urls(): function test_plugin_dapnet_edge_cases (line 188) | def test_plugin_dapnet_edge_cases(mock_post): function test_plugin_dapnet_config_files (line 219) | def test_plugin_dapnet_config_files(mock_post): FILE: tests/test_plugin_dbus.py function mock_dbus_module (line 43) | def mock_dbus_module(mocker): function test_plugin_dbus_initialization_strategies (line 105) | def test_plugin_dbus_initialization_strategies(mock_dbus_module, mocker): function test_plugin_dbus_image_support_initialization (line 146) | def test_plugin_dbus_image_support_initialization(mock_dbus_module, mock... function test_plugin_dbus_send_success (line 162) | def test_plugin_dbus_send_success(mock_dbus_module, mocker): function test_plugin_dbus_send_no_title (line 194) | def test_plugin_dbus_send_no_title(mock_dbus_module): function test_plugin_dbus_send_connection_failure (line 211) | def test_plugin_dbus_send_connection_failure(mock_dbus_module): function test_plugin_dbus_send_notify_failure (line 227) | def test_plugin_dbus_send_notify_failure(mock_dbus_module): function test_plugin_dbus_image_loading_failure (line 242) | def test_plugin_dbus_image_loading_failure(mock_dbus_module, mocker): function test_plugin_dbus_url_parsing (line 266) | def test_plugin_dbus_url_parsing(mock_dbus_module): function test_plugin_dbus_schema_not_supported (line 299) | def test_plugin_dbus_schema_not_supported(mock_dbus_module, mocker): function test_plugin_dbus_send_sets_xy_meta_payload (line 314) | def test_plugin_dbus_send_sets_xy_meta_payload(mock_dbus_module): function test_plugin_dbus_send_image_condition_false_skips_pixbuf (line 333) | def test_plugin_dbus_send_image_condition_false_skips_pixbuf( FILE: tests/test_plugin_dingtalk.py function test_plugin_dingtalk_urls (line 139) | def test_plugin_dingtalk_urls(): FILE: tests/test_plugin_discord.py function test_plugin_discord_urls (line 291) | def test_plugin_discord_urls(): function test_plugin_discord_notifications (line 299) | def test_plugin_discord_notifications(mock_post): function test_plugin_discord_general (line 505) | def test_plugin_discord_general(mock_sleep, mock_post): function test_plugin_discord_overflow (line 862) | def test_plugin_discord_overflow(mock_post): function test_plugin_discord_markdown_extra (line 918) | def test_plugin_discord_markdown_extra(mock_post): function test_plugin_discord_attachments (line 962) | def test_plugin_discord_attachments(mock_post): function test_plugin_discord_markdown_fields_batches_exactly (line 1081) | def test_plugin_discord_markdown_fields_batches_exactly(mock_post): function test_plugin_discord_markdown_ping_is_additive (line 1107) | def test_plugin_discord_markdown_ping_is_additive(mock_post): function test_plugin_discord_html_ping_is_exclusive (line 1136) | def test_plugin_discord_html_ping_is_exclusive(mock_post): function test_plugin_discord_markdown_no_mentions_has_no_allow_mentions (line 1160) | def test_plugin_discord_markdown_no_mentions_has_no_allow_mentions(mock_... function test_plugin_discord_markdown_single_field_posts_once (line 1180) | def test_plugin_discord_markdown_single_field_posts_once(mock_post): FILE: tests/test_plugin_dot.py class DummyAttachment (line 39) | class DummyAttachment: method __init__ (line 40) | def __init__(self, payload="ZmFjZQ=="): method base64 (line 43) | def base64(self): function test_plugin_dot_urls (line 160) | def test_plugin_dot_urls(): function test_notify_dot_image_mode_requires_image (line 167) | def test_notify_dot_image_mode_requires_image(): function test_notify_dot_image_mode_with_attachment (line 172) | def test_notify_dot_image_mode_with_attachment(): function test_notify_dot_image_mode_with_existing_image_data (line 199) | def test_notify_dot_image_mode_with_existing_image_data(): function test_notify_dot_text_mode_with_existing_icon (line 224) | def test_notify_dot_text_mode_with_existing_icon(): function test_notify_dot_text_mode_uses_attachment_as_icon (line 252) | def test_notify_dot_text_mode_uses_attachment_as_icon(): function test_notify_dot_text_mode_multiple_attachments_warning (line 278) | def test_notify_dot_text_mode_multiple_attachments_warning(): function test_notify_dot_url_generation (line 310) | def test_notify_dot_url_generation(): function test_notify_dot_parse_url_mode_and_image (line 342) | def test_notify_dot_parse_url_mode_and_image(): function test_notify_dot_invalid_mode (line 355) | def test_notify_dot_invalid_mode(): function test_notify_dot_image_data_in_text_mode (line 364) | def test_notify_dot_image_data_in_text_mode(): function test_notify_dot_text_mode_with_title_and_body (line 375) | def test_notify_dot_text_mode_with_title_and_body(): function test_notify_dot_no_device_id (line 395) | def test_notify_dot_no_device_id(): function test_notify_dot_parse_url_with_all_params (line 402) | def test_notify_dot_parse_url_with_all_params(): function test_notify_dot_url_identifier (line 420) | def test_notify_dot_url_identifier(): function test_notify_dot_image_mode_with_failed_attachment (line 427) | def test_notify_dot_image_mode_with_failed_attachment(): function test_notify_dot_url_generation_defaults (line 441) | def test_notify_dot_url_generation_defaults(): function test_notify_dot_image_mode_with_multiple_attachments (line 463) | def test_notify_dot_image_mode_with_multiple_attachments(): function test_notify_dot_text_mode_without_title (line 488) | def test_notify_dot_text_mode_without_title(): function test_notify_dot_url_generation_with_link (line 506) | def test_notify_dot_url_generation_with_link(): function test_notify_dot_title_handling (line 528) | def test_notify_dot_title_handling(): function test_notify_dot_image_mode_no_border (line 556) | def test_notify_dot_image_mode_no_border(): function test_notify_dot_image_mode_no_dither (line 579) | def test_notify_dot_image_mode_no_dither(): function test_notify_dot_text_mode_no_optional_fields (line 604) | def test_notify_dot_text_mode_no_optional_fields(): function test_notify_dot_url_generation_without_defaults (line 625) | def test_notify_dot_url_generation_without_defaults(): function test_notify_dot_image_mode_attachment_exception (line 642) | def test_notify_dot_image_mode_attachment_exception(): function test_notify_dot_image_mode_attachment_none (line 668) | def test_notify_dot_image_mode_attachment_none(): function test_notify_dot_image_mode_attachment_falsy (line 680) | def test_notify_dot_image_mode_attachment_falsy(): function test_notify_dot_text_mode_attachment_exception (line 699) | def test_notify_dot_text_mode_attachment_exception(): function test_notify_dot_text_mode_attachment_none (line 737) | def test_notify_dot_text_mode_attachment_none(): function test_notify_dot_text_mode_attachment_falsy (line 758) | def test_notify_dot_text_mode_attachment_falsy(): function test_notify_dot_parse_url_no_host (line 786) | def test_notify_dot_parse_url_no_host(): function test_notify_dot_url_with_border_not_none (line 796) | def test_notify_dot_url_with_border_not_none(): function test_notify_dot_image_mode_with_only_title (line 810) | def test_notify_dot_image_mode_with_only_title(): function test_notify_dot_image_mode_with_only_body (line 829) | def test_notify_dot_image_mode_with_only_body(): function test_notify_dot_text_mode_without_body (line 848) | def test_notify_dot_text_mode_without_body(): function test_notify_dot_parse_url_without_host (line 866) | def test_notify_dot_parse_url_without_host(): function test_notify_dot_image_mode_without_title_and_body (line 874) | def test_notify_dot_image_mode_without_title_and_body(): function test_notify_dot_parse_url_with_empty_refresh (line 899) | def test_notify_dot_parse_url_with_empty_refresh(): function test_notify_dot_image_mode_first_attachment_fails (line 908) | def test_notify_dot_image_mode_first_attachment_fails(): function test_notify_dot_image_mode_with_empty_attach_list (line 925) | def test_notify_dot_image_mode_with_empty_attach_list(): function test_notify_dot_parse_url_without_host_field (line 939) | def test_notify_dot_parse_url_without_host_field(): FILE: tests/test_plugin_email.py function test_plugin_email (line 476) | def test_plugin_email(mock_smtp, mock_smtpssl): function test_plugin_email_webbase_lookup (line 666) | def test_plugin_email_webbase_lookup(mock_smtp, mock_smtpssl): function test_plugin_email_smtplib_init_fail (line 711) | def test_plugin_email_smtplib_init_fail(mock_smtplib): function test_plugin_email_smtplib_send_okay (line 736) | def test_plugin_email_smtplib_send_okay(mock_smtplib): function test_plugin_email_smtplib_send_multiple_recipients (line 825) | def test_plugin_email_smtplib_send_multiple_recipients(mock_smtplib): function test_plugin_email_timezone (line 880) | def test_plugin_email_timezone(mock_smtp): function test_plugin_email_smtplib_internationalization (line 952) | def test_plugin_email_smtplib_internationalization(mock_smtp): function test_plugin_email_url_escaping (line 1031) | def test_plugin_email_url_escaping(): function test_plugin_email_url_variations (line 1061) | def test_plugin_email_url_variations(): function test_plugin_email_dict_variations (line 1229) | def test_plugin_email_dict_variations(): function test_plugin_email_url_parsing (line 1248) | def test_plugin_email_url_parsing(mock_smtp, mock_smtp_ssl): function test_plugin_email_plus_in_toemail (line 1943) | def test_plugin_email_plus_in_toemail(mock_smtp, mock_smtp_ssl): function test_plugin_email_formatting_990 (line 2085) | def test_plugin_email_formatting_990(mock_smtp, mock_smtp_ssl): function test_plugin_email_variables_1087 (line 2119) | def test_plugin_email_variables_1087(): function test_plugin_email_to_handling_1356 (line 2182) | def test_plugin_email_to_handling_1356(mock_smtp, mock_smtp_ssl): function test_plugin_email_variables_1334 (line 2244) | def test_plugin_email_variables_1334(mock_smtp, mock_smtp_ssl): function test_plugin_host_detection_from_source_email (line 2332) | def test_plugin_host_detection_from_source_email(mock_smtp, mock_smtp_ssl): function test_plugin_email_by_ipaddr_1113 (line 2522) | def test_plugin_email_by_ipaddr_1113(mock_smtp, mock_smtp_ssl): function test_plugin_email_pgp (line 2565) | def test_plugin_email_pgp(mock_smtp, mock_smtpssl, tmpdir): function test_plugin_email_prepare (line 2920) | def test_plugin_email_prepare(): function test_plugin_pgp (line 2946) | def test_plugin_pgp(tmpdir): function test_pgp_public_keyfile_skips_self_email (line 2989) | def test_pgp_public_keyfile_skips_self_email(tmpdir): function test_plugin_email_gmx_template_lookup (line 3009) | def test_plugin_email_gmx_template_lookup(mock_smtp): FILE: tests/test_plugin_emby.py function test_plugin_template_urls (line 96) | def test_plugin_template_urls(): function test_plugin_emby_general (line 108) | def test_plugin_emby_general( function test_plugin_emby_login (line 181) | def test_plugin_emby_login(mock_post, mock_get): function test_plugin_emby_sessions (line 292) | def test_plugin_emby_sessions(mock_post, mock_get, mock_logout, mock_log... function test_plugin_emby_logout (line 384) | def test_plugin_emby_logout(mock_post, mock_get, mock_login): FILE: tests/test_plugin_enigma2.py function test_plugin_enigma2_urls (line 219) | def test_plugin_enigma2_urls(): FILE: tests/test_plugin_fcm.py function mock_post (line 283) | def mock_post(mocker): function mock_post_legacy (line 301) | def mock_post_legacy(mocker): function test_plugin_fcm_urls (line 317) | def test_plugin_fcm_urls(): function test_plugin_fcm_legacy_default (line 327) | def test_plugin_fcm_legacy_default(mock_post_legacy): function test_plugin_fcm_legacy_priorities (line 370) | def test_plugin_fcm_legacy_priorities(mock_post_legacy): function test_plugin_fcm_legacy_no_colors (line 403) | def test_plugin_fcm_legacy_no_colors(mock_post_legacy): function test_plugin_fcm_legacy_colors (line 433) | def test_plugin_fcm_legacy_colors(mock_post_legacy): function test_plugin_fcm_oauth_default (line 464) | def test_plugin_fcm_oauth_default(mock_post): function test_plugin_fcm_oauth_invalid_project_id (line 496) | def test_plugin_fcm_oauth_invalid_project_id(mock_post): function test_plugin_fcm_oauth_keyfile_error (line 514) | def test_plugin_fcm_oauth_keyfile_error(mock_post): function test_plugin_fcm_oauth_data_parameters (line 533) | def test_plugin_fcm_oauth_data_parameters(mock_post): function test_plugin_fcm_oauth_priorities (line 607) | def test_plugin_fcm_oauth_priorities(mock_post): function test_plugin_fcm_oauth_no_colors (line 645) | def test_plugin_fcm_oauth_no_colors(mock_post): function test_plugin_fcm_oauth_colors (line 680) | def test_plugin_fcm_oauth_colors(mock_post): function test_plugin_fcm_keyfile_parse_default (line 716) | def test_plugin_fcm_keyfile_parse_default(mock_post): function test_plugin_fcm_keyfile_parse_no_expiry (line 744) | def test_plugin_fcm_keyfile_parse_no_expiry(mock_post): function test_plugin_fcm_keyfile_parse_user_agent (line 767) | def test_plugin_fcm_keyfile_parse_user_agent(mock_post): function test_plugin_fcm_keyfile_parse_keyfile_failures (line 783) | def test_plugin_fcm_keyfile_parse_keyfile_failures(mock_post: mock.Mock): function test_plugin_fcm_keyfile_parse_token_failures (line 836) | def test_plugin_fcm_keyfile_parse_token_failures(mock_post): function test_plugin_fcm_bad_keyfile_parse (line 883) | def test_plugin_fcm_bad_keyfile_parse(): function test_plugin_fcm_keyfile_missing_entries_parse (line 894) | def test_plugin_fcm_keyfile_missing_entries_parse(tmpdir): function test_plugin_fcm_priority_manager (line 937) | def test_plugin_fcm_priority_manager(): function test_plugin_fcm_color_manager (line 971) | def test_plugin_fcm_color_manager(): function test_plugin_fcm_cryptography_import_error (line 1026) | def test_plugin_fcm_cryptography_import_error(): function test_plugin_fcm_edge_cases (line 1045) | def test_plugin_fcm_edge_cases(mock_post): FILE: tests/test_plugin_feishu.py function test_plugin_feishu_urls (line 102) | def test_plugin_feishu_urls(): FILE: tests/test_plugin_flock.py function test_plugin_flock_urls (line 235) | def test_plugin_flock_urls(): function test_plugin_flock_edge_cases (line 244) | def test_plugin_flock_edge_cases(mock_post, mock_get): FILE: tests/test_plugin_fluxer.py function _tokens (line 53) | def _tokens() -> tuple[str, str]: function test_plugin_fluxer_urls (line 318) | def test_plugin_fluxer_urls() -> None: function test_plugin_fluxer_notifications (line 326) | def test_plugin_fluxer_notifications(mock_post: mock.MagicMock) -> None: function test_plugin_fluxer_429 (line 442) | def test_plugin_fluxer_429( function test_plugin_fluxer_general (line 614) | def test_plugin_fluxer_general( function test_plugin_fluxer_overflow (line 882) | def test_plugin_fluxer_overflow(mock_post): function test_plugin_fluxer_markdown_extra (line 925) | def test_plugin_fluxer_markdown_extra(mock_post): function test_plugin_fluxer_markdown_attachments (line 967) | def test_plugin_fluxer_markdown_attachments( function test_plugin_fluxer_markdown_fields_batches_exactly (line 1085) | def test_plugin_fluxer_markdown_fields_batches_exactly(mock_post): function test_plugin_fluxer_markdown_ping_is_additive (line 1111) | def test_plugin_fluxer_markdown_ping_is_additive( function test_plugin_fluxer_html_ping_is_exclusive (line 1143) | def test_plugin_fluxer_html_ping_is_exclusive( function test_plugin_fluxer_markdown_no_mentions_has_no_allow_mentions (line 1168) | def test_plugin_fluxer_markdown_no_mentions_has_no_allow_mentions( function test_plugin_fluxer_markdown_single_field_posts_once (line 1191) | def test_plugin_fluxer_markdown_single_field_posts_once( function test_plugin_fluxer_threading (line 1215) | def test_plugin_fluxer_threading(mock_post: mock.MagicMock) -> None: function test_plugin_fluxer_429_attachment_closes_edge_cases (line 1248) | def test_plugin_fluxer_429_attachment_closes_edge_cases( FILE: tests/test_plugin_fortysixelks.py function test_plugin_46elks_urls (line 99) | def test_plugin_46elks_urls(): function test_plugin_46elks_edge_cases (line 107) | def test_plugin_46elks_edge_cases(mock_post): FILE: tests/test_plugin_freemobile.py function test_plugin_freemobile_urls (line 96) | def test_plugin_freemobile_urls(): FILE: tests/test_plugin_glib.py function enabled_glib_environment (line 44) | def enabled_glib_environment(monkeypatch): function test_plugin_glib_gdkpixbuf_attribute_error (line 80) | def test_plugin_glib_gdkpixbuf_attribute_error(monkeypatch): function test_plugin_glib_basic_notify (line 115) | def test_plugin_glib_basic_notify(enabled_glib_environment): function test_plugin_glib_url_includes_coordinates (line 122) | def test_plugin_glib_url_includes_coordinates(enabled_glib_environment): function test_plugin_glib_icon_fails_gracefully (line 132) | def test_plugin_glib_icon_fails_gracefully(mocker, enabled_glib_environm... function test_plugin_glib_send_raises_glib_error (line 144) | def test_plugin_glib_send_raises_glib_error(mocker, enabled_glib_environ... function test_plugin_glib_send_raises_generic (line 153) | def test_plugin_glib_send_raises_generic(mocker, enabled_glib_environment): function test_plugin_glib_disabled (line 198) | def test_plugin_glib_disabled(mocker, enabled_glib_environment): function test_plugin_glib_invalid_coords (line 205) | def test_plugin_glib_invalid_coords(): function test_plugin_glib_urgency_parsing (line 213) | def test_plugin_glib_urgency_parsing(): function test_plugin_glib_parse_url_fields (line 221) | def test_plugin_glib_parse_url_fields(): function test_plugin_glib_xy_axis_applied_to_variant (line 230) | def test_plugin_glib_xy_axis_applied_to_variant(enabled_glib_environment): function test_plugin_glib_no_image_support (line 247) | def test_plugin_glib_no_image_support(monkeypatch, enabled_glib_environm... function test_plugin_glib_url_redaction (line 255) | def test_plugin_glib_url_redaction(enabled_glib_environment): function test_plugin_glib_require_version_importerror (line 265) | def test_plugin_glib_require_version_importerror(monkeypatch): function test_plugin_glib_require_version_valueerror (line 275) | def test_plugin_glib_require_version_valueerror(monkeypatch): function test_plugin_glib_gdkpixbuf_require_version_valueerror (line 303) | def test_plugin_glib_gdkpixbuf_require_version_valueerror(monkeypatch): function test_plugin_glib_notify_generic_exception (line 328) | def test_plugin_glib_notify_generic_exception( FILE: tests/test_plugin_gnome.py function setup_glib_environment (line 45) | def setup_glib_environment(): function glib_environment (line 101) | def glib_environment(): function obj (line 107) | def obj(glib_environment): function test_plugin_gnome_general_success (line 124) | def test_plugin_gnome_general_success(obj): function test_plugin_gnome_image_success (line 148) | def test_plugin_gnome_image_success(glib_environment): function test_plugin_gnome_priority (line 174) | def test_plugin_gnome_priority(glib_environment): function test_plugin_gnome_urgency (line 215) | def test_plugin_gnome_urgency(glib_environment): function test_plugin_gnome_parse_configuration (line 256) | def test_plugin_gnome_parse_configuration(obj): function test_plugin_gnome_missing_icon (line 329) | def test_plugin_gnome_missing_icon(mocker, obj): function test_plugin_gnome_disabled_plugin (line 353) | def test_plugin_gnome_disabled_plugin(obj): function test_plugin_gnome_set_urgency (line 364) | def test_plugin_gnome_set_urgency(): function test_plugin_gnome_gi_croaks (line 370) | def test_plugin_gnome_gi_croaks(): function test_plugin_gnome_notify_croaks (line 389) | def test_plugin_gnome_notify_croaks(mocker, obj): function test_plugin_gnome_show_exception (line 411) | def test_plugin_gnome_show_exception(mocker, obj): FILE: tests/test_plugin_google_chat.py function test_plugin_google_chat_urls (line 154) | def test_plugin_google_chat_urls(): function test_plugin_google_chat_general (line 162) | def test_plugin_google_chat_general(mock_post): function test_plugin_google_chat_edge_case (line 228) | def test_plugin_google_chat_edge_case(): FILE: tests/test_plugin_gotify.py function test_plugin_gotify_urls (line 143) | def test_plugin_gotify_urls(): function test_plugin_gotify_edge_cases (line 150) | def test_plugin_gotify_edge_cases(): function test_plugin_gotify_config_files (line 161) | def test_plugin_gotify_config_files(mock_post): FILE: tests/test_plugin_growl.py function test_plugin_growl_gntp_import_error (line 60) | def test_plugin_growl_gntp_import_error(): function test_plugin_growl_exception_handling (line 69) | def test_plugin_growl_exception_handling(mock_gntp): function test_plugin_growl_general (line 128) | def test_plugin_growl_general(mock_gntp): function test_plugin_growl_config_files (line 381) | def test_plugin_growl_config_files(mock_gntp): FILE: tests/test_plugin_guilded.py function test_plugin_guilded_urls (line 195) | def test_plugin_guilded_urls(): function test_plugin_guilded_general (line 203) | def test_plugin_guilded_general(mock_post): FILE: tests/test_plugin_homeassistant.py function test_plugin_homeassistant_urls (line 168) | def test_plugin_homeassistant_urls(): function test_plugin_homeassistant_general (line 176) | def test_plugin_homeassistant_general(mock_post): FILE: tests/test_plugin_httpsms.py function test_plugin_httpsms_urls (line 140) | def test_plugin_httpsms_urls(): function test_plugin_httpsms_edge_cases (line 148) | def test_plugin_httpsms_edge_cases(mock_post): FILE: tests/test_plugin_ifttt.py function test_plugin_ifttt_urls (line 144) | def test_plugin_ifttt_urls(): function test_plugin_ifttt_edge_cases (line 153) | def test_plugin_ifttt_edge_cases(mock_post, mock_get): FILE: tests/test_plugin_irc.py class _DummyTransport (line 62) | class _DummyTransport: method __init__ (line 65) | def __init__(self) -> None: method connect (line 71) | def connect(self) -> None: method close (line 74) | def close(self) -> None: method write (line 77) | def write(self, payload: bytes, *, flush: bool, timeout: float) -> None: method read (line 80) | def read( function test_plugin_irc_init_targets (line 93) | def test_plugin_irc_init_targets() -> None: function test_plugin_irc_modes (line 109) | def test_plugin_irc_modes() -> None: function test_plugin_irc_defaults_port_noop (line 128) | def test_plugin_irc_defaults_port_noop() -> None: function test_plugin_irc_defaults_template_match (line 135) | def test_plugin_irc_defaults_template_match() -> None: function test_plugin_irc_defaults_template_none (line 143) | def test_plugin_irc_defaults_template_none() -> None: function test_plugin_irc_send_no_targets (line 149) | def test_plugin_irc_send_no_targets() -> None: function test_plugin_irc_send_ok (line 155) | def test_plugin_irc_send_ok() -> None: function test_plugin_irc_send_no_join (line 188) | def test_plugin_irc_send_no_join() -> None: function test_plugin_irc_send_error (line 207) | def test_plugin_irc_send_error() -> None: function test_plugin_irc_url_id (line 219) | def test_plugin_irc_url_id() -> None: function test_plugin_irc_url_format (line 229) | def test_plugin_irc_url_format() -> None: function test_plugin_irc_parse_url (line 285) | def test_plugin_irc_parse_url() -> None: function test_plugin_irc_protocol (line 317) | def test_plugin_irc_protocol() -> None: function test_plugin_irc_state_machine (line 332) | def test_plugin_irc_state_machine() -> None: function test_plugin_irc_client_nick_handling (line 364) | def test_plugin_irc_client_nick_handling() -> None: function test_plugin_irc_client_handshake (line 396) | def test_plugin_irc_client_handshake() -> None: function test_plugin_irc_client_register (line 439) | def test_plugin_irc_client_register() -> None: function test_plugin_irc_client_identify (line 475) | def test_plugin_irc_client_identify() -> None: function test_plugin_irc_client_join (line 514) | def test_plugin_irc_client_join() -> None: function test_plugin_irc_protocol_parse_blank_line (line 546) | def test_plugin_irc_protocol_parse_blank_line() -> None: function test_plugin_irc_protocol_parse_trailing_only (line 554) | def test_plugin_irc_protocol_parse_trailing_only() -> None: function test_plugin_irc_message (line 562) | def test_plugin_irc_message() -> None: function test_plugin_irc_protocol_ping_payload_from_params (line 569) | def test_plugin_irc_protocol_ping_payload_from_params() -> None: function test_plugin_irc_protocol_extract_welcome_nick_non_welcome (line 577) | def test_plugin_irc_protocol_extract_welcome_nick_non_welcome() -> None: function test_plugin_irc_protocol_normalise_channel_empty (line 584) | def test_plugin_irc_protocol_normalise_channel_empty() -> None: function test_plugin_irc_client_props_and_io (line 589) | def test_plugin_irc_client_props_and_io() -> None: function test_plugin_irc_client_write_timeout (line 601) | def test_plugin_irc_client_write_timeout() -> None: function test_plugin_irc_client_write_bytes_and_flush (line 610) | def test_plugin_irc_client_write_bytes_and_flush() -> None: function test_plugin_irc_client_read_buffer_and_timeout (line 628) | def test_plugin_irc_client_read_buffer_and_timeout() -> None: function test_plugin_irc_client_read_transport_paths (line 641) | def test_plugin_irc_client_read_transport_paths() -> None: function test_plugin_irc_client_tick (line 657) | def test_plugin_irc_client_tick() -> None: function test_plugin_irc_client_handshake_paths (line 668) | def test_plugin_irc_client_handshake_paths() -> None: function test_plugin_irc_client_register_auth_modes (line 723) | def test_plugin_irc_client_register_auth_modes() -> None: function test_plugin_irc_client_join_privmsg_identify_quit (line 774) | def test_plugin_irc_client_join_privmsg_identify_quit() -> None: function test_plugin_irc_client_nick_generation_default_length (line 851) | def test_plugin_irc_client_nick_generation_default_length() -> None: function test_plugin_irc_client_write_trace (line 857) | def test_plugin_irc_client_write_trace() -> None: function test_plugin_irc_client_handshake_send_without_line (line 878) | def test_plugin_irc_client_handshake_send_without_line() -> None: function test_plugin_irc_client_register_queue_ignores_empty_send (line 899) | def test_plugin_irc_client_register_queue_ignores_empty_send() -> None: function test_plugin_irc_client_join_queue_ignores_empty_send (line 924) | def test_plugin_irc_client_join_queue_ignores_empty_send() -> None: function test_plugin_irc_client_quit_queue_ignores_empty_send (line 948) | def test_plugin_irc_client_quit_queue_ignores_empty_send() -> None: function test_plugin_irc_send_znc_calls_check_connection (line 969) | def test_plugin_irc_send_znc_calls_check_connection() -> None: function test_plugin_irc_send_znc_check_connection_failure (line 995) | def test_plugin_irc_send_znc_check_connection_failure() -> None: function test_plugin_irc_send_znc_pass_rewrite (line 1021) | def test_plugin_irc_send_znc_pass_rewrite() -> None: function test_plugin_irc_client_check_connection_success_on_any_pong (line 1046) | def test_plugin_irc_client_check_connection_success_on_any_pong() -> None: function test_plugin_irc_client_handles_empty_reads (line 1067) | def test_plugin_irc_client_handles_empty_reads() -> None: function test_plugin_irc_client_join_queues_join_line_and_completes (line 1087) | def test_plugin_irc_client_join_queues_join_line_and_completes() -> None: function test_plugin_irc_client_join_timeout_logs_debug (line 1112) | def test_plugin_irc_client_join_timeout_logs_debug() -> None: function test_plugin_irc_state_machine_joining_numeric_443_adds_channel (line 1128) | def test_plugin_irc_state_machine_joining_numeric_443_adds_channel() -> ... function test_plugin_irc_client_connection_check (line 1145) | def test_plugin_irc_client_connection_check() -> None: function test_plugin_irc_client_join_non_send_actions (line 1168) | def test_plugin_irc_client_join_non_send_actions() -> None: FILE: tests/test_plugin_irc_state.py function test_plugin_irc_state_err_trailing (line 42) | def test_plugin_irc_state_err_trailing() -> None: function test_plugin_irc_state_err_params (line 48) | def test_plugin_irc_state_err_params() -> None: function test_plugin_irc_state_err_default (line 55) | def test_plugin_irc_state_err_default() -> None: function test_plugin_irc_state_ignore_when_error_or_quitting (line 61) | def test_plugin_irc_state_ignore_when_error_or_quitting() -> None: function test_plugin_irc_state_register_error_sets_last_error (line 73) | def test_plugin_irc_state_register_error_sets_last_error() -> None: function test_plugin_irc_state_register_collision_433_sends_new_nick (line 86) | def test_plugin_irc_state_register_collision_433_sends_new_nick() -> None: function test_plugin_irc_state_register_collision_432_sends_new_nick (line 97) | def test_plugin_irc_state_register_collision_432_sends_new_nick() -> None: function test_plugin_irc_state_register_welcome_sets_accepted (line 108) | def test_plugin_irc_state_register_welcome_sets_accepted() -> None: function test_plugin_irc_state_register_welcome (line 120) | def test_plugin_irc_state_register_welcome() -> None: function test_plugin_irc_state_register_motd_done_before_registered (line 133) | def test_plugin_irc_state_register_motd_done_before_registered() -> None: function test_plugin_irc_state_register_motd_done_376_before_registered (line 144) | def test_plugin_irc_state_register_motd_done_376_before_registered() -> ... function test_plugin_irc_state_register_motd_done_after_registered (line 156) | def test_plugin_irc_state_register_motd_done_after_registered() -> None: function test_plugin_irc_state_join_error_sets_last_error (line 171) | def test_plugin_irc_state_join_error_sets_last_error() -> None: function test_plugin_irc_state_join_numeric_366_adds_channel (line 184) | def test_plugin_irc_state_join_numeric_366_adds_channel() -> None: function test_plugin_irc_state_join_command_trailing (line 195) | def test_plugin_irc_state_join_command_trailing() -> None: function test_plugin_irc_state_join_command_params (line 206) | def test_plugin_irc_state_join_command_params() -> None: function test_plugin_irc_state_request_join_key_and_no_key (line 217) | def test_plugin_irc_state_request_join_key_and_no_key() -> None: function test_plugin_irc_state_request_quit (line 230) | def test_plugin_irc_state_request_quit() -> None: function test_plugin_irc_state_register_unhandled_numeric (line 240) | def test_plugin_irc_state_register_unhandled_numeric() -> None: function test_plugin_irc_state_join_command_empty_channel (line 254) | def test_plugin_irc_state_join_command_empty_channel() -> None: function test_plugin_irc_state_ready_falls_through (line 267) | def test_plugin_irc_state_ready_falls_through() -> None: function test_plugin_irc_state_join_non_join_command (line 279) | def test_plugin_irc_state_join_non_join_command() -> None: FILE: tests/test_plugin_jellyfin.py function test_plugin_jellyfin_urls (line 90) | def test_plugin_jellyfin_urls(): function test_plugin_jellyfin_instantiation (line 97) | def test_plugin_jellyfin_instantiation(): FILE: tests/test_plugin_join.py function test_plugin_join_urls (line 170) | def test_plugin_join_urls(): function test_plugin_join_edge_cases (line 179) | def test_plugin_join_edge_cases(mock_post, mock_get): function test_plugin_join_config_files (line 219) | def test_plugin_join_config_files(mock_post): FILE: tests/test_plugin_kavenegar.py function test_plugin_kavenegar_urls (line 134) | def test_plugin_kavenegar_urls(): FILE: tests/test_plugin_kumulos.py function test_plugin_kumulos_urls (line 111) | def test_plugin_kumulos_urls(): function test_plugin_kumulos_edge_cases (line 118) | def test_plugin_kumulos_edge_cases(): FILE: tests/test_plugin_lametric.py function test_plugin_lametric_urls (line 317) | def test_plugin_lametric_urls(): function test_plugin_lametric_edge_cases (line 324) | def test_plugin_lametric_edge_cases(): FILE: tests/test_plugin_lark.py function test_plugin_lark_urls (line 96) | def test_plugin_lark_urls(): FILE: tests/test_plugin_line.py function test_plugin_line_urls (line 115) | def test_plugin_line_urls(): FILE: tests/test_plugin_macosx.py function pretend_macos (line 51) | def pretend_macos(mocker): function terminal_notifier (line 61) | def terminal_notifier(mocker, tmp_path): function macos_notify_environment (line 80) | def macos_notify_environment(pretend_macos, terminal_notifier): function test_plugin_macosx_general_success (line 88) | def test_plugin_macosx_general_success(macos_notify_environment): function test_plugin_macosx_terminal_notifier_not_executable (line 171) | def test_plugin_macosx_terminal_notifier_not_executable( function test_plugin_macosx_terminal_notifier_invalid (line 190) | def test_plugin_macosx_terminal_notifier_invalid(macos_notify_environment): function test_plugin_macosx_terminal_notifier_croaks (line 208) | def test_plugin_macosx_terminal_notifier_croaks( function test_plugin_macosx_pretend_linux (line 227) | def test_plugin_macosx_pretend_linux(mocker, pretend_macos): function test_plugin_macosx_pretend_old_macos (line 241) | def test_plugin_macosx_pretend_old_macos(mocker, macos_version): FILE: tests/test_plugin_mailgun.py function test_plugin_mailgun_urls (line 267) | def test_plugin_mailgun_urls(): function test_plugin_mailgun_attachments (line 275) | def test_plugin_mailgun_attachments(mock_post): function test_plugin_mailgun_header_check (line 446) | def test_plugin_mailgun_header_check(mock_post): FILE: tests/test_plugin_mastodon.py function test_plugin_mastodon_urls (line 201) | def test_plugin_mastodon_urls(): function test_plugin_mastodon_general (line 210) | def test_plugin_mastodon_general(mock_post, mock_get): function test_plugin_mastodon_attachments (line 369) | def test_plugin_mastodon_attachments(mock_get, mock_post): FILE: tests/test_plugin_matrix.py function test_plugin_matrix_urls (line 322) | def test_plugin_matrix_urls(): function test_plugin_matrix_general (line 332) | def test_plugin_matrix_general(mock_post, mock_get, mock_put): function test_plugin_matrix_fetch (line 505) | def test_plugin_matrix_fetch(mock_post, mock_get, mock_put): function test_plugin_matrix_auth (line 612) | def test_plugin_matrix_auth(mock_post, mock_get, mock_put): function test_plugin_matrix_rooms (line 707) | def test_plugin_matrix_rooms(mock_post, mock_get, mock_put): function test_plugin_matrix_url_parsing (line 966) | def test_plugin_matrix_url_parsing(): function test_plugin_matrix_image_errors (line 1008) | def test_plugin_matrix_image_errors(mock_post, mock_get, mock_put): function test_plugin_matrix_attachments_api_v3 (line 1095) | def test_plugin_matrix_attachments_api_v3(mock_post, mock_put): function test_plugin_matrix_discovery_service (line 1213) | def test_plugin_matrix_discovery_service(mock_post, mock_get): function test_plugin_matrix_attachments_api_v2 (line 1415) | def test_plugin_matrix_attachments_api_v2(mock_post, mock_get): function test_plugin_matrix_transaction_ids_api_v3_no_cache (line 1633) | def test_plugin_matrix_transaction_ids_api_v3_no_cache( function test_plugin_matrix_transaction_ids_api_v3_w_cache (line 1727) | def test_plugin_matrix_transaction_ids_api_v3_w_cache( function test_plugin_matrix_v3_url_with_port_assembly (line 1840) | def test_plugin_matrix_v3_url_with_port_assembly( function test_plugin_matrix_no_room_create_on_non_not_found_join (line 1923) | def test_plugin_matrix_no_room_create_on_non_not_found_join( function test_plugin_matrix_room_create_on_not_found_join (line 1985) | def test_plugin_matrix_room_create_on_not_found_join( FILE: tests/test_plugin_mattermost.py function request_get_mock (line 241) | def request_get_mock(mocker): function request_post_mock (line 251) | def request_post_mock(mocker): function test_plugin_mattermost_urls (line 260) | def test_plugin_mattermost_urls(): function test_plugin_mattermost_edge_cases (line 267) | def test_plugin_mattermost_edge_cases(): function test_plugin_mattermost_len_webhook_and_bot (line 277) | def test_plugin_mattermost_len_webhook_and_bot( function test_plugin_mattermost_channels (line 353) | def test_plugin_mattermost_channels(request_post_mock): function test_mattermost_post_default_port (line 393) | def test_mattermost_post_default_port(request_post_mock): function test_mattermost_icon_override (line 416) | def test_mattermost_icon_override(request_post_mock): function test_plugin_mattermost_webhook_payload_variants (line 440) | def test_plugin_mattermost_webhook_payload_variants(request_post_mock, m... function test_plugin_mattermost_webhook_http_error_and_exception (line 479) | def test_plugin_mattermost_webhook_http_error_and_exception( function test_plugin_mattermost_bot_mode_success_and_payload (line 496) | def test_plugin_mattermost_bot_mode_success_and_payload(request_post_mock): function test_plugin_mattermost_bot_mode_requires_channel_id (line 526) | def test_plugin_mattermost_bot_mode_requires_channel_id(request_post_mock): function test_plugin_mattermost_bot_mode_http_error_and_exception (line 538) | def test_plugin_mattermost_bot_mode_http_error_and_exception( function test_plugin_mattermost_bot_channel_lookup_success (line 556) | def test_plugin_mattermost_bot_channel_lookup_success( function test_plugin_mattermost_bot_channel_lookup_partial_success (line 589) | def test_plugin_mattermost_bot_channel_lookup_partial_success( FILE: tests/test_plugin_messagebird.py function test_plugin_messagebird_urls (line 129) | def test_plugin_messagebird_urls(): function test_plugin_messagebird_edge_cases (line 137) | def test_plugin_messagebird_edge_cases(mock_post): FILE: tests/test_plugin_misskey.py function test_plugin_misskey_urls (line 133) | def test_plugin_misskey_urls(): FILE: tests/test_plugin_mqtt.py function mqtt_client_mock (line 44) | def mqtt_client_mock(mocker): function test_plugin_mqtt_paho_import_error (line 71) | def test_plugin_mqtt_paho_import_error(): function test_plugin_mqtt_default_success (line 80) | def test_plugin_mqtt_default_success(mqtt_client_mock): function test_plugin_mqtt_multiple_topics_success (line 122) | def test_plugin_mqtt_multiple_topics_success(mqtt_client_mock): function test_plugin_mqtt_to_success (line 155) | def test_plugin_mqtt_to_success(mqtt_client_mock): function test_plugin_mqtt_valid_settings_success (line 173) | def test_plugin_mqtt_valid_settings_success(mqtt_client_mock): function test_plugin_mqtt_invalid_settings_failure (line 188) | def test_plugin_mqtt_invalid_settings_failure(mqtt_client_mock): function test_plugin_mqtt_bad_url_failure (line 209) | def test_plugin_mqtt_bad_url_failure(mqtt_client_mock): function test_plugin_mqtt_no_topic_failure (line 215) | def test_plugin_mqtt_no_topic_failure(mqtt_client_mock): function test_plugin_mqtt_tls_connect_success (line 224) | def test_plugin_mqtt_tls_connect_success(mqtt_client_mock): function test_plugin_mqtt_tls_no_certificates_failure (line 255) | def test_plugin_mqtt_tls_no_certificates_failure(mqtt_client_mock, mocker): function test_plugin_mqtt_tls_no_verify_success (line 279) | def test_plugin_mqtt_tls_no_verify_success(mqtt_client_mock): function test_plugin_mqtt_session_client_id_success (line 296) | def test_plugin_mqtt_session_client_id_success(mqtt_client_mock): function test_plugin_mqtt_retain (line 313) | def test_plugin_mqtt_retain(mqtt_client_mock): function test_plugin_mqtt_connect_failure (line 328) | def test_plugin_mqtt_connect_failure(mqtt_client_mock): function test_plugin_mqtt_reconnect_failure (line 342) | def test_plugin_mqtt_reconnect_failure(mqtt_client_mock): function test_plugin_mqtt_publish_failure (line 357) | def test_plugin_mqtt_publish_failure(mqtt_client_mock): function test_plugin_mqtt_exception_failure (line 372) | def test_plugin_mqtt_exception_failure(mqtt_client_mock): function test_plugin_mqtt_not_published_failure (line 388) | def test_plugin_mqtt_not_published_failure(mqtt_client_mock, mocker): function test_plugin_mqtt_not_published_recovery_success (line 408) | def test_plugin_mqtt_not_published_recovery_success(mqtt_client_mock): FILE: tests/test_plugin_msg91.py function test_plugin_msg91_urls (line 139) | def test_plugin_msg91_urls(): function test_plugin_msg91_edge_cases (line 147) | def test_plugin_msg91_edge_cases(mock_post): function test_plugin_msg91_keywords (line 172) | def test_plugin_msg91_keywords(mock_post): FILE: tests/test_plugin_msteams.py function test_plugin_msteams_urls (line 231) | def test_plugin_msteams_urls(): function msteams_url (line 239) | def msteams_url(): function request_mock (line 244) | def request_mock(mocker): function simple_template (line 253) | def simple_template(tmpdir): function test_plugin_msteams_templating_basic_success (line 273) | def test_plugin_msteams_templating_basic_success( function test_plugin_msteams_templating_invalid_json (line 327) | def test_plugin_msteams_templating_invalid_json( function test_plugin_msteams_templating_json_missing_type (line 354) | def test_plugin_msteams_templating_json_missing_type( function test_plugin_msteams_templating_json_missing_context (line 396) | def test_plugin_msteams_templating_json_missing_context( function test_plugin_msteams_templating_load_json_failure (line 437) | def test_plugin_msteams_templating_load_json_failure( function test_plugin_msteams_templating_target_success (line 459) | def test_plugin_msteams_templating_target_success( function test_msteams_yaml_config_invalid_template_filename (line 534) | def test_msteams_yaml_config_invalid_template_filename( function test_msteams_yaml_config_token_identifiers (line 566) | def test_msteams_yaml_config_token_identifiers( function test_msteams_yaml_config_no_bullet_under_url_1 (line 610) | def test_msteams_yaml_config_no_bullet_under_url_1( function test_msteams_yaml_config_dictionary_file (line 655) | def test_msteams_yaml_config_dictionary_file( function test_msteams_yaml_config_no_bullet_under_url_2 (line 701) | def test_msteams_yaml_config_no_bullet_under_url_2( function test_msteams_yaml_config_combined (line 747) | def test_msteams_yaml_config_combined( function test_msteams_yaml_config_token_mismatch (line 793) | def test_msteams_yaml_config_token_mismatch( function test_plugin_msteams_edge_cases (line 821) | def test_plugin_msteams_edge_cases(): FILE: tests/test_plugin_nextcloud.py function test_plugin_nextcloud_urls (line 250) | def test_plugin_nextcloud_urls(): function test_plugin_nextcloud_edge_cases (line 258) | def test_plugin_nextcloud_edge_cases(mock_post): function test_plugin_nextcloud_url_prefix (line 285) | def test_plugin_nextcloud_url_prefix(mock_post): function test_plugin_nextcloud_groups_and_all (line 315) | def test_plugin_nextcloud_groups_and_all(mock_get, mock_post): function test_plugin_nextcloud_persistent_storage (line 387) | def test_plugin_nextcloud_persistent_storage(mock_get, mock_post, tmpdir): function test_plugin_nextcloud_groups_errors_and_dedup (line 468) | def test_plugin_nextcloud_groups_errors_and_dedup(mock_get, mock_post): function test_plugin_nextcloud_req_exception_and_empty_targets (line 509) | def test_plugin_nextcloud_req_exception_and_empty_targets(mock_get, mock... function test_plugin_nextcloud_json_empty_returns_empty (line 540) | def test_plugin_nextcloud_json_empty_returns_empty(mock_get, mock_post): function test_plugin_nextcloud_caching_group_and_all (line 580) | def test_plugin_nextcloud_caching_group_and_all(mock_get, mock_post): FILE: tests/test_plugin_nextcloudtalk.py function test_plugin_nextcloudtalk_urls (line 170) | def test_plugin_nextcloudtalk_urls(): function test_plugin_nextcloudtalk_edge_cases (line 178) | def test_plugin_nextcloudtalk_edge_cases(mock_post): function test_plugin_nextcloud_talk_url_prefix (line 203) | def test_plugin_nextcloud_talk_url_prefix(mock_post): FILE: tests/test_plugin_notica.py function test_plugin_notica_urls (line 193) | def test_plugin_notica_urls(): FILE: tests/test_plugin_notifiarr.py function test_plugin_notifiarr_urls (line 233) | def test_plugin_notifiarr_urls(): function test_plugin_notifiarr_notifications (line 241) | def test_plugin_notifiarr_notifications(mock_post): FILE: tests/test_plugin_notificationapi.py function test_plugin_napi_urls (line 332) | def test_plugin_napi_urls(): function test_plugin_napi_template_sms_payloads (line 343) | def test_plugin_napi_template_sms_payloads(mock_post): function test_plugin_napi_template_email_payloads (line 411) | def test_plugin_napi_template_email_payloads(mock_post): function test_plugin_napi_message_payloads (line 489) | def test_plugin_napi_message_payloads(mock_post): function test_plugin_napi_edge_cases (line 661) | def test_plugin_napi_edge_cases(): FILE: tests/test_plugin_notifico.py function test_plugin_notifico_urls (line 169) | def test_plugin_notifico_urls(): FILE: tests/test_plugin_ntfy.py function test_plugin_ntfy_chat_urls (line 416) | def test_plugin_ntfy_chat_urls(): function test_plugin_ntfy_attachments (line 424) | def test_plugin_ntfy_attachments(mock_post): function test_plugin_custom_ntfy_edge_cases (line 536) | def test_plugin_custom_ntfy_edge_cases(mock_post): function test_plugin_ntfy_config_files (line 634) | def test_plugin_ntfy_config_files(mock_post, mock_get): function test_plugin_ntfy_internationalized_urls (line 708) | def test_plugin_ntfy_internationalized_urls(mock_post): function test_plugin_ntfy_message_to_attach (line 746) | def test_plugin_ntfy_message_to_attach(mock_post): FILE: tests/test_plugin_office365.py function test_plugin_office365_urls (line 306) | def test_plugin_office365_urls(): function test_plugin_office365_general (line 315) | def test_plugin_office365_general(mock_get, mock_post): function test_plugin_office365_authentication (line 411) | def test_plugin_office365_authentication(mock_get, mock_post): function test_plugin_office365_queries (line 502) | def test_plugin_office365_queries(mock_post, mock_get, mock_put): function test_plugin_office365_attachments (line 612) | def test_plugin_office365_attachments(mock_post, mock_get, mock_put): FILE: tests/test_plugin_onesignal.py function test_plugin_onesignal_urls (line 203) | def test_plugin_onesignal_urls(): function test_plugin_onesignal_edge_cases (line 210) | def test_plugin_onesignal_edge_cases(): function test_plugin_onesignal_notifications (line 350) | def test_plugin_onesignal_notifications(mock_post): FILE: tests/test_plugin_opsgenie.py function test_plugin_opsgenie_urls (line 376) | def test_plugin_opsgenie_urls(tmpdir): function test_plugin_opsgenie_config_files (line 384) | def test_plugin_opsgenie_config_files(mock_post): function test_plugin_opsgenie_edge_case (line 454) | def test_plugin_opsgenie_edge_case(mock_post): FILE: tests/test_plugin_pagerduty.py function test_plugin_pagerduty_urls (line 190) | def test_plugin_pagerduty_urls(): function test_plugin_pagerduty_notify_type_is_string (line 198) | def test_plugin_pagerduty_notify_type_is_string(mock_post): FILE: tests/test_plugin_pagertree.py function test_plugin_pagertree_urls (line 159) | def test_plugin_pagertree_urls(): function test_plugin_pagertree_general (line 167) | def test_plugin_pagertree_general(mock_post): FILE: tests/test_plugin_parse_platform.py function test_plugin_parse_platform_urls (line 136) | def test_plugin_parse_platform_urls(): FILE: tests/test_plugin_plivo.py function test_plugin_plivo_urls (line 150) | def test_plugin_plivo_urls(): FILE: tests/test_plugin_popcorn_notify.py function test_plugin_popcorn_notify_urls (line 121) | def test_plugin_popcorn_notify_urls(): FILE: tests/test_plugin_prowl.py function test_plugin_prowl (line 169) | def test_plugin_prowl(): function test_plugin_prowl_edge_cases (line 176) | def test_plugin_prowl_edge_cases(): function test_plugin_prowl_config_files (line 193) | def test_plugin_prowl_config_files(mock_post): FILE: tests/test_plugin_pushbullet.py function test_plugin_pushbullet_urls (line 243) | def test_plugin_pushbullet_urls(): function test_plugin_pushbullet_attachments (line 251) | def test_plugin_pushbullet_attachments(mock_post): function test_plugin_pushbullet_edge_cases (line 417) | def test_plugin_pushbullet_edge_cases(mock_post, mock_get): FILE: tests/test_plugin_pushdeer.py function test_plugin_pushdeer_urls (line 111) | def test_plugin_pushdeer_urls(): function test_plugin_pushdeer_general (line 119) | def test_plugin_pushdeer_general(mock_post): FILE: tests/test_plugin_pushed.py function test_plugin_pushed_urls (line 197) | def test_plugin_pushed_urls(): function test_plugin_pushed_edge_cases (line 206) | def test_plugin_pushed_edge_cases(mock_post, mock_get): FILE: tests/test_plugin_pushjet.py function test_plugin_pushjet_urls (line 126) | def test_plugin_pushjet_urls(): function test_plugin_pushjet_edge_cases (line 133) | def test_plugin_pushjet_edge_cases(): FILE: tests/test_plugin_pushme.py function test_plugin_pushme_urls (line 127) | def test_plugin_pushme_urls(): FILE: tests/test_plugin_pushover.py function test_plugin_pushover_urls (line 266) | def test_plugin_pushover_urls(): function test_plugin_pushover_attachments (line 274) | def test_plugin_pushover_attachments(mock_post, tmpdir): function test_plugin_pushover_edge_cases (line 398) | def test_plugin_pushover_edge_cases(mock_post): function test_plugin_pushover_config_files (line 468) | def test_plugin_pushover_config_files(mock_post): FILE: tests/test_plugin_pushplus.py function test_plugin_pushplus_urls (line 97) | def test_plugin_pushplus_urls(): FILE: tests/test_plugin_pushsafer.py function test_plugin_pushsafer_urls (line 285) | def test_plugin_pushsafer_urls(): function test_plugin_pushsafer_general (line 293) | def test_plugin_pushsafer_general(mock_post): FILE: tests/test_plugin_pushy.py function test_plugin_pushy_urls (line 197) | def test_plugin_pushy_urls(): FILE: tests/test_plugin_qq.py function test_plugin_qq_urls (line 96) | def test_plugin_qq_urls(): FILE: tests/test_plugin_reddit.py function test_plugin_reddit_urls (line 280) | def test_plugin_reddit_urls(): function test_plugin_reddit_general (line 288) | def test_plugin_reddit_general(mock_post): FILE: tests/test_plugin_resend.py function test_plugin_resend_urls (line 223) | def test_plugin_resend_urls(): function test_plugin_resend_edge_cases (line 232) | def test_plugin_resend_edge_cases(mock_post, mock_get): function test_plugin_resend_attachments (line 266) | def test_plugin_resend_attachments(mock_post, mock_get): FILE: tests/test_plugin_revolt.py function test_plugin_revolt_urls (line 259) | def test_plugin_revolt_urls(): function test_plugin_revolt_notifications (line 267) | def test_plugin_revolt_notifications(mock_post): function test_plugin_revolt_general (line 343) | def test_plugin_revolt_general(mock_sleep, mock_post): function test_plugin_revolt_overflow (line 475) | def test_plugin_revolt_overflow(mock_post): function test_plugin_revolt_markdown_extra (line 533) | def test_plugin_revolt_markdown_extra(mock_post): FILE: tests/test_plugin_rocket_chat.py function test_plugin_rocket_chat_urls (line 326) | def test_plugin_rocket_chat_urls(): function test_plugin_rocket_chat_edge_cases (line 335) | def test_plugin_rocket_chat_edge_cases(mock_post, mock_get): FILE: tests/test_plugin_rsyslog.py function test_plugin_rsyslog_by_url (line 44) | def test_plugin_rsyslog_by_url(mock_getpid, mock_socket): function test_plugin_rsyslog_edge_cases (line 161) | def test_plugin_rsyslog_edge_cases(): FILE: tests/test_plugin_ryver.py function test_plugin_ryver_urls (line 165) | def test_plugin_ryver_urls(): function test_plugin_ryver_edge_cases (line 172) | def test_plugin_ryver_edge_cases(): FILE: tests/test_plugin_sendgrid.py function test_plugin_sendgrid_urls (line 189) | def test_plugin_sendgrid_urls(): function test_plugin_sendgrid_edge_cases (line 198) | def test_plugin_sendgrid_edge_cases(mock_post, mock_get): function test_plugin_sendgrid_attachments (line 232) | def test_plugin_sendgrid_attachments(mock_post, mock_get): FILE: tests/test_plugin_sendpulse.py function test_plugin_sendpulse_urls (line 258) | def test_plugin_sendpulse_urls(): function test_plugin_sendpulse_edge_cases (line 269) | def test_plugin_sendpulse_edge_cases(mock_post): function test_plugin_sendpulse_fail_cases (line 486) | def test_plugin_sendpulse_fail_cases(): function test_plugin_sendpulse_attachments (line 527) | def test_plugin_sendpulse_attachments(mock_post): FILE: tests/test_plugin_serverchan.py function test_plugin_serverchan_urls (line 83) | def test_plugin_serverchan_urls(): FILE: tests/test_plugin_ses.py function test_plugin_ses_urls (line 249) | def test_plugin_ses_urls(): function test_plugin_ses_edge_cases (line 259) | def test_plugin_ses_edge_cases(mock_post): function test_plugin_ses_url_parsing (line 319) | def test_plugin_ses_url_parsing(): function test_plugin_ses_aws_response_handling (line 366) | def test_plugin_ses_aws_response_handling(): function test_plugin_ses_attachments (line 429) | def test_plugin_ses_attachments(mock_post): FILE: tests/test_plugin_seven.py function test_plugin_seven_urls (line 142) | def test_plugin_seven_urls(): function test_plugin_seven_edge_cases (line 150) | def test_plugin_seven_edge_cases(mock_post): FILE: tests/test_plugin_sfr.py function test_plugin_sfr_urls (line 219) | def test_plugin_sfr_urls(): function test_plugin_sfr_notification_ok (line 226) | def test_plugin_sfr_notification_ok(mock_post): function test_plugin_sfr_notification_multiple_targets_ok (line 268) | def test_plugin_sfr_notification_multiple_targets_ok(mock_post): function test_plugin_sfr_notification_ko (line 314) | def test_plugin_sfr_notification_ko(mock_post): function test_plugin_sfr_notification_multiple_targets_all_ko (line 360) | def test_plugin_sfr_notification_multiple_targets_all_ko(mock_post): function test_plugin_sfr_notification_multiple_targets_one_ko (line 395) | def test_plugin_sfr_notification_multiple_targets_one_ko(mock_post): function test_plugin_sfr_notification_exceptions (line 442) | def test_plugin_sfr_notification_exceptions(mock_post): function test_plugin_sfr_notification_exceptions_requests (line 530) | def test_plugin_sfr_notification_exceptions_requests(mock_post): function test_plugin_sfr_failure (line 576) | def test_plugin_sfr_failure(mock_post): FILE: tests/test_plugin_signal.py function request_mock (line 52) | def request_mock(mocker): function test_plugin_signal_urls (line 238) | def test_plugin_signal_urls(): function test_plugin_signal_edge_cases (line 245) | def test_plugin_signal_edge_cases(request_mock): function test_plugin_signal_yaml_config (line 286) | def test_plugin_signal_yaml_config(request_mock): function test_plugin_signal_based_on_feedback (line 333) | def test_plugin_signal_based_on_feedback(request_mock): function test_notify_signal_plugin_attachments (line 422) | def test_notify_signal_plugin_attachments(request_mock): function test_plugin_signal_text_mode_markdown_from_url (line 498) | def test_plugin_signal_text_mode_markdown_from_url(request_mock): function test_plugin_signal_text_mode_markdown_from_library (line 519) | def test_plugin_signal_text_mode_markdown_from_library(request_mock): FILE: tests/test_plugin_signl4.py function test_plugin_signl4_urls (line 170) | def test_plugin_signl4_urls(): FILE: tests/test_plugin_simplepush.py function test_plugin_simplepush_urls (line 131) | def test_plugin_simplepush_urls(): function test_plugin_simpepush_cryptography_import_error (line 141) | def test_plugin_simpepush_cryptography_import_error(): function test_plugin_simplepush_edge_cases (line 155) | def test_plugin_simplepush_edge_cases(): function test_plugin_simplepush_general (line 180) | def test_plugin_simplepush_general(mock_post): FILE: tests/test_plugin_sinch.py function test_plugin_sinch_urls (line 185) | def test_plugin_sinch_urls(): function test_plugin_sinch_edge_cases (line 193) | def test_plugin_sinch_edge_cases(mock_post): FILE: tests/test_plugin_slack.py function test_plugin_slack_urls (line 506) | def test_plugin_slack_urls(): function test_plugin_slack_oauth_access_token (line 514) | def test_plugin_slack_oauth_access_token(mock_request): function test_plugin_slack_webhook_mode (line 713) | def test_plugin_slack_webhook_mode(mock_request): function test_plugin_slack_send_by_email (line 765) | def test_plugin_slack_send_by_email(mock_get, mock_request): function test_plugin_slack_markdown (line 996) | def test_plugin_slack_markdown(mock_get, mock_request): function test_plugin_slack_single_thread_reply (line 1059) | def test_plugin_slack_single_thread_reply(mock_request): function test_plugin_slack_multiple_thread_reply (line 1100) | def test_plugin_slack_multiple_thread_reply(mock_request): function test_plugin_slack_file_upload_success (line 1147) | def test_plugin_slack_file_upload_success(mock_request): function test_plugin_slack_file_upload_fails_missing_files (line 1194) | def test_plugin_slack_file_upload_fails_missing_files(mock_request): FILE: tests/test_plugin_smpp.py function test_plugin_smpplib_import_error (line 139) | def test_plugin_smpplib_import_error(): function test_plugin_smpp_urls (line 152) | def test_plugin_smpp_urls(): function test_plugin_smpp_edge_case (line 170) | def test_plugin_smpp_edge_case(): FILE: tests/test_plugin_sms_manager.py function test_plugin_smsmgr_urls (line 132) | def test_plugin_smsmgr_urls(): function test_plugin_smsmgr_edge_cases (line 140) | def test_plugin_smsmgr_edge_cases(mock_get): FILE: tests/test_plugin_smseagle.py function test_plugin_smseagle_urls (line 354) | def test_plugin_smseagle_urls(): function test_plugin_smseagle_edge_cases (line 362) | def test_plugin_smseagle_edge_cases(mock_post): function test_plugin_smseagle_result_set (line 406) | def test_plugin_smseagle_result_set(mock_post): function test_notify_smseagle_plugin_result_list (line 626) | def test_notify_smseagle_plugin_result_list(mock_post): function test_notify_smseagle_plugin_attachments (line 661) | def test_notify_smseagle_plugin_attachments(mock_post): FILE: tests/test_plugin_smtp2go.py function test_plugin_smtp2go_urls (line 217) | def test_plugin_smtp2go_urls(): function test_plugin_smtp2go_attachments (line 225) | def test_plugin_smtp2go_attachments(mock_post): FILE: tests/test_plugin_sns.py function test_plugin_sns_urls (line 131) | def test_plugin_sns_urls(): function test_plugin_sns_edge_cases (line 141) | def test_plugin_sns_edge_cases(mock_post): function test_plugin_sns_url_parsing (line 208) | def test_plugin_sns_url_parsing(): function test_plugin_sns_object_parsing (line 249) | def test_plugin_sns_object_parsing(): function test_plugin_sns_aws_response_handling (line 273) | def test_plugin_sns_aws_response_handling(): function test_plugin_sns_aws_topic_handling (line 347) | def test_plugin_sns_aws_topic_handling(mock_post): function test_plugin_sns_detailed_failures (line 448) | def test_plugin_sns_detailed_failures(mocker): FILE: tests/test_plugin_sparkpost.py function test_plugin_sparkpost_urls (line 338) | def test_plugin_sparkpost_urls(): function test_plugin_sparkpost_throttling (line 346) | def test_plugin_sparkpost_throttling(mock_post): function test_plugin_sparkpost_attachments (line 406) | def test_plugin_sparkpost_attachments(mock_post): FILE: tests/test_plugin_spike.py function test_plugin_spike_urls (line 96) | def test_plugin_spike_urls(): FILE: tests/test_plugin_splunk.py function test_plugin_splunk_urls (line 264) | def test_plugin_splunk_urls(): FILE: tests/test_plugin_spugpush.py function test_plugin_spugpush_urls (line 97) | def test_plugin_spugpush_urls(): FILE: tests/test_plugin_streamlabs.py function test_plugin_streamlabs_urls (line 177) | def test_plugin_streamlabs_urls(): FILE: tests/test_plugin_synology.py function test_plugin_custom_synology_urls (line 178) | def test_plugin_custom_synology_urls(): function test_plugin_synology_edge_cases (line 186) | def test_plugin_synology_edge_cases(mock_post): FILE: tests/test_plugin_syslog.py function test_plugin_syslog_by_url (line 82) | def test_plugin_syslog_by_url(openlog, syslog): function test_plugin_syslog_edge_cases (line 145) | def test_plugin_syslog_edge_cases(openlog, syslog): FILE: tests/test_plugin_techululs_push.py function test_plugin_techulus_push_urls (line 103) | def test_plugin_techulus_push_urls(): FILE: tests/test_plugin_telegram.py function test_plugin_telegram_urls (line 362) | def test_plugin_telegram_urls(): function test_plugin_telegram_general (line 370) | def test_plugin_telegram_general(mock_post): function test_plugin_telegram_formatting (line 757) | def test_plugin_telegram_formatting(mock_post): function test_plugin_telegram_html_formatting (line 1306) | def test_plugin_telegram_html_formatting(mock_post): function test_plugin_telegram_threads (line 1416) | def test_plugin_telegram_threads(mock_post): function test_plugin_telegram_markdown_v2 (line 1523) | def test_plugin_telegram_markdown_v2(mock_post): FILE: tests/test_plugin_threema.py function test_plugin_threema (line 140) | def test_plugin_threema(): function test_plugin_threema_edge_cases (line 148) | def test_plugin_threema_edge_cases(mock_post): FILE: tests/test_plugin_title_maxlen.py function request_mock (line 48) | def request_mock(mocker): function test_plugin_title_maxlen (line 62) | def test_plugin_title_maxlen(request_mock): FILE: tests/test_plugin_twilio.py function test_plugin_twilio_urls (line 235) | def test_plugin_twilio_urls(): function test_plugin_twilio_auth (line 243) | def test_plugin_twilio_auth(mock_post): function test_plugin_twilio_edge_cases (line 342) | def test_plugin_twilio_edge_cases(mock_post): FILE: tests/test_plugin_twist.py function test_plugin_twist_urls (line 124) | def test_plugin_twist_urls(): function test_plugin_twist_init (line 131) | def test_plugin_twist_init(): function test_plugin_twist_auth (line 184) | def test_plugin_twist_auth(mock_post, mock_get): function test_plugin_twist_cache (line 285) | def test_plugin_twist_cache(mock_post, mock_get): function test_plugin_twist_fetch (line 368) | def test_plugin_twist_fetch(mock_post, mock_get): FILE: tests/test_plugin_twitter.py function good_response (line 263) | def good_response(data): function bad_response (line 271) | def bad_response(data): function twitter_url (line 280) | def twitter_url(): function good_message_response (line 290) | def good_message_response(): function bad_message_response (line 300) | def bad_message_response(): function good_media_response (line 314) | def good_media_response(): function bad_media_response (line 330) | def bad_media_response(): function ensure_get_verify_credentials_is_mocked (line 345) | def ensure_get_verify_credentials_is_mocked(mocker, good_message_response): function test_plugin_twitter_urls (line 354) | def test_plugin_twitter_urls(): function test_plugin_twitter_general (line 361) | def test_plugin_twitter_general(mocker): function test_plugin_twitter_edge_cases (line 527) | def test_plugin_twitter_edge_cases(): function test_plugin_twitter_dm_caching (line 577) | def test_plugin_twitter_dm_caching( function test_plugin_twitter_dm_attachments_basic (line 638) | def test_plugin_twitter_dm_attachments_basic( function test_plugin_twitter_dm_attachments_message_fails (line 695) | def test_plugin_twitter_dm_attachments_message_fails( function test_plugin_twitter_dm_attachments_upload_fails (line 729) | def test_plugin_twitter_dm_attachments_upload_fails( function test_plugin_twitter_dm_attachments_invalid_attachment (line 760) | def test_plugin_twitter_dm_attachments_invalid_attachment( function test_plugin_twitter_dm_attachments_multiple (line 789) | def test_plugin_twitter_dm_attachments_multiple( function test_plugin_twitter_dm_attachments_multiple_oserror (line 864) | def test_plugin_twitter_dm_attachments_multiple_oserror( function test_plugin_twitter_tweet_attachments_basic (line 906) | def test_plugin_twitter_tweet_attachments_basic( function test_plugin_twitter_tweet_attachments_more_logging (line 944) | def test_plugin_twitter_tweet_attachments_more_logging( function test_plugin_twitter_tweet_attachments_bad_message_response (line 995) | def test_plugin_twitter_tweet_attachments_bad_message_response( function test_plugin_twitter_tweet_attachments_bad_message_response_unparseable (line 1030) | def test_plugin_twitter_tweet_attachments_bad_message_response_unparseable( function test_plugin_twitter_tweet_attachments_upload_fails (line 1068) | def test_plugin_twitter_tweet_attachments_upload_fails( function test_plugin_twitter_tweet_attachments_invalid_attachment (line 1107) | def test_plugin_twitter_tweet_attachments_invalid_attachment( function test_plugin_twitter_tweet_attachments_multiple_batch (line 1136) | def test_plugin_twitter_tweet_attachments_multiple_batch( function test_plugin_twitter_tweet_attachments_multiple_nobatch (line 1207) | def test_plugin_twitter_tweet_attachments_multiple_nobatch( function test_plugin_twitter_tweet_attachments_multiple_oserror (line 1281) | def test_plugin_twitter_tweet_attachments_multiple_oserror( FILE: tests/test_plugin_vapid.py function patch_persistent_store_namespace (line 140) | def patch_persistent_store_namespace(tmpdir): function subscription_reference (line 156) | def subscription_reference(): function test_plugin_vapid_urls (line 194) | def test_plugin_vapid_urls(): function test_plugin_vapid_urls_with_required_assets (line 207) | def test_plugin_vapid_urls_with_required_assets( function test_plugin_vapid_subscriptions (line 353) | def test_plugin_vapid_subscriptions(tmpdir): function test_plugin_vapid_subscriptions_without_c (line 469) | def test_plugin_vapid_subscriptions_without_c(): function test_plugin_vapid_subscription_manager (line 488) | def test_plugin_vapid_subscription_manager(tmpdir): function test_plugin_vapid_initializations (line 608) | def test_plugin_vapid_initializations(mock_post, tmpdir): function test_plugin_vapid_initializations_without_c (line 795) | def test_plugin_vapid_initializations_without_c(tmpdir): FILE: tests/test_plugin_viber.py function test_plugin_viber_urls (line 131) | def test_plugin_viber_urls(): function test_plugin_viber_http_error_and_exception (line 136) | def test_plugin_viber_http_error_and_exception(mocker): FILE: tests/test_plugin_voipms.py function test_plugin_voipms (line 205) | def test_plugin_voipms(): function test_plugin_voipms_edge_cases (line 213) | def test_plugin_voipms_edge_cases(mock_get): function test_plugin_voipms_non_success_status (line 253) | def test_plugin_voipms_non_success_status(mock_get): FILE: tests/test_plugin_vonage.py function test_plugin_vonage_urls (line 262) | def test_plugin_vonage_urls(): function test_plugin_vonage_edge_cases (line 270) | def test_plugin_vonage_edge_cases(mock_post): FILE: tests/test_plugin_webex_teams.py function test_plugin_webex_teams_urls (line 138) | def test_plugin_webex_teams_urls(): FILE: tests/test_plugin_wecombot.py function test_plugin_wecombot_urls (line 110) | def test_plugin_wecombot_urls(): FILE: tests/test_plugin_whatsapp.py function test_plugin_whatsapp_urls (line 230) | def test_plugin_whatsapp_urls(): function test_plugin_whatsapp_auth (line 238) | def test_plugin_whatsapp_auth(mock_post): function test_plugin_whatsapp_edge_cases (line 282) | def test_plugin_whatsapp_edge_cases(mock_post): function test_plugin_whatsapp_template_notify_type_value (line 327) | def test_plugin_whatsapp_template_notify_type_value(mock_post): FILE: tests/test_plugin_windows.py function test_plugin_windows_mocked (line 51) | def test_plugin_windows_mocked(): function test_plugin_windows_native (line 239) | def test_plugin_windows_native( FILE: tests/test_plugin_workflows.py function test_plugin_workflows_urls (line 218) | def test_plugin_workflows_urls(): function workflows_url (line 226) | def workflows_url(): function request_mock (line 231) | def request_mock(mocker): function simple_template (line 240) | def simple_template(tmpdir): function test_plugin_workflows_simple_test (line 267) | def test_plugin_workflows_simple_test( function test_plugin_workflows_templating_basic_success (line 394) | def test_plugin_workflows_templating_basic_success( function test_plugin_workflows_templating_invalid_json (line 449) | def test_plugin_workflows_templating_invalid_json( function test_plugin_workflows_templating_load_json_failure (line 476) | def test_plugin_workflows_templating_load_json_failure( function test_plugin_workflows_templating_target_success (line 498) | def test_plugin_workflows_templating_target_success( function test_workflows_yaml_config_missing_template_filename (line 574) | def test_workflows_yaml_config_missing_template_filename( function test_plugin_workflows_edge_cases (line 609) | def test_plugin_workflows_edge_cases(): function test_plugin_workflows_azure_webhooks (line 640) | def test_plugin_workflows_azure_webhooks(request_mock): FILE: tests/test_plugin_wxpusher.py function test_plugin_wxpusher_urls (line 261) | def test_plugin_wxpusher_urls(): function test_plugin_wxpusher_edge_cases (line 269) | def test_plugin_wxpusher_edge_cases(mock_post): function test_plugin_wxpusher_result_set (line 309) | def test_plugin_wxpusher_result_set(mock_post): function test_notify_wxpusher_plugin_result_list (line 382) | def test_notify_wxpusher_plugin_result_list(mock_post): FILE: tests/test_plugin_xbmc_kodi.py function test_plugin_xbmc_kodi_urls (line 300) | def test_plugin_xbmc_kodi_urls(): FILE: tests/test_plugin_xmpp.py function run_on_loop (line 52) | def run_on_loop(loop: asyncio.AbstractEventLoop, coro: Any) -> Any: class FakeClientXMPP (line 80) | class FakeClientXMPP: method __init__ (line 81) | def __init__(self, jid: str, password: str) -> None: method add_event_handler (line 102) | def add_event_handler(self, name: str, handler: Any) -> None: method send_presence (line 105) | def send_presence(self) -> None: method get_roster (line 108) | async def get_roster(self) -> None: method send_message (line 111) | def send_message(self, **kwargs: Any) -> None: method register_plugin (line 114) | def register_plugin(self, name: str, config: Optional[Any] = None) -> ... method disconnect (line 118) | def disconnect(self) -> None: method connect (line 123) | def connect(self, **kwargs: Any) -> asyncio.Future[bool]: function install_fake_slixmpp (line 161) | def install_fake_slixmpp(monkeypatch: pytest.MonkeyPatch) -> None: function _patch_threading (line 179) | def _patch_threading( function _make_fake_done_event_cls (line 200) | def _make_fake_done_event_cls( function test_slixmpp_unavailable (line 257) | def test_slixmpp_unavailable() -> None: function test_xmpp_invalid_jid (line 263) | def test_xmpp_invalid_jid() -> None: function test_xmpp_targets_filtered (line 269) | def test_xmpp_targets_filtered() -> None: function test_xmpp_len (line 289) | def test_xmpp_len() -> None: function test_xmpp_url_privacy (line 304) | def test_xmpp_url_privacy() -> None: function test_xmpp_parse_url (line 318) | def test_xmpp_parse_url() -> None: function test_xmpp_parse_url_to (line 327) | def test_xmpp_parse_url_to() -> None: function test_xmpp_invalid_targets_logged (line 335) | def test_xmpp_invalid_targets_logged( function test_xmpp_url_identifier_is_accessible (line 365) | def test_xmpp_url_identifier_is_accessible() -> None: function test_xmpp_url_handling (line 378) | def test_xmpp_url_handling() -> None: function test_xmpp_parse_url_returns_none (line 440) | def test_xmpp_parse_url_returns_none(monkeypatch: pytest.MonkeyPatch) ->... function test_xmpp_finalize_loop_when_already_closed_does_not_close_again (line 453) | def test_xmpp_finalize_loop_when_already_closed_does_not_close_again() -... function test_xmpp_apprise_notify_invokes_adapter (line 466) | def test_xmpp_apprise_notify_invokes_adapter( function test_xmpp_ssl_context (line 520) | def test_xmpp_ssl_context() -> None: function test_xmpp_cancel_pending_empty (line 530) | def test_xmpp_cancel_pending_empty(monkeypatch: pytest.MonkeyPatch) -> N... function test_xmpp_cancel_pending_tasks (line 545) | def test_xmpp_cancel_pending_tasks(monkeypatch: pytest.MonkeyPatch) -> N... function test_xmpp_process_disabled (line 573) | def test_xmpp_process_disabled(monkeypatch: pytest.MonkeyPatch) -> None: function test_xmpp_process_fail (line 595) | def test_xmpp_process_fail( function test_xmpp_process_success (line 627) | def test_xmpp_process_success(monkeypatch: pytest.MonkeyPatch) -> None: function test_xmpp_process_default_target (line 660) | def test_xmpp_process_default_target(monkeypatch: pytest.MonkeyPatch) ->... function test_xmpp_process_exception (line 682) | def test_xmpp_process_exception( function test_xmpp_process_before_message (line 712) | def test_xmpp_process_before_message(monkeypatch: pytest.MonkeyPatch) ->... function test_xmpp_process_failed_auth_disconnect (line 742) | def test_xmpp_process_failed_auth_disconnect( function test_xmpp_normalize_jid (line 797) | def test_xmpp_normalize_jid() -> None: function test_xmpp_bridge_logging_safe_lock (line 813) | def test_xmpp_bridge_logging_safe_lock( function test_xmpp_multi_logging_bridge_handling (line 848) | def test_xmpp_multi_logging_bridge_handling( function test_xmpp_process_failure_cleanup (line 880) | def test_xmpp_process_failure_cleanup( function test_xmpp_timeout_cleanup_disconnect_exception_suppressed (line 920) | def test_xmpp_timeout_cleanup_disconnect_exception_suppressed( function test_xmpp_timeout_cleanup_no_client_stop_exception_suppressed (line 1016) | def test_xmpp_timeout_cleanup_no_client_stop_exception_suppressed( function test_xmpp_timeout_cleanup_loop_none_skips_disconnect_and_stop (line 1103) | def test_xmpp_timeout_cleanup_loop_none_skips_disconnect_and_stop( function test_xmpp_process_unsupported_secure_mode (line 1192) | def test_xmpp_process_unsupported_secure_mode( function test_xmpp_process_connect_timeout (line 1221) | def test_xmpp_process_connect_timeout( function test_xmpp_process_session_timeout (line 1276) | def test_xmpp_process_session_timeout( function test_xmpp_slixmpp_versioning (line 1342) | def test_xmpp_slixmpp_versioning(monkeypatch: pytest.MonkeyPatch) -> None: function test_xmpp_keepalive_url_and_parse (line 1381) | def test_xmpp_keepalive_url_and_parse() -> None: function test_xmpp_keepalive_reuses_adapter_instance (line 1399) | def test_xmpp_keepalive_reuses_adapter_instance( function test_adapter_send_message_keepalive_false_calls_process (line 1456) | def test_adapter_send_message_keepalive_false_calls_process( function test_adapter_ensure_keepalive_worker_edge_cases (line 1492) | def test_adapter_ensure_keepalive_worker_edge_cases( function test_adapter_ensure_keepalive_worker_wait_timeout (line 1554) | def test_adapter_ensure_keepalive_worker_wait_timeout( function test_adapter_connect_if_required_early_returns (line 1589) | def test_adapter_connect_if_required_early_returns( function test_adapter_connect_if_required_already_connected (line 1627) | def test_adapter_connect_if_required_already_connected( function test_adapter_connect_if_required_connect_timeout (line 1671) | def test_adapter_connect_if_required_connect_timeout( function test_adapter_connect_if_required_connect_exception (line 1722) | def test_adapter_connect_if_required_connect_exception( function test_adapter_connect_if_required_session_start_timeout (line 1759) | def test_adapter_connect_if_required_session_start_timeout( function test_adapter_send_keepalive_async_default_target_and_send_error (line 1822) | def test_adapter_send_keepalive_async_default_target_and_send_error( function test_adapter_send_message_keepalive_timeout_and_exception (line 1883) | def test_adapter_send_message_keepalive_timeout_and_exception( function test_adapter_del_suppresses_close_exception (line 1957) | def test_adapter_del_suppresses_close_exception( function test_adapter_close_shutdown_paths_and_state_reset (line 1988) | def test_adapter_close_shutdown_paths_and_state_reset( function test_adapter_close_call_soon_threadsafe_raises_still_resets (line 2055) | def test_adapter_close_call_soon_threadsafe_raises_still_resets( function test_adapter_ensure_keepalive_worker_returns_true_at_end (line 2103) | def test_adapter_ensure_keepalive_worker_returns_true_at_end( function test_adapter_keepalive_runner_executes_and_register_plugin_suppressed (line 2135) | def test_adapter_keepalive_runner_executes_and_register_plugin_suppressed( function test_adapter_connect_if_required_hits_bottom_return_true (line 2198) | def test_adapter_connect_if_required_hits_bottom_return_true( function test_adapter_send_keepalive_async_connect_fail_branch (line 2260) | def test_adapter_send_keepalive_async_connect_fail_branch( function test_adapter_send_keepalive_async_exception_when_session_started_none (line 2294) | def test_adapter_send_keepalive_async_exception_when_session_started_none( function test_adapter_close_shutdown_client_none_branch (line 2335) | def test_adapter_close_shutdown_client_none_branch( function test_adapter_close_thread_alive_returns_without_clearing_state (line 2387) | def test_adapter_close_thread_alive_returns_without_clearing_state( function test_adapter_keepalive_runner_returns_if_closing_before_publish (line 2445) | def test_adapter_keepalive_runner_returns_if_closing_before_publish( function test_adapter_keepalive_runner_finally_clears_state_when_closing (line 2505) | def test_adapter_keepalive_runner_finally_clears_state_when_closing( function test_adapter_keepalive_runner_session_start_sets_event_even_on_exception (line 2559) | def test_adapter_keepalive_runner_session_start_sets_event_even_on_excep... function test_client_session_start_roster_timeout_closes_awaitable (line 2641) | def test_client_session_start_roster_timeout_closes_awaitable( function test_client_session_start_keepalive_sets_ready_event (line 2690) | def test_client_session_start_keepalive_sets_ready_event( function test_client_session_start_oneshot_sends_and_disconnects (line 2736) | def test_client_session_start_oneshot_sends_and_disconnects( function test_adapter_keepalive_runner_failed_handlers (line 2790) | def test_adapter_keepalive_runner_failed_handlers( function test_adapter_keepalive_runner_unsupported_secure_mode_hits_valueerror (line 2858) | def test_adapter_keepalive_runner_unsupported_secure_mode_hits_valueerror( function test_adapter_keepalive_session_start_try_finally_and_roster (line 2906) | def test_adapter_keepalive_session_start_try_finally_and_roster( function test_adapter_keepalive_runner_plaintext_mode_skips_ssl_context (line 3011) | def test_adapter_keepalive_runner_plaintext_mode_skips_ssl_context( function test_adapter_keepalive_runner_finally_loop_none (line 3069) | def test_adapter_keepalive_runner_finally_loop_none( function test_adapter_keepalive_runner_finally_stop_close_exceptions_suppressed (line 3102) | def test_adapter_keepalive_runner_finally_stop_close_exceptions_suppressed( function test_adapter_send_keepalive_async_returns_false_when_client_none (line 3174) | def test_adapter_send_keepalive_async_returns_false_when_client_none( function test_adapter_send_message_keepalive_exception_close_failure_suppressed (line 3228) | def test_adapter_send_message_keepalive_exception_close_failure_suppressed( function test_adapter_send_message_keepalive_false_none_params_does_not_override (line 3281) | def test_adapter_send_message_keepalive_false_none_params_does_not_overr... function test_adapter_send_message_keepalive_worker_failure_returns_false (line 3319) | def test_adapter_send_message_keepalive_worker_failure_returns_false( function test_adapter_send_message_keepalive_timeout_with_no_session_started_event (line 3349) | def test_adapter_send_message_keepalive_timeout_with_no_session_started_... function test_client_session_start_keepalive_evt_none_no_set (line 3409) | def test_client_session_start_keepalive_evt_none_no_set( function test_adapter_general_function (line 3442) | def test_adapter_general_function( function test_client_on_session_start_create_task_failure_closes_coro (line 3460) | def test_client_on_session_start_create_task_failure_closes_coro( function test_client_disconnected_evt_none_no_clear (line 3519) | def test_client_disconnected_evt_none_no_clear( function test_adapter_send_message_keepalive_loop_none_returns_false (line 3552) | def test_adapter_send_message_keepalive_loop_none_returns_false( function test_adapter_send_message_keepalive_exception_returns_false (line 3582) | def test_adapter_send_message_keepalive_exception_returns_false( function test_adapter_send_keepalive_async_auth_failed_returns_false (line 3630) | def test_adapter_send_keepalive_async_auth_failed_returns_false( function test_adapter_connect_if_required_auth_failed_returns_false (line 3671) | def test_adapter_connect_if_required_auth_failed_returns_false( function test_adapter_connect_if_required_connect_ok_false_disconnects (line 3710) | def test_adapter_connect_if_required_connect_ok_false_disconnects( function test_adapter_connect_if_required_session_wait_exception_closes (line 3761) | def test_adapter_connect_if_required_session_wait_exception_closes( function test_client_on_session_start_add_done_callback_executes (line 3831) | def test_client_on_session_start_add_done_callback_executes( function test_client_on_session_start_done_callback_cancelled_returns (line 3921) | def test_client_on_session_start_done_callback_cancelled_returns( function test_client_on_session_start_done_callback_logs_exception (line 3999) | def test_client_on_session_start_done_callback_logs_exception( FILE: tests/test_plugin_zulip.py function test_plugin_zulip_urls (line 173) | def test_plugin_zulip_urls(): function test_plugin_zulip_edge_cases (line 180) | def test_plugin_zulip_edge_cases(): FILE: tests/test_utils_format.py function test_smart_split_prefers_newlines_over_spaces_and_punctuation (line 31) | def test_smart_split_prefers_newlines_over_spaces_and_punctuation(): function test_smart_split_prefers_spaces_over_hard_split (line 48) | def test_smart_split_prefers_spaces_over_hard_split(): function test_smart_split_can_split_after_punctuation_plus_whitespace (line 63) | def test_smart_split_can_split_after_punctuation_plus_whitespace(): function test_smart_split_avoids_splitting_inside_html_entity (line 82) | def test_smart_split_avoids_splitting_inside_html_entity() -> None: function test_smart_split_avoids_splitting_inside_markdown_link (line 118) | def test_smart_split_avoids_splitting_inside_markdown_link() -> None: function test_smart_split_avoids_splitting_inside_markdown_image (line 144) | def test_smart_split_avoids_splitting_inside_markdown_image() -> None: function test_smart_split_empty_and_none_input (line 175) | def test_smart_split_empty_and_none_input() -> None: function test_smart_split_html_entity_exact_boundary (line 186) | def test_smart_split_html_entity_exact_boundary() -> None: function test_smart_split_markdown_link_exact_boundary (line 201) | def test_smart_split_markdown_link_exact_boundary() -> None: function test_smart_split_whitespace_priority_with_tabs_and_newlines (line 220) | def test_smart_split_whitespace_priority_with_tabs_and_newlines() -> None: function test_smart_split_very_short_limit (line 245) | def test_smart_split_very_short_limit() -> None: function test_smart_split_very_long_limit (line 257) | def test_smart_split_very_long_limit() -> None: function test_html_adjust_guard_paths_and_no_entity (line 268) | def test_html_adjust_guard_paths_and_no_entity() -> None: function test_html_adjust_inside_and_at_boundary_of_entity (line 286) | def test_html_adjust_inside_and_at_boundary_of_entity() -> None: function test_markdown_adjust_guard_and_no_construct (line 302) | def test_markdown_adjust_guard_and_no_construct() -> None: function test_markdown_adjust_inside_construct_moves_to_start (line 320) | def test_markdown_adjust_inside_construct_moves_to_start() -> None: function test_smart_split_markdown_guard_split_at_start_is_reset (line 335) | def test_smart_split_markdown_guard_split_at_start_is_reset() -> None: function test_smart_split_uses_punctuation_branch_on_rare_whitespace (line 356) | def test_smart_split_uses_punctuation_branch_on_rare_whitespace() -> None: FILE: tests/test_utils_pem.py function test_utils_pem_general (line 47) | def test_utils_pem_general(tmpdir): function test_utils_pem_general_without_c (line 500) | def test_utils_pem_general_without_c(tmpdir): FILE: tests/test_utils_sanitize.py class _ReprOnly (line 46) | class _ReprOnly: method __repr__ (line 49) | def __repr__(self) -> str: function test_sanitize_payload_passthrough_primitives (line 53) | def test_sanitize_payload_passthrough_primitives() -> None: function test_sanitize_payload_small_string_passthrough (line 62) | def test_sanitize_payload_small_string_passthrough() -> None: function test_sanitize_payload_large_string_is_summarized (line 68) | def test_sanitize_payload_large_string_is_summarized() -> None: function test_sanitize_payload_bytes_are_summarized_and_hash_is_bounded (line 80) | def test_sanitize_payload_bytes_are_summarized_and_hash_is_bounded() -> ... function test_sanitize_payload_dict_keys_are_sanitised_for_bytes (line 93) | def test_sanitize_payload_dict_keys_are_sanitised_for_bytes() -> None: function test_sanitize_payload_sequence_types (line 113) | def test_sanitize_payload_sequence_types() -> None: function test_sanitize_payload_recursive_structure_is_detected (line 135) | def test_sanitize_payload_recursive_structure_is_detected() -> None: function test_sanitize_payload_max_depth_truncation (line 145) | def test_sanitize_payload_max_depth_truncation() -> None: function test_sanitize_payload_max_items_truncation_in_list_branch (line 157) | def test_sanitize_payload_max_items_truncation_in_list_branch() -> None: function test_sanitize_payload_global_item_limit_guard_message (line 167) | def test_sanitize_payload_global_item_limit_guard_message() -> None: function test_sanitize_payload_falls_back_to_repr_for_unknown_objects (line 180) | def test_sanitize_payload_falls_back_to_repr_for_unknown_objects() -> None: function test_sanitize_payload_blob_key_enables_blob_mode_and_summarizes (line 185) | def test_sanitize_payload_blob_key_enables_blob_mode_and_summarizes() ->... function test_sanitize_payload_dict_key_passthrough_for_non_str_bytes_key (line 209) | def test_sanitize_payload_dict_key_passthrough_for_non_str_bytes_key() -... FILE: tests/test_utils_socket.py class _DummyFile (line 41) | class _DummyFile: method __init__ (line 42) | def __init__(self) -> None: method flush (line 46) | def flush(self) -> None: method close (line 49) | def close(self) -> None: class _DummySocket (line 53) | class _DummySocket: method __init__ (line 58) | def __init__(self) -> None: method setsockopt (line 67) | def setsockopt(self, *_args, **_kwargs) -> None: method bind (line 70) | def bind(self, *_args, **_kwargs) -> None: method fileno (line 73) | def fileno(self) -> int: method settimeout (line 76) | def settimeout(self, value): method setblocking (line 79) | def setblocking(self, value): method connect (line 82) | def connect(self, *_args, **_kwargs) -> None: method shutdown (line 85) | def shutdown(self, *_args, **_kwargs) -> None: method close (line 88) | def close(self) -> None: method getsockname (line 91) | def getsockname(self): method getpeername (line 94) | def getpeername(self): method makefile (line 97) | def makefile(self, *_args, **_kwargs): method recv (line 100) | def recv(self, *_args, **_kwargs): method send (line 105) | def send(self, *_args, **_kwargs): function test_utils_socket_timeout_coerce (line 111) | def test_utils_socket_timeout_coerce(): function test_utils_socket_properties_and_close_paths (line 144) | def test_utils_socket_properties_and_close_paths(): function test_utils_socket_read_write_no_socket (line 167) | def test_utils_socket_read_write_no_socket(): function test_utils_socket_can_read_write_select_error (line 174) | def test_utils_socket_can_read_write_select_error(): function test_utils_socket_can_read_write_socket_close (line 189) | def test_utils_socket_can_read_write_socket_close(): function test_utils_socket_server_hostname_for_tls (line 205) | def test_utils_socket_server_hostname_for_tls(): function test_utils_socket_server_hostname_for_tls_ip_reverse (line 214) | def test_utils_socket_server_hostname_for_tls_ip_reverse(): function test_utils_socket_build_ssl_context (line 233) | def test_utils_socket_build_ssl_context(): function test_utils_socket_start_tls_no_socket_raises (line 305) | def test_utils_socket_start_tls_no_socket_raises(): function test_utils_socket_start_tls_already_tls_noop (line 312) | def test_utils_socket_start_tls_already_tls_noop(): function test_utils_socket_tls_ssl_init_errors (line 322) | def test_utils_socket_tls_ssl_init_errors(): function test_utils_socket_tls_tests (line 347) | def test_utils_socket_tls_tests(): function test_utils_socket_connect (line 372) | def test_utils_socket_connect(): function test_utils_socket_read_nonblocking (line 396) | def test_utils_socket_read_nonblocking(): function test_utils_socket_read_blocking_timeout (line 416) | def test_utils_socket_read_blocking_timeout(): function test_utils_socket_read_blocking_edge_cases (line 436) | def test_utils_socket_read_blocking_edge_cases() -> None: function test_utils_socket_write_with_no_socket (line 471) | def test_utils_socket_write_with_no_socket(): function test_utils_socket_write_flush (line 482) | def test_utils_socket_write_flush(): function test_utils_socket_read_timeouts (line 518) | def test_utils_socket_read_timeouts(): function test_utils_socket_exceptions (line 534) | def test_utils_socket_exceptions(): function test_utils_socket_close_exceptions (line 539) | def test_utils_socket_close_exceptions(): function test_utils_socket_refresh (line 566) | def test_utils_socket_refresh(): function test_utils_socket_can_read_returns_bool (line 579) | def test_utils_socket_can_read_returns_bool(): function test_utils_socket_connect_bind (line 591) | def test_utils_socket_connect_bind(): function test_utils_socket_connect_settimeout_handling (line 604) | def test_utils_socket_connect_settimeout_handling(): function test_utils_socket_secure_connect (line 618) | def test_utils_socket_secure_connect(): function test_utils_socket_connect_exceptions (line 630) | def test_utils_socket_connect_exceptions(): function test_utils_socket_write_deadline (line 650) | def test_utils_socket_write_deadline(): function test_utils_socket_write_timeout (line 662) | def test_utils_socket_write_timeout(): function test_utils_socket_write_flush_edge_cases (line 685) | def test_utils_socket_write_flush_edge_cases(): function test_utils_socket_recv_error (line 706) | def test_utils_socket_recv_error(): function test_utils_socket_write_empty_payload_does_not_set_had_io (line 724) | def test_utils_socket_write_empty_payload_does_not_set_had_io() -> None: function test_utils_socket_write_handling (line 739) | def test_utils_socket_write_handling() -> None: function test_utils_socket_write_reconnect_continue_path_is_reached (line 764) | def test_utils_socket_write_reconnect_continue_path_is_reached() -> None: function test_utils_socket_read_reconnect_continue_path_is_reached (line 791) | def test_utils_socket_read_reconnect_continue_path_is_reached() -> None: function test_utils_socket_attempt_reconnect_retries_zero_returns_false (line 818) | def test_utils_socket_attempt_reconnect_retries_zero_returns_false() -> ... function test_utils_socket_read_blocking_connection (line 835) | def test_utils_socket_read_blocking_connection() -> None: function test_utils_socket_read_blocking (line 854) | def test_utils_socket_read_blocking() -> None: function test_utils_socket_read_edge_cases (line 899) | def test_utils_socket_read_edge_cases(): function test_utils_socket_attempt_reconnect_no_io (line 922) | def test_utils_socket_attempt_reconnect_no_io() -> None: function test_utils_socket_attempt_reconnect_connect_exception (line 944) | def test_utils_socket_attempt_reconnect_connect_exception() -> None: function test_utils_socket_ssl_read_blocking (line 966) | def test_utils_socket_ssl_read_blocking() -> None: