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):