summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJensDiemer <git@jensdiemer.de>2020-10-17 20:45:10 +0200
committerJensDiemer <git@jensdiemer.de>2020-10-17 20:49:21 +0200
commitb3a1ad6c5b887d7ba03acf112c84c82f3e0fb251 (patch)
treeed52f83f9116ecae04370afd20849f7548e0626f
parent37e288808b7a8dfccaf4b2cecfd5d836f3819d3e (diff)
downloadcreole-b3a1ad6c5b887d7ba03acf112c84c82f3e0fb251.tar.gz
Don't change timestamp in README.rst if content not changed
-rw-r--r--README.creole2
-rw-r--r--README.rst6
-rw-r--r--creole/setup_utils.py13
-rw-r--r--creole/tests/test_setup_utils.py15
4 files changed, 35 insertions, 1 deletions
diff --git a/README.creole b/README.creole
index 59661e4..cb70fb5 100644
--- a/README.creole
+++ b/README.creole
@@ -228,6 +228,8 @@ Note: In this case you must install **docutils**! See above.
= history =
* *dev* - [[https://github.com/jedie/python-creole/compare/v1.4.6...master|compare v1.4.6...master]]
+** {{{update_rst_readme()}}} will touch {{{README.rst}}} if there are not change (timestamp will not changed in file)
+** Some meta updates to project setup
** TBC
* v1.4.6 - 2020-02-13 - [[https://github.com/jedie/python-creole/compare/v1.4.5...v1.4.6|compare v1.4.5...v1.4.6]]
** less restricted dependency specification
diff --git a/README.rst b/README.rst
index f65a5e5..eb43978 100644
--- a/README.rst
+++ b/README.rst
@@ -300,6 +300,10 @@ history
* *dev* - `compare v1.4.6...master <https://github.com/jedie/python-creole/compare/v1.4.6...master>`_
+ * ``update_rst_readme()`` will touch ``README.rst`` if there are not change (timestamp will not changed in file)
+
+ * Some meta updates to project setup
+
* TBC
* v1.4.6 - 2020-02-13 - `compare v1.4.5...v1.4.6 <https://github.com/jedie/python-creole/compare/v1.4.5...v1.4.6>`_
@@ -675,4 +679,4 @@ donation
------------
-``Note: this file is generated from README.creole 2020-02-19 10:23:20 with "python-creole"`` \ No newline at end of file
+``Note: this file is generated from README.creole 2020-10-17 20:45:35 with "python-creole"`` \ No newline at end of file
diff --git a/creole/setup_utils.py b/creole/setup_utils.py
index 0fe1e24..2089c70 100644
--- a/creole/setup_utils.py
+++ b/creole/setup_utils.py
@@ -135,6 +135,19 @@ def update_rst_readme(package_root, filename='README.creole'):
rest_readme = _generate_rst_readme(creole_readme_path=creole_readme_path)
+ # Check if content was changed
+ changed = False
+ with rest_readme_path.open('r') as f:
+ for new_line, old_line in zip(rest_readme.splitlines(), f):
+ if new_line.rstrip() != old_line.rstrip():
+ changed = True
+ break
+
+ if not changed:
+ # The existing README.rst is up-to-date: Don't change the timestamp
+ print('nothing changed, ok.')
+ return rest_readme_path
+
with rest_readme_path.open('w') as f:
f.write(rest_readme)
diff --git a/creole/tests/test_setup_utils.py b/creole/tests/test_setup_utils.py
new file mode 100644
index 0000000..bb482f4
--- /dev/null
+++ b/creole/tests/test_setup_utils.py
@@ -0,0 +1,15 @@
+from pathlib import Path
+
+from creole.setup_utils import update_rst_readme
+from creole.tests.constants import CREOLE_PACKAGE_ROOT
+
+
+def test_update_rst_readme(capsys):
+ rest_readme_path = update_rst_readme(
+ package_root=CREOLE_PACKAGE_ROOT, filename='README.creole'
+ )
+ captured = capsys.readouterr()
+ assert captured.out == 'Generate README.rst from README.creole...nothing changed, ok.\n'
+ assert captured.err == ''
+ assert isinstance(rest_readme_path, Path)
+ assert str(rest_readme_path).endswith('/README.rst')