diff --git a/src/Site/Site.py b/src/Site/Site.py index ce31695a..a48d2818 100644 --- a/src/Site/Site.py +++ b/src/Site/Site.py @@ -681,13 +681,13 @@ class Site(object): delete_removed_files=False, load_includes=False ) if privatekey: - new_site.content_manager.sign(file_inner_path.replace("-default", ""), privatekey) + new_site.content_manager.sign(file_inner_path.replace("-default", ""), privatekey, remove_missing_optional=True) new_site.content_manager.loadContent( file_inner_path, add_bad_files=False, delete_removed_files=False, load_includes=False ) if privatekey: - new_site.content_manager.sign("content.json", privatekey) + new_site.content_manager.sign("content.json", privatekey, remove_missing_optional=True) new_site.content_manager.loadContent( "content.json", add_bad_files=False, delete_removed_files=False, load_includes=False ) diff --git a/src/Test/TestSite.py b/src/Test/TestSite.py index 368c6529..92f20081 100644 --- a/src/Test/TestSite.py +++ b/src/Test/TestSite.py @@ -29,6 +29,10 @@ class TestSite: assert new_site.storage.verifyFiles()["bad_files"] == [] # No bad files allowed assert new_site.storage.query("SELECT * FROM keyvalue WHERE key = 'title'").fetchone()["value"] == "MyZeroBlog" + # Optional files should be removed + + assert len(new_site.storage.loadJson("content.json").get("files_optional", {})) == 0 + # Test re-cloning (updating) # Changes in non-data files should be overwritten