annotate tests/test_fetch_symlinks.py @ 862:6ef6c413d6de

editor: work around svn 1.7 closing the output fp in apply_textdelta() Calling close() on the output cStringIO when done with patching prevents us to retrieve the result with getvalue(). Note: I found this bug has been fixed already by 794f3e41ec1e. I feel ignoring the close() call is a little cleaner than storing the value before the handler() call for there is no guarantee the handler does not modify the value in its last call. Looking at text_delta.c, it does not in 1.7.1. So, do what you want with this patch.
author Patrick Mezard <patrick@mezard.eu>
date Thu, 19 Apr 2012 15:08:09 +0200
parents 1d07e86f5797
children 04729f3a3d17
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
97
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
1 import test_util
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
2
643
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 145
diff changeset
3 import unittest
97
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
4
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
5 class TestFetchSymlinks(test_util.TestBase):
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
6 def _load_fixture_and_fetch(self, fixture_name, stupid):
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
7 return test_util.load_fixture_and_fetch(fixture_name, self.repo_path,
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
8 self.wc_path, stupid=stupid)
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
9
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
10 def test_symlinks(self, stupid=False):
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
11 repo = self._load_fixture_and_fetch('symlinks.svndump', stupid)
741
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
12 # Check symlinks throughout history
97
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
13 links = {
126
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
14 0: {
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
15 'linka': 'a',
145
b37c401b7f92 hg_delta_editor: reset properties of deleted entries
Patrick Mezard <pmezard@gmail.com>
parents: 126
diff changeset
16 'linka2': 'a',
126
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
17 'd/linka': 'a',
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
18 },
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
19 1: {
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
20 'linkaa': 'a',
145
b37c401b7f92 hg_delta_editor: reset properties of deleted entries
Patrick Mezard <pmezard@gmail.com>
parents: 126
diff changeset
21 'linka2': 'a',
126
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
22 'd2/linka': 'a',
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
23 },
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
24 2: {
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
25 'linkaa': 'b',
145
b37c401b7f92 hg_delta_editor: reset properties of deleted entries
Patrick Mezard <pmezard@gmail.com>
parents: 126
diff changeset
26 'linka2': 'a',
126
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
27 'd2/linka': 'b',
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
28 },
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
29 3: {
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
30 },
741
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
31 4: {
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
32 'linka3': 'a',
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
33 },
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
34 5: {
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
35 'linka3': 'a',
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
36 },
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
37 6: {
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
38 'linka3': 'a',
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
39 'linka4': 'link to this',
b3128fec5d54 editor: handle property changes to links.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
40 },
97
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
41 }
832
e9af7eba88db globally: clean up whitespace around operators and commas to conform with PEP8
Yonggang Luo <luoyonggang@gmail.com>
parents: 741
diff changeset
42
126
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
43 for rev in repo:
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
44 ctx = repo[rev]
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
45 for f in ctx.manifest():
859
1d07e86f5797 stupid: handle changes in svn 1.7 diff format
Patrick Mezard <patrick@mezard.eu>
parents: 833
diff changeset
46 l = 'l' in ctx[f].flags()
1d07e86f5797 stupid: handle changes in svn 1.7 diff format
Patrick Mezard <patrick@mezard.eu>
parents: 833
diff changeset
47 lref = f in links[rev]
1d07e86f5797 stupid: handle changes in svn 1.7 diff format
Patrick Mezard <patrick@mezard.eu>
parents: 833
diff changeset
48 self.assertEqual(lref, l, '%r != %r for %s@%r' % (lref, l, f, rev))
126
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
49 if f in links[rev]:
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
50 self.assertEqual(links[rev][f], ctx[f].data())
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
51 for f in links[rev]:
24a64fb0e74b run.py: register and develop test_fetch_symlinks
Patrick Mezard <pmezard@gmail.com>
parents: 101
diff changeset
52 self.assertTrue(f in ctx)
97
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
53
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
54 def test_symlinks_stupid(self):
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
55 self.test_symlinks(True)
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
56
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
57 def suite():
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 832
diff changeset
58 all_tests = [unittest.TestLoader().loadTestsFromTestCase(TestFetchSymlinks),
97
0d3a2a7cefa3 hg_delta_editor: fix symlink prefix confusion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
59 ]
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 832
diff changeset
60 return unittest.TestSuite(all_tests)