Rev 4807: No test was exercising the faulty code path. in file:///home/vila/src/bzr/releases/2.1.0/

Vincent Ladeuil v.ladeuil+lp at free.fr
Mon Feb 1 17:29:45 GMT 2010


At file:///home/vila/src/bzr/releases/2.1.0/

------------------------------------------------------------
revno: 4807
revision-id: v.ladeuil+lp at free.fr-20100201172944-u41q2lw8jehlojv5
parent: pqm at pqm.ubuntu.com-20100130093410-xyutv8mobva3juuo
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 2.1.0
timestamp: Mon 2010-02-01 18:29:44 +0100
message:
  No test was exercising the faulty code path.
  
  * bzrlib/tests/test_merge.py:
  (TestConfigurableFileMerger.test_affected_files_cached.SimplePlan):
  Make the test really do something to at least provide a minimal
  coverage.
  
  * bzrlib/merge.py:
  (ConfigurableFileMerger.merge_contents): Fix typo.
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2010-01-30 09:01:03 +0000
+++ b/NEWS	2010-02-01 17:29:44 +0000
@@ -26,6 +26,9 @@
   increase memory pressure on processes using threads.
   (Robert Collins, John Arbash Meinel, #514090)
 
+* The new ``merge_file_content`` should now be ok with tests to avoid
+  regressions.
+  (Vincent Ladeuil)
 
 bzr 2.1.0rc2
 ############

=== modified file 'bzrlib/merge.py'
--- a/bzrlib/merge.py	2010-01-28 18:05:44 +0000
+++ b/bzrlib/merge.py	2010-02-01 17:29:44 +0000
@@ -99,9 +99,14 @@
     This is a base class for concrete custom file merging logic. Concrete
     classes should implement ``merge_text``.
 
+    See ``bzrlib.plugins.news_merge.news_merge`` for an example concrete class.
+    
     :ivar affected_files: The configured file paths to merge.
+
     :cvar name_prefix: The prefix to use when looking up configuration
-        details.
+        details. <name_prefix>_merge_files describes the files targeted by the
+        hook for example.
+        
     :cvar default_files: The default file paths to merge when no configuration
         is present.
     """
@@ -118,6 +123,11 @@
             raise ValueError("name_prefix must be set.")
 
     def filename_matches_config(self, params):
+        """Check whether the file should call the merge hook.
+
+        <name_prefix>_merge_files configuration variable is a list of files
+        that should use the hook.
+        """
         affected_files = self.affected_files
         if affected_files is None:
             config = self.merger.this_tree.branch.get_config()
@@ -150,7 +160,7 @@
             # option.
             not self.filename_matches_config(params)):
             return 'not_applicable', None
-        return self.merge_text(self, params)
+        return self.merge_text(params)
 
     def merge_text(self, params):
         """Merge the byte contents of a single file.

=== modified file 'bzrlib/tests/test_merge.py'
--- a/bzrlib/tests/test_merge.py	2010-01-28 18:05:44 +0000
+++ b/bzrlib/tests/test_merge.py	2010-02-01 17:29:44 +0000
@@ -2845,20 +2845,20 @@
         """Ensures that the config variable is cached"""
         class SimplePlan(_mod_merge.ConfigurableFileMerger):
             name_prefix = "foo"
-            default_files = ["my default"]
+            default_files = ['bar']
             def merge_text(self, params):
-                return ('not applicable', None)
+                return ('not_applicable', None)
         def factory(merger):
             result = SimplePlan(merger)
             self.assertEqual(None, result.affected_files)
             self.merger = result
             return result
         _mod_merge.Merger.hooks.install_named_hook('merge_file_content',
-            factory, 'test factory')
+                                                   factory, 'test factory')
         builder = test_merge_core.MergeBuilder(self.test_base_dir)
         self.addCleanup(builder.cleanup)
-        builder.add_file('NEWS', builder.tree_root, 'name1', 'text1', True)
-        builder.change_contents('NEWS', other='text4', this='text3')
+        builder.add_file('bar-id', builder.tree_root, 'bar', 'text1', True)
+        builder.change_contents('bar-id', other='text4', this='text3')
         conflicts = builder.merge()
         # The hook should set the variable
-        self.assertEqual(["my default"], self.merger.affected_files)
+        self.assertEqual(['bar'], self.merger.affected_files)



More information about the bazaar-commits mailing list