sapling/eden/scm/tests/test-walkrepo.py
Xavier Deguillard 467f4aef45 tests: mark python3 tests as passing
Summary:
Ran ./run-tests.py --json and used the following script:

  import json
  import subprocess

  with open("report.json", "r") as f:
      tests = json.load(f)
      for name, t in tests.items():
          if t["result"] == "success":
              print("%s successful" % name)
              subprocess.run("sed -i '/#require py2/d' %s" % name, shell=True)
              subprocess.run("sed -i '/require.*py2/d' %s" % name, shell=True)

Reviewed By: singhsrb

Differential Revision: D19664298

fbshipit-source-id: fa67c7c7abd110c9f0df9345daf09f2792aacd44
2020-01-31 10:13:45 -08:00

62 lines
1.9 KiB
Python

from __future__ import absolute_import, print_function
import os
from edenscm.mercurial import hg, scmutil, ui as uimod, util
from hghave import require
chdir = os.chdir
mkdir = os.mkdir
pjoin = os.path.join
walkrepos = scmutil.walkrepos
checklink = util.checklink
u = uimod.ui.load()
sym = checklink(".")
hg.repository(u, "top1", create=1)
mkdir("subdir")
chdir("subdir")
hg.repository(u, "sub1", create=1)
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) != 3):
print("reposet = %r" % (reposet,))
print(("Found %d repositories when I should have found 3" % (len(reposet),)))
if (not sym) and (len(reposet) != 2):
print("reposet = %r" % (reposet,))
print(("Found %d repositories when I should have found 2" % (len(reposet),)))
sub1set = frozenset((pjoin(".", "sub1"), pjoin(".", "circle", "subdir", "sub1")))
if len(sub1set & reposet) != 1:
print("sub1set = %r" % (sub1set,))
print("reposet = %r" % (reposet,))
print("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,))
print("sub2set and reposet should have exactly one path in common.")
sub3 = pjoin(".", "circle", "top1")
if sym and sub3 not in reposet:
print("reposet = %r" % (reposet,))
print("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()