diff --git a/pelican/tests/content/article_with_metadata_explicit_date_implicit_modified.html b/pelican/tests/content/article_with_metadata_explicit_date_implicit_modified.html
new file mode 100644
index 00000000..b501ea29
--- /dev/null
+++ b/pelican/tests/content/article_with_metadata_explicit_date_implicit_modified.html
@@ -0,0 +1,15 @@
+
+
+ This is a super article !
+
+
+
+
+
+
+
+
+ Multi-line metadata should be supported
+ as well as inline markup.
+
+
diff --git a/pelican/tests/content/article_with_metadata_explicit_dates.html b/pelican/tests/content/article_with_metadata_explicit_dates.html
new file mode 100644
index 00000000..1c74f40e
--- /dev/null
+++ b/pelican/tests/content/article_with_metadata_explicit_dates.html
@@ -0,0 +1,16 @@
+
+
+ This is a super article !
+
+
+
+
+
+
+
+
+
+ Multi-line metadata should be supported
+ as well as inline markup.
+
+
diff --git a/pelican/tests/content/article_with_metadata_implicit_date_explicit_modified.html b/pelican/tests/content/article_with_metadata_implicit_date_explicit_modified.html
new file mode 100644
index 00000000..8cd2885b
--- /dev/null
+++ b/pelican/tests/content/article_with_metadata_implicit_date_explicit_modified.html
@@ -0,0 +1,15 @@
+
+
+ This is a super article !
+
+
+
+
+
+
+
+
+ Multi-line metadata should be supported
+ as well as inline markup.
+
+
diff --git a/pelican/tests/content/article_with_metadata_implicit_dates.html b/pelican/tests/content/article_with_metadata_implicit_dates.html
new file mode 100644
index 00000000..14d7e1e0
--- /dev/null
+++ b/pelican/tests/content/article_with_metadata_implicit_dates.html
@@ -0,0 +1,14 @@
+
+
+ This is a super article !
+
+
+
+
+
+
+
+ Multi-line metadata should be supported
+ as well as inline markup.
+
+
diff --git a/pelican/tests/test_readers.py b/pelican/tests/test_readers.py
index 3aced39e..eb755338 100644
--- a/pelican/tests/test_readers.py
+++ b/pelican/tests/test_readers.py
@@ -81,6 +81,50 @@ class DefaultReaderTest(ReaderTest):
with self.assertRaises(TypeError):
self.read_file(path='article_with_metadata.unknownextension')
+ def test_readfile_path_metadata_implicit_dates(self):
+ test_file = 'article_with_metadata_implicit_dates.html'
+ page = self.read_file(path=test_file, DEFAULT_DATE='fs')
+ expected = {
+ 'date': SafeDatetime.fromtimestamp(
+ os.stat(_path(test_file)).st_mtime),
+ 'modified': SafeDatetime.fromtimestamp(
+ os.stat(_path(test_file)).st_mtime)
+ }
+
+ self.assertDictHasSubset(page.metadata, expected)
+
+ def test_readfile_path_metadata_explicit_dates(self):
+ test_file = 'article_with_metadata_explicit_dates.html'
+ page = self.read_file(path=test_file, DEFAULT_DATE='fs')
+ expected = {
+ 'date': SafeDatetime(2010, 12, 2, 10, 14),
+ 'modified': SafeDatetime(2010, 12, 31, 23, 59)
+ }
+
+ self.assertDictHasSubset(page.metadata, expected)
+
+ def test_readfile_path_metadata_implicit_date_explicit_modified(self):
+ test_file = 'article_with_metadata_implicit_date_explicit_modified.html'
+ page = self.read_file(path=test_file, DEFAULT_DATE='fs')
+ expected = {
+ 'date': SafeDatetime.fromtimestamp(
+ os.stat(_path(test_file)).st_mtime),
+ 'modified': SafeDatetime(2010, 12, 2, 10, 14),
+ }
+
+ self.assertDictHasSubset(page.metadata, expected)
+
+ def test_readfile_path_metadata_explicit_date_implicit_modified(self):
+ test_file = 'article_with_metadata_explicit_date_implicit_modified.html'
+ page = self.read_file(path=test_file, DEFAULT_DATE='fs')
+ expected = {
+ 'date': SafeDatetime(2010, 12, 2, 10, 14),
+ 'modified': SafeDatetime.fromtimestamp(
+ os.stat(_path(test_file)).st_mtime)
+ }
+
+ self.assertDictHasSubset(page.metadata, expected)
+
@unittest.skipUnless(patch, 'Needs Mock module')
def test_find_empty_alt(self):
with patch('pelican.readers.logger') as log_mock: