[tor-commits] [stem/master] Show manual differnces in integ test
atagar at torproject.org
atagar at torproject.org
Sun Dec 6 21:57:12 UTC 2015
commit e506b0c7612fea030eb7973d622a37d5073ab172
Author: Damian Johnson <atagar at torproject.org>
Date: Sat Dec 5 16:21:47 2015 -0800
Show manual differnces in integ test
When our cached manual is out of date our test simply says 'they're different'.
Lovely, but lot better to give something more useful. ;)
---
cache_manual.py | 23 +----------------------
stem/manual.py | 32 ++++++++++++++++++++++++++++++++
test/integ/manual.py | 2 +-
3 files changed, 34 insertions(+), 23 deletions(-)
diff --git a/cache_manual.py b/cache_manual.py
index 24d8bb7..eedb1ed 100755
--- a/cache_manual.py
+++ b/cache_manual.py
@@ -49,28 +49,7 @@ if __name__ == '__main__':
sys.exit(0)
print('Differences detected...\n')
-
- for attr in ('name', 'synopsis', 'description', 'commandline_options', 'signals', 'files', 'config_options'):
- cached_attr = getattr(cached_manual, attr)
- latest_attr = getattr(latest_manual, attr)
-
- if cached_attr != latest_attr:
- print("* Manual's %s attribute changed\n" % attr)
-
- if attr in ('name', 'synopsis', 'description'):
- print(' Previously...\n\n%s\n' % cached_attr)
- print(' Updating to...\n\n%s' % latest_attr)
- else:
- added_items = set(latest_attr.items()).difference(cached_attr.items())
- removed_items = set(cached_attr.items()).difference(latest_attr.items())
-
- for added_item in added_items:
- print(' adding %s => %s' % added_item)
-
- for removed_item in removed_items:
- print(' removing %s => %s' % removed_item)
-
- print('\n')
+ print(stem.manual._manual_differences(cached_manual, latest_manual))
latest_manual.man_commit = man_commit
latest_manual.stem_commit = stem_commit
diff --git a/stem/manual.py b/stem/manual.py
index c55d72c..24ec447 100644
--- a/stem/manual.py
+++ b/stem/manual.py
@@ -130,6 +130,38 @@ def _config(lowercase = True):
return {}
+def _manual_differences(previous_manual, new_manual):
+ """
+ Provides a description of how two manuals differ.
+ """
+
+ lines = []
+
+ for attr in ('name', 'synopsis', 'description', 'commandline_options', 'signals', 'files', 'config_options'):
+ previous_attr = getattr(previous_manual, attr)
+ new_attr = getattr(new_manual, attr)
+
+ if previous_attr != new_attr:
+ lines.append("* Manual's %s attribute changed\n" % attr)
+
+ if attr in ('name', 'synopsis', 'description'):
+ lines.append(' Previously...\n\n%s\n' % previous_attr)
+ lines.append(' Updating to...\n\n%s' % new_attr)
+ else:
+ added_items = set(new_attr.items()).difference(previous_attr.items())
+ removed_items = set(previous_attr.items()).difference(new_attr.items())
+
+ for added_item in added_items:
+ lines.append(' adding %s => %s' % added_item)
+
+ for removed_item in removed_items:
+ lines.append(' removing %s => %s' % removed_item)
+
+ lines.append('\n')
+
+ return '\n'.join(lines)
+
+
def is_important(option):
"""
Indicates if a configuration option of particularly common importance or not.
diff --git a/test/integ/manual.py b/test/integ/manual.py
index 573ee2f..c961101 100644
--- a/test/integ/manual.py
+++ b/test/integ/manual.py
@@ -199,7 +199,7 @@ class TestManual(unittest.TestCase):
latest_manual = stem.manual.Manual.from_man(self.man_path)
if cached_manual != latest_manual:
- self.fail("Stem's cached manual information is out of date. Please run 'cache_manual.py'.")
+ self.fail("Stem's cached manual information is out of date. Please run 'cache_manual.py'...\n\n%s" % stem.manual._manual_differences(cached_manual, latest_manual))
def test_attributes(self):
"""
More information about the tor-commits
mailing list