'Adds something to the end of the url (mutate the file being requested)
:param url: A URL to transform.
:return: A list of URL\'s that mutate the original url passed
as parameter.
>>> from w3af.core.data.parsers.doc.url import URL
>>> u = url_fuzzer()
>>> url = URL( \'http://www.w3af.com/\' )
>>> mutants = u._mutate_by_appending( url )
>>> list(mutants)
>>> url = URL( \'http://www.w3af.com/foo.html\' )
>>> mutants = u._mutate_by_appending( url )
>>> URL( \'http://www.w3af.com/foo.html~\' ) in mutants
True
>>> len(list(mutants)) > 20
True'

def _mutate_by_appending(self, url):

    if ((not url.url_string.endswith('/')) and (url.url_string.count('/') >= 3)):
        for to_append in self._appendables:
            url_copy = url.copy()
            filename = url_copy.get_file_name()
            filename += to_append
            url_copy.set_file_name(filename)
            (yield url_copy)
