diff --git a/apprise/apprise.py b/apprise/apprise.py index 9af55b5f..b0f8dff4 100644 --- a/apprise/apprise.py +++ b/apprise/apprise.py @@ -759,7 +759,14 @@ class Apprise: """ Returns all of the loaded URLs defined in this apprise object. """ - return [x.url(privacy=privacy) for x in self.servers] + urls = [] + for s in self.servers: + if isinstance(s, (ConfigBase, AppriseConfig)): + for _s in s.servers(): + urls.append(_s.url(privacy=privacy)) + else: + urls.append(s.url(privacy=privacy)) + return urls def pop(self, index): """ diff --git a/test/test_apprise_config.py b/test/test_apprise_config.py index 4b1fb80d..12277573 100644 --- a/test/test_apprise_config.py +++ b/test/test_apprise_config.py @@ -895,6 +895,28 @@ include strict://{}""".format(str(cfg04), str(cfg04), str(cfg04))) assert len(ac.servers()) == 3 +def test_apprise_config_file_loading(tmpdir): + """ + API: AppriseConfig() URL Testing + + """ + + config_path = tmpdir / "apprise.yml" + + # Create a temporary config file + config_path.write("urls:\n - json://localhost") + + # Flow from README.md + ap = Apprise() + ap.add('xml://localhost') + config = AppriseConfig() + config.add(str(config_path)) + ap.add(config) + + # Using urls() + assert len(ap.urls()) == 2 + + def test_apprise_config_matrix_load(): """ API: AppriseConfig() matrix initialization