diff tests/test_push_renames.py @ 329:235022089da6

merge with stable
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Sat, 09 May 2009 12:36:17 +0200
parents 067914ecb4eb
children c421e6bf0d95
line wrap: on
line diff
--- a/tests/test_push_renames.py
+++ b/tests/test_push_renames.py
@@ -49,6 +49,54 @@ class TestPushRenames(test_util.TestBase
         # self._debug_print_copies(tip)
         self.assertchanges(changes, tip)
 
+    def test_push_rename_tree(self):
+        repo = self.repo
+
+        changes = [
+            ('geek/alpha', 'geek/alpha', 'content',),
+            ('geek/beta', 'geek/beta', 'content',),
+            ('geek/delta', 'geek/delta', 'content',),
+            ('geek/gamma', 'geek/gamma', 'content',),
+            ('geek/later/pi', 'geek/later/pi', 'content geek/later/pi',),
+            ('geek/later/rho', 'geek/later/rho', 'content geek/later/rho', ),
+            ('geek/other/blah', 'geek/other/blah', 'content geek/other/blah', ),
+            ('geek/other/another/layer', 'geek/other/another/layer', 'content deep file', ),
+            ]
+
+        self.commitchanges(changes)
+        self.pushrevisions()
+        self.assertchanges(changes, self.repo['tip'])
+
+        changes = [
+            # rename (copy + remove) all of geek to greek
+            ('geek/alpha', 'greek/alpha', None, ),
+            ('geek/beta', 'greek/beta', None, ),
+            ('geek/delta', 'greek/delta', None, ),
+            ('geek/gamma', 'greek/gamma', None, ),
+            ('geek/later/pi', 'greek/later/pi', None, ),
+            ('geek/later/rho', 'greek/later/rho', None, ),
+            ('geek/other/blah', 'greek/other/blah', None, ),
+            ('geek/other/another/layer', 'greek/other/another/layer', None, ),
+
+            ('geek/alpha', None, None, ),
+            ('geek/beta', None, None, ),
+            ('geek/delta', None, None, ),
+            ('geek/gamma', None, None, ),
+            ('geek/later/pi', None, None, ),
+            ('geek/later/rho', None, None, ),
+            ('geek/other/blah', None, None, ),
+            ('geek/other/another/layer', None, None, ),
+            ]
+        self.commitchanges(changes)
+        self.pushrevisions()
+        # print '\n'.join(sorted(self.svnls('trunk')))
+        assert reduce(lambda x, y: x and y,
+                      ('geek' not in f for f in self.svnls('trunk'))),(
+            'This failure means rename of an entire tree is broken.'
+            ' There is a print on the preceding line commented out '
+            'that should help you.')
+
+
 def suite():
     all = [unittest.TestLoader().loadTestsFromTestCase(TestPushRenames),
           ]