view tests/test_diff.py @ 1055:2d7398fffd0d

push: obsolete rather than rebase & strip when enabled This requires a few changes to wrappers.push() to use obsolescence rather than strip and to make the rebase -- which is non-destructive with obsolete active -- to no longer keep the originals. Possible future work involves no longer relying on rebase for non-outgoing revisions, and simply leaving them in the troubled state. We test this feature by adding setting obsolete_mode_tests to True in classes that push changes.
author Dan Villiom Podlaski Christiansen <dan@cabo.dk>
date Fri, 09 Aug 2013 19:30:25 +0200
parents d741f536f23a
children c6b01fd34694
line wrap: on
line source

import test_util

import unittest

from mercurial import ui

from hgsubversion import wrappers

expected_diff_output = '''Index: alpha
===================================================================
--- alpha\t(revision 3)
+++ alpha\t(working copy)
@@ -1,1 +1,3 @@
-file: alpha
+alpha
+
+added line
Index: foo
===================================================================
new file mode 100644
--- foo\t(revision 0)
+++ foo\t(working copy)
@@ -0,0 +1,1 @@
+This is missing a newline.
\ No newline at end of file
'''

class DiffTests(test_util.TestBase):
    def test_diff_output(self):
        self._load_fixture_and_fetch('two_revs.svndump')
        self.commitchanges([('foo', 'foo', 'This is missing a newline.'),
                            ('alpha', 'alpha', 'alpha\n\nadded line\n'),
                            ])
        u = ui.ui()
        u.pushbuffer()
        wrappers.diff(lambda x, y, z: None, u, self.repo, svn=True)
        self.assertEqual(u.popbuffer(), expected_diff_output)