Mercurial > hgsubversion
view tests/test_template_keywords.py @ 741:b3128fec5d54
editor: handle property changes to links.
Previously, property changes to links caused 'link ' to be prepended
to the link destination. Removing a line that prepended it in
Revision::set() appears to fix it. In these cases, the "file marked as
link, but contains data" warning might be triggered. This should be
safe, so it's lowered to a note and the language made less conclusive.
In order to test this, extra revisions are added to the
'symlinks.svndump' fixture. As one of the new revisions add a link
that points to 'link to this', a check that asserted that link
destinations must not start with 'link ' was removed. This change is
safe, as the test later on asserts exact equality with the contents of
the 'links' dictionary.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Tue, 09 Nov 2010 13:05:16 +0100 |
parents | 4baa41e0f8ad |
children | e9af7eba88db |
line wrap: on
line source
import test_util import unittest from mercurial import commands from mercurial import error from mercurial import ui try: from mercurial import templatekw templatekw.keywords except ImportError: templatekw = None try: from mercurial import revset revset.methods except ImportError: revset = None class CapturingUI(ui.ui): def __init__(self, *args, **kwds): super(CapturingUI, self).__init__(*args, **kwds) self._output = "" def write(self, msg, *args, **kwds): self._output += msg class TestLogKeywords(test_util.TestBase): @test_util.requiresmodule(templatekw) def test_svn_keywords(self): defaults = {'date': None, 'rev': None, 'user': None} repo = self._load_fixture_and_fetch('two_revs.svndump') # we want one commit that isn't from Subversion self.commitchanges([('foo', 'foo', 'frobnicate\n')]) ui = CapturingUI() commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults) self.assertEqual(ui._output, '0:2 1:3 2: ') ui = CapturingUI() commands.log(ui, repo, template='{rev}:{svnpath} ', **defaults) self.assertEqual(ui._output, '0:/trunk 1:/trunk 2: ') ui = CapturingUI() commands.log(ui, repo, template='{rev}:{svnuuid} ', **defaults) self.assertEqual(ui._output, ('0:df2126f7-00ab-4d49-b42c-7e981dde0bcf ' '1:df2126f7-00ab-4d49-b42c-7e981dde0bcf ' '2: ')) @test_util.requiresmodule(revset) @test_util.requiresmodule(templatekw) def test_svn_revsets(self): repo = self._load_fixture_and_fetch('two_revs.svndump') # we want one commit that isn't from Subversion self.commitchanges([('foo', 'foo', 'frobnicate\n')]) defaults = {'date': None, 'rev': ['fromsvn()'], 'user': None} ui = CapturingUI() commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults) self.assertEqual(ui._output, '0:2 1:3 ') defaults = {'date': None, 'rev': ['svnrev(2)'], 'user': None} ui = CapturingUI() commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults) self.assertEqual(ui._output, '0:2 ') defaults = {'date': None, 'rev': ['fromsvn(1)'], 'user': None} self.assertRaises(error.ParseError, commands.log, self.ui(), repo, template='{rev}:{svnrev} ', **defaults) defaults = {'date': None, 'rev': ['svnrev(1, 2)'], 'user': None} self.assertRaises(error.ParseError, commands.log, self.ui(), repo, template='{rev}:{svnrev} ', **defaults) def suite(): all = [unittest.TestLoader().loadTestsFromTestCase(TestLogKeywords),] return unittest.TestSuite(all)