view tests/test_template_keywords.py @ 714:7e55483a56ca

help topic: cosmetic improvements. First, use of :hg:`...` is replaced with ``hg ...``. The former syntax isn't useful outside core Mercurial. Second, a few instances of `...` are replaced with ``...``. The minirst parser doesn't distinguish between the two, but using docutils, the former results italics and the latter in fixed width text. Finally, a few extra ``...`` are added. With these changes, we could process the help topic with rst2html and put it somewhere appropriate on the internet.
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Wed, 29 Sep 2010 18:04:26 +0200
parents cb32d90f915e
children af817963897e
line wrap: on
line source

import test_util

import unittest

from mercurial import commands
from mercurial import ui
try:
    from mercurial import templatekw
    templatekw.keywords
except ImportError:
    templatekw = 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):
    if 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: '))


def suite():
    all = [unittest.TestLoader().loadTestsFromTestCase(TestLogKeywords),]
    return unittest.TestSuite(all)