summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhut <hut@hut.pm>2018-01-26 16:02:23 +0100
committerhut <hut@hut.pm>2018-01-26 16:02:23 +0100
commita410d09312402d158322f324715d16a9f08caa5f (patch)
tree5b9909e8d12e97521367f5ccf492e8c57ed3c7ea
parente347b6cf556b4a39f5547ec9fd1ae5884d7820a9 (diff)
added test script that checks for man page completeness
-rwxr-xr-xtests/manpage_completion_test.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/manpage_completion_test.py b/tests/manpage_completion_test.py
new file mode 100755
index 00000000..bfc8fa22
--- /dev/null
+++ b/tests/manpage_completion_test.py
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+
+import os.path
+import re
+import sys
+
+
+# Add relevant ranger module to PATH... there surely is a better way to do this...
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
+
+
+def test(boolean, errormessage):
+ if not boolean:
+ sys.stderr.write('TEST FAILURE: ')
+ sys.stderr.write(errormessage)
+ sys.stderr.write('\n')
+ sys.stderr.flush()
+
+
+def get_path_of_man_page():
+ dirpath_of_this_file = os.path.dirname(__file__)
+ return os.path.join(dirpath_of_this_file, '..', 'doc', 'ranger.pod')
+
+
+def read_manpage():
+ path = get_path_of_man_page()
+ return open(path, 'r').read()
+
+
+def get_sections():
+ manpage = read_manpage()
+ parts = manpage.split('=head1 ')
+ sections = dict()
+ for part in parts:
+ if '\n' in part:
+ section_name, section_content = part.split('\n', 1)
+ sections[section_name] = section_content
+ else:
+ pass
+ return sections
+
+
+def check_if_settings_are_documented():
+ from ranger.container.settings import ALLOWED_SETTINGS
+ sections = get_sections()
+ setting_section = sections['SETTINGS']
+ matcher_pattern = r'^=item [\w\d_, ]*{setting}'
+ for setting in ALLOWED_SETTINGS:
+ matcher = re.compile(matcher_pattern.format(setting=setting), re.M)
+ test(matcher.search(setting_section), ('Setting %s is not documented in the man page!' % setting))
+
+
+if __name__ == '__main__':
+ check_if_settings_are_documented()