diff --git a/linkcheck/checker/urlbase.py b/linkcheck/checker/urlbase.py index 6f54e01c..f7539362 100644 --- a/linkcheck/checker/urlbase.py +++ b/linkcheck/checker/urlbase.py @@ -835,11 +835,9 @@ class UrlBase (object): self.aggregate.urlqueue.put(url_data) def parse_opera (self): - """ - Parse an opera bookmark file. - """ + """Parse an opera bookmark file.""" log.debug(LOG_CHECK, "Parsing Opera bookmarks %s", self) - name = "" + name = None lineno = 0 for line in self.get_content().splitlines(): lineno += 1 @@ -848,12 +846,13 @@ class UrlBase (object): name = line[5:] elif line.startswith("URL="): url = line[4:] - if url: + if url and name is not None: url_data = get_url_from(url, self.recursion_level+1, self.aggregate, parent_url=self.url, line=lineno, name=name) self.aggregate.urlqueue.put(url_data) - name = "" + else: + name = None def parse_text (self): """ diff --git a/tests/checker/test_file.py b/tests/checker/test_file.py index 27048ed4..1ae027e9 100644 --- a/tests/checker/test_file.py +++ b/tests/checker/test_file.py @@ -62,6 +62,10 @@ class TestFile (LinkCheckTest): """Test firefox 3 bookmark file parsing.""" self.file_test("places.sqlite") + def test_opera_bookmarks (self): + """Test Opera bookmark file parsing.""" + self.file_test("opera6.adr") + def test_good_file (self): url = u"file://%(curdir)s/%(datadir)s/file.txt" % self.get_attrs() nurl = self.norm(url)