Mercurial > hgsubversion
annotate tests/test_template_keywords.py @ 1081:c8d0f5983571
tests: cd to tempdir during setUp
Since we were running hg clone from the hgsubversion repo, we would
often pick up config settings from hgsubversion/.hg/hgrc, including
loading extensions. This caused tests to fail for me when they
asserted that obsolete is disabled because I have evolve enabled in my
hgsubversion checkout. This was probably decreasing the overall
stability of the test suite as well, since it meant that clones were
running with pretty much arbitrary configs settings.
Interestingly, the setUp was already keeping a record of the cwd
before creating the tempdir, and tearDown was already cd-ing back to
that directory.
author | David Schleimer <dschleimer@fb.com> |
---|---|
date | Wed, 14 Aug 2013 17:33:40 -0700 |
parents | d741f536f23a |
children | 8caf1226adec |
rev | line source |
---|---|
684
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
1 import test_util |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
2 |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
3 import unittest |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
4 |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
5 from mercurial import commands |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
6 from mercurial import error |
684
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
7 from mercurial import ui |
687
d424bd1ac647
templatekw: restore compatibility with hg < 1.5
Augie Fackler <durin42@gmail.com>
parents:
684
diff
changeset
|
8 try: |
d424bd1ac647
templatekw: restore compatibility with hg < 1.5
Augie Fackler <durin42@gmail.com>
parents:
684
diff
changeset
|
9 from mercurial import templatekw |
d424bd1ac647
templatekw: restore compatibility with hg < 1.5
Augie Fackler <durin42@gmail.com>
parents:
684
diff
changeset
|
10 templatekw.keywords |
d424bd1ac647
templatekw: restore compatibility with hg < 1.5
Augie Fackler <durin42@gmail.com>
parents:
684
diff
changeset
|
11 except ImportError: |
d424bd1ac647
templatekw: restore compatibility with hg < 1.5
Augie Fackler <durin42@gmail.com>
parents:
684
diff
changeset
|
12 templatekw = None |
684
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
13 |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
14 try: |
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
15 from mercurial import revset |
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
16 revset.methods |
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
17 except ImportError: |
835
f089ca13cc4c
test_template_keywords.py: fix indentation of revset except block
Yonggang Luo <luoyonggang@gmail.com>
parents:
833
diff
changeset
|
18 revset = None |
684
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
19 |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
20 class CapturingUI(ui.ui): |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
21 |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
22 def __init__(self, *args, **kwds): |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
23 super(CapturingUI, self).__init__(*args, **kwds) |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
24 self._output = "" |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
25 |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
26 def write(self, msg, *args, **kwds): |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
27 self._output += msg |
8687c5aa4f35
Add svnrev, svnpath and svnuuid keyword.
Andi Albrecht <albrecht.andi@gmail.com>
parents:
diff
changeset
|
28 |
721
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
29 |
707
cb32d90f915e
templatekw: clean up implementation & test; add help.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
687
diff
changeset
|
30 class TestLogKeywords(test_util.TestBase): |
721
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
31 @test_util.requiresmodule(templatekw) |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
32 def test_svn_keywords(self): |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
33 defaults = {'date': None, 'rev': None, 'user': None} |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
34 repo = self._load_fixture_and_fetch('two_revs.svndump') |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
35 |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
36 # we want one commit that isn't from Subversion |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
37 self.commitchanges([('foo', 'foo', 'frobnicate\n')]) |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
38 |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
39 ui = CapturingUI() |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
40 commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults) |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
41 self.assertEqual(ui._output, '0:2 1:3 2: ') |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
42 ui = CapturingUI() |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
43 commands.log(ui, repo, template='{rev}:{svnpath} ', **defaults) |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
44 self.assertEqual(ui._output, '0:/trunk 1:/trunk 2: ') |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
45 ui = CapturingUI() |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
46 commands.log(ui, repo, template='{rev}:{svnuuid} ', **defaults) |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
47 self.assertEqual(ui._output, |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
48 ('0:df2126f7-00ab-4d49-b42c-7e981dde0bcf ' |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
49 '1:df2126f7-00ab-4d49-b42c-7e981dde0bcf ' |
af817963897e
test_template_keywords: use new requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
707
diff
changeset
|
50 '2: ')) |
687
d424bd1ac647
templatekw: restore compatibility with hg < 1.5
Augie Fackler <durin42@gmail.com>
parents:
684
diff
changeset
|
51 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
52 @test_util.requiresmodule(revset) |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
53 @test_util.requiresmodule(templatekw) |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
54 def test_svn_revsets(self): |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
55 repo = self._load_fixture_and_fetch('two_revs.svndump') |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
56 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
57 # we want one commit that isn't from Subversion |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
58 self.commitchanges([('foo', 'foo', 'frobnicate\n')]) |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
59 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
60 defaults = {'date': None, 'rev': ['fromsvn()'], 'user': None} |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
61 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
62 ui = CapturingUI() |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
63 commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults) |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
64 self.assertEqual(ui._output, '0:2 1:3 ') |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
65 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
66 defaults = {'date': None, 'rev': ['svnrev(2)'], 'user': None} |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
67 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
68 ui = CapturingUI() |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
69 commands.log(ui, repo, template='{rev}:{svnrev} ', **defaults) |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
70 self.assertEqual(ui._output, '0:2 ') |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
71 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
72 defaults = {'date': None, 'rev': ['fromsvn(1)'], 'user': None} |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
73 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
74 self.assertRaises(error.ParseError, |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
75 commands.log, self.ui(), repo, |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
76 template='{rev}:{svnrev} ', **defaults) |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
77 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
78 defaults = {'date': None, 'rev': ['svnrev(1, 2)'], 'user': None} |
722
aa24148a7454
uisetup: add fromsvn() and svnrev() revsets.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
721
diff
changeset
|
79 |
723
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
80 self.assertRaises(error.ParseError, |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
81 commands.log, self.ui(), repo, |
4baa41e0f8ad
revset tests: use requiresmodule decorator
Augie Fackler <durin42@gmail.com>
parents:
722
diff
changeset
|
82 template='{rev}:{svnrev} ', **defaults) |