Mercurial > hgsubversion
annotate tests/test_fetch_dir_removal.py @ 1539:0ebcc5bbf692
tests: when making a `memctx`, make sure to use a single repo instance
The way self.repo is dynamic produces bad lock behavior because the
`context.memctx` ends up with a different instance than self in
`localrepo.commitctx`, which means the callbacks in the `memctx` get
an unlocked repo instance. This causes lock warning failures. When
it's not a code freeze for core, we should probably:
* Make lock failures hard, not just warnings
* Stop holding a repo reference in memctx, or otherwise check it's the same
instance as `self` during `localrepo.commitctx`
That's my best guess based on the (very hard to debug) test failures here.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sat, 28 Oct 2017 21:34:52 -0400 |
parents | 8c7dae2e0f54 |
children |
rev | line source |
---|---|
1509
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
1 import test_util |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
2 |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
3 import sys |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
4 import unittest |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
5 |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
6 class TestFetchDirectoryRemoval(test_util.TestBase): |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
7 stupid_mode_tests = True |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
8 |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
9 def test_removal(self): |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
10 repo = self._load_fixture_and_fetch('dir_removal.svndump', |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
11 layout='single', |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
12 subdir='dir1') |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
13 self.assertEqual(sorted(repo['tip'].manifest().keys()), |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
14 ['1.txt', 'dir2/2.txt']) |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
15 extra = repo['tip'].extra().copy() |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
16 extra.pop('convert_revision', None) |
8c7dae2e0f54
svnwrap: don't add paths to revision outside of subdir
Ivan Lezhankin <ilezhankin@yandex-team.ru>
parents:
diff
changeset
|
17 self.assertEqual(extra, {'branch': 'default'}) |