def test_config_base_config_parse(): """ API: ConfigBase.config_parse """ # Garbage Handling for garbage in (object(), None, 42): # A response is always correctly returned result = ConfigBase.config_parse(garbage) # response is a tuple... assert isinstance(result, tuple) # containing 2 items (plugins, config) assert len(result) == 2 # In the case of garbage in, we get garbage out; both lists are empty assert result == (list(), list()) # Valid Text Configuration result = ConfigBase.config_parse(""" # A comment line over top of a URL mailto://userb:[email protected] """, asset=AppriseAsset()) # We expect to parse 1 entry from the above assert isinstance(result, tuple) assert len(result) == 2 # The first element is the number of notification services processed assert len(result[0]) == 1 # If we index into the item, we can check to see the tags associate # with it assert len(result[0][0].tags) == 0 # The second is the number of configuration include lines parsed assert len(result[1]) == 0 # Valid Configuration result = ConfigBase.config_parse(""" # if no version is specified then version 1 is presumed version: 1 # # Define your notification urls: # urls: - pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b - mailto://test:[email protected] - syslog://: - tag: devops, admin """, asset=AppriseAsset()) # We expect to parse 3 entries from the above assert isinstance(result, tuple) assert len(result) == 2 assert isinstance(result[0], list) assert len(result[0]) == 3 assert len(result[0][0].tags) == 0 assert len(result[0][1].tags) == 0 assert len(result[0][2].tags) == 2 # Test case where we pass in a bad format result = ConfigBase.config_parse(""" ; A comment line over top of a URL mailto://userb:[email protected] """, config_format='invalid-format') # This is not parseable despite the valid text assert isinstance(result, tuple) assert isinstance(result[0], list) assert len(result[0]) == 0 result, _ = ConfigBase.config_parse(""" ; A comment line over top of a URL mailto://userb:[email protected] """, config_format=ConfigFormat.TEXT) # Parseable assert isinstance(result, list) assert len(result) == 1
def test_config_base_config_parse(): """ API: ConfigBase.config_parse """ # Garbage Handling assert isinstance(ConfigBase.config_parse(object()), list) assert isinstance(ConfigBase.config_parse(None), list) assert isinstance(ConfigBase.config_parse(''), list) assert isinstance(ConfigBase.config_parse(12), list) # Valid Text Configuration result = ConfigBase.config_parse(""" # A comment line over top of a URL mailto://userb:[email protected] """, asset=AppriseAsset()) # We expect to parse 1 entry from the above assert isinstance(result, list) assert len(result) == 1 assert len(result[0].tags) == 0 # Valid Configuration result = ConfigBase.config_parse(""" # if no version is specified then version 1 is presumed version: 1 # # Define your notification urls: # urls: - pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b - mailto://test:[email protected] - syslog://: - tag: devops, admin """, asset=AppriseAsset()) # We expect to parse 3 entries from the above assert isinstance(result, list) assert len(result) == 3 assert len(result[0].tags) == 0 assert len(result[1].tags) == 0 assert len(result[2].tags) == 2 # Test case where we pass in a bad format result = ConfigBase.config_parse(""" ; A comment line over top of a URL mailto://userb:[email protected] """, config_format='invalid-format') # This is not parseable despite the valid text assert isinstance(result, list) assert len(result) == 0 result = ConfigBase.config_parse(""" ; A comment line over top of a URL mailto://userb:[email protected] """, config_format=ConfigFormat.TEXT) # Parseable assert isinstance(result, list) assert len(result) == 1