79 tmp_path: Path, monkeypatch,
81 """OI-518: ``run_docs_sphinx`` must not clobber a user's docs/README.md."""
82 root = tmp_path /
"proj"
84 docs.mkdir(parents=
True)
89 user_readme = docs /
"README.md"
90 user_readme.write_text(
"# Hand-written\n", encoding=
"utf-8")
91 (root /
"README.md").write_text(
"# Root\n", encoding=
"utf-8")
95 monkeypatch.setattr(oct_docs,
"_check_sphinx_deps",
lambda: [])
96 monkeypatch.setattr(oct_docs,
"setup_sphinx",
lambda r: r /
"docs")
97 monkeypatch.setattr(oct_docs,
"_generate_api_rst",
98 lambda r, d, c:
False)
99 monkeypatch.setattr(oct_docs,
"_generate_deps_rst",
lambda r, d:
False)
100 monkeypatch.setattr(oct_docs,
"_write_index_rst",
101 lambda *a, **kw:
None)
102 monkeypatch.setattr(oct_docs,
"run_sphinx_build",
lambda d, c: 0)
104 rc = oct_docs.run_docs_sphinx(root)
107 assert user_readme.read_text(encoding=
"utf-8") ==
"# Hand-written\n"
111 tmp_path: Path, monkeypatch,
113 """OI-518: a marker-carrying docs/README.md is refreshed from root."""
114 root = tmp_path /
"proj"
116 docs.mkdir(parents=
True)
120 (docs /
"README.md").write_text(
121 f
"{_AUTO_MARKER_MD}\n\n# Stale Root\n", encoding=
"utf-8",
123 (root /
"README.md").write_text(
"# Fresh Root\n", encoding=
"utf-8")
125 monkeypatch.setattr(oct_docs,
"_check_sphinx_deps",
lambda: [])
126 monkeypatch.setattr(oct_docs,
"setup_sphinx",
lambda r: r /
"docs")
127 monkeypatch.setattr(oct_docs,
"_generate_api_rst",
128 lambda r, d, c:
False)
129 monkeypatch.setattr(oct_docs,
"_generate_deps_rst",
lambda r, d:
False)
130 monkeypatch.setattr(oct_docs,
"_write_index_rst",
131 lambda *a, **kw:
None)
132 monkeypatch.setattr(oct_docs,
"run_sphinx_build",
lambda d, c: 0)
134 rc = oct_docs.run_docs_sphinx(root)
136 refreshed = (docs /
"README.md").read_text(encoding=
"utf-8")
137 assert "# Fresh Root" in refreshed
138 assert refreshed.startswith(_AUTO_MARKER_MD)