diff --git a/pelican/readers.py b/pelican/readers.py index 4542e608..e899838a 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -584,7 +584,7 @@ def find_empty_alt(content, path): # src before alt ]* - src=(['"])(.*)\1 + src=(['"])(.*?)\1 [^\>]* alt=(['"])\3 )|(?: @@ -593,7 +593,7 @@ def find_empty_alt(content, path): [^\>]* alt=(['"])\4 [^\>]* - src=(['"])(.*)\5 + src=(['"])(.*?)\5 ) """, re.X) for match in re.findall(imgs, content): diff --git a/pelican/tests/test_readers.py b/pelican/tests/test_readers.py index 9f13473e..ac0f81dc 100644 --- a/pelican/tests/test_readers.py +++ b/pelican/tests/test_readers.py @@ -9,6 +9,13 @@ from pelican import readers from pelican.tests.support import get_settings, unittest from pelican.utils import SafeDatetime +try: + from unittest.mock import patch +except ImportError: + try: + from mock import patch + except ImportError: + patch = False CUR_DIR = os.path.dirname(__file__) CONTENT_PATH = os.path.join(CUR_DIR, 'content') @@ -81,6 +88,22 @@ class DefaultReaderTest(ReaderTest): with self.assertRaises(TypeError): self.read_file(path='article_with_metadata.unknownextension') + @unittest.skipUnless(patch, 'Needs Mock module') + def test_find_empty_alt(self): + with patch('pelican.readers.logger') as log_mock: + content = ['', + ''] + + for tag in content: + readers.find_empty_alt(tag, '/test/path') + log_mock.warning.assert_called_with( + u'Empty alt attribute for image %s in %s', + u'test-image.png', + u'/test/path', + extra={'limit_msg': + 'Other images have empty alt attributes'} + ) + class RstReaderTest(ReaderTest):