diff --git a/contrib/web/test_debian_package_docs.py b/contrib/web/test_debian_package_docs.py new file mode 100644 index 0000000..4c95229 --- /dev/null +++ b/contrib/web/test_debian_package_docs.py @@ -0,0 +1,54 @@ +# File: contrib/web/test_debian_package_docs.py + +from __future__ import annotations + +import unittest +from pathlib import Path + + +class DebianPackageDocumentationTest(unittest.TestCase): + def test_native_website_initialization_creates_site_json(self) -> None: + repository = Path(__file__).resolve().parents[2] + readme = (repository / "debian" / "README.Debian").read_text( + encoding="utf-8" + ) + install_manifest = ( + repository / "debian" / "activity-relay.install" + ).read_text(encoding="utf-8") + + self.assertIn( + "contrib/web/site.json.example etc/activity-relay-web", + install_manifest, + ) + + rebuild_wrapper = ( + repository / "contrib" / "web" / "activity-relay-rebuild-site" + ).read_text(encoding="utf-8") + + copy_sequence = ( + " cp -an /usr/share/activity-relay/web/. " + "/etc/activity-relay-web/\n" + "\n" + " cp --update=none \\\n" + " /etc/activity-relay-web/site.json.example \\\n" + " /etc/activity-relay-web/site.json\n" + ) + + self.assertEqual(readme.count(copy_sequence), 1) + self.assertIn( + 'config_file="${ACTIVITY_RELAY_WEB_CONFIG:-' + '/etc/activity-relay-web/site.json}"', + rebuild_wrapper, + ) + self.assertLess( + readme.index(copy_sequence), + readme.index( + "Edit /etc/activity-relay-web/site.json and build the site" + ), + ) + + +if __name__ == "__main__": + unittest.main() + +# EOF: contrib/web/test_debian_package_docs.py diff --git a/debian/README.Debian b/debian/README.Debian index ac40402..74cdfd8 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -46,6 +46,10 @@ an editable copy without replacing existing files: cp -an /usr/share/activity-relay/web/. /etc/activity-relay-web/ + cp --update=none \ + /etc/activity-relay-web/site.json.example \ + /etc/activity-relay-web/site.json + Edit /etc/activity-relay-web/site.json and build the site with the current package-managed source: