2018-01-03 22:51:20 +03:00
|
|
|
# no-check-code -- see T24862348
|
|
|
|
|
2018-01-17 14:23:44 +03:00
|
|
|
import test_hgsubversion_util
|
2010-09-02 23:30:17 +04:00
|
|
|
|
|
|
|
from mercurial import commands
|
2010-10-05 18:26:19 +04:00
|
|
|
from mercurial import error
|
2010-09-02 23:30:17 +04:00
|
|
|
from mercurial import ui
|
2010-09-07 02:08:11 +04:00
|
|
|
try:
|
|
|
|
from mercurial import templatekw
|
|
|
|
templatekw.keywords
|
|
|
|
except ImportError:
|
|
|
|
templatekw = None
|
2010-09-02 23:30:17 +04:00
|
|
|
|
2010-10-05 18:26:19 +04:00
|
|
|
try:
|
|
|
|
from mercurial import revset
|
|
|
|
revset.methods
|
|
|
|
except ImportError:
|
2011-10-12 11:50:47 +04:00
|
|
|
revset = None
|
2010-09-02 23:30:17 +04:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2010-10-05 08:03:28 +04:00
|
|
|
|
2018-01-17 14:23:44 +03:00
|
|
|
class TestLogKeywords(test_hgsubversion_util.TestBase):
|
|
|
|
@test_hgsubversion_util.requiresmodule(templatekw)
|
2010-10-05 08:03:28 +04:00
|
|
|
def test_svn_keywords(self):
|
2014-05-02 17:27:31 +04:00
|
|
|
defaults = {'date': None, 'rev': None, 'user': None, 'graph': True}
|
2010-10-05 08:03:28 +04:00
|
|
|
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()
|
2014-05-02 17:27:31 +04:00
|
|
|
commands.log(ui, repo, template=(' rev: {rev} svnrev:{svnrev} '
|
|
|
|
'svnpath:{svnpath} svnuuid:{svnuuid}\n'),
|
|
|
|
**defaults)
|
|
|
|
print ui._output
|
|
|
|
self.assertEqual(ui._output.strip(), '''
|
|
|
|
rev: 2 svnrev: svnpath: svnuuid:
|
|
|
|
@
|
|
|
|
|
|
|
|
|
rev: 1 svnrev:3 svnpath:/trunk svnuuid:df2126f7-00ab-4d49-b42c-7e981dde0bcf
|
|
|
|
o
|
|
|
|
|
|
|
|
|
rev: 0 svnrev:2 svnpath:/trunk svnuuid:df2126f7-00ab-4d49-b42c-7e981dde0bcf
|
|
|
|
o
|
|
|
|
'''.strip())
|
2010-09-07 02:08:11 +04:00
|
|
|
|
2018-01-17 14:23:44 +03:00
|
|
|
@test_hgsubversion_util.requiresmodule(revset)
|
|
|
|
@test_hgsubversion_util.requiresmodule(templatekw)
|
2010-10-06 02:30:01 +04:00
|
|
|
def test_svn_revsets(self):
|
|
|
|
repo = self._load_fixture_and_fetch('two_revs.svndump')
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
# we want one commit that isn't from Subversion
|
|
|
|
self.commitchanges([('foo', 'foo', 'frobnicate\n')])
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
defaults = {'date': None, 'rev': ['fromsvn()'], 'user': None}
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
ui = CapturingUI()
|
|
|
|
commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults)
|
|
|
|
self.assertEqual(ui._output, '0:2 1:3 ')
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
defaults = {'date': None, 'rev': ['svnrev(2)'], 'user': None}
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
ui = CapturingUI()
|
|
|
|
commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults)
|
|
|
|
self.assertEqual(ui._output, '0:2 ')
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
defaults = {'date': None, 'rev': ['fromsvn(1)'], 'user': None}
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
self.assertRaises(error.ParseError,
|
|
|
|
commands.log, self.ui(), repo,
|
|
|
|
template='{rev}:{svnrev} ', **defaults)
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
defaults = {'date': None, 'rev': ['svnrev(1, 2)'], 'user': None}
|
2010-10-05 18:26:19 +04:00
|
|
|
|
2010-10-06 02:30:01 +04:00
|
|
|
self.assertRaises(error.ParseError,
|
|
|
|
commands.log, self.ui(), repo,
|
|
|
|
template='{rev}:{svnrev} ', **defaults)
|
2018-01-17 14:23:44 +03:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
import silenttestrunner
|
|
|
|
silenttestrunner.main(__name__)
|
|
|
|
|