Mercurial > hg
view tests/test-walkrepo.py @ 7429:dbc40381620e
tests: Skip tests if they will fail because of outer repo
For different reasons these tests will fail if run in a tmpdir which is in a hg
repo.
The following three tests assumes no .hg in path dirs - I don't know how to
work around that:
* test-dispatch explicitly tests for no repo and expects "abort: There is no
Mercurial repository here (.hg not found)!"
* test-extension expects parentui to be None when not cd'ed to a repo dir
* test-globalopts tests that implicit -R works correctly - that could perhaps be
done from another repo instead of assuming no repo
The following two might be worth investigating further:
* test-convert-svn-sink fails for unknown reasons, starting with "abort:
unresolved merge conflicts (see hg resolve)"
* test-glog gets strange failures when testing "from outer space"
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Thu, 27 Nov 2008 00:57:31 +0100 |
parents | b1aea76f7001 |
children | 8649b2a3de75 85dc88630beb |
line wrap: on
line source
import os import os.path from mercurial import hg, ui from mercurial.util import walkrepos, set, frozenset from os import mkdir, chdir from os.path import join as pjoin u = ui.ui() sym = hasattr(os, 'symlink') and hasattr(os.path, 'samestat') hg.repository(u, 'top1', create=1) mkdir('subdir') chdir('subdir') hg.repository(u, 'sub1', create=1) chdir('sub1') hg.repository(u, 'inside_sub1', create=1) chdir('.hg') hg.repository(u, 'patches', create=1) chdir(os.path.pardir) chdir(os.path.pardir) mkdir('subsubdir') chdir('subsubdir') hg.repository(u, 'subsub1', create=1) chdir(os.path.pardir) if sym: os.symlink(os.path.pardir, 'circle') os.symlink(pjoin('subsubdir', 'subsub1'), 'subsub1') def runtest(): reposet = frozenset(walkrepos('.', followsym=True)) if sym and (len(reposet) != 5): print "reposet = %r" % (reposet,) raise SystemExit(1, "Found %d repositories when I should have found 5" % (len(reposet),)) if (not sym) and (len(reposet) != 4): print "reposet = %r" % (reposet,) raise SystemExit(1, "Found %d repositories when I should have found 4" % (len(reposet),)) sub1set = frozenset((pjoin('.', 'sub1'), pjoin('.', 'circle', 'subdir', 'sub1'))) if len(sub1set & reposet) != 1: print "sub1set = %r" % (sub1set,) print "reposet = %r" % (reposet,) raise SystemExit(1, "sub1set and reposet should have exactly one path in common.") sub2set = frozenset((pjoin('.', 'subsub1'), pjoin('.', 'subsubdir', 'subsub1'))) if len(sub2set & reposet) != 1: print "sub2set = %r" % (sub2set,) print "reposet = %r" % (reposet,) raise SystemExit(1, "sub1set and reposet should have exactly one path in common.") sub3 = pjoin('.', 'circle', 'top1') if sym and not (sub3 in reposet): print "reposet = %r" % (reposet,) raise SystemExit(1, "Symbolic links are supported and %s is not in reposet" % (sub3,)) runtest() if sym: # Simulate not having symlinks. del os.path.samestat sym = False runtest()