tests/test-hgwebdir-paths.py
author Saurabh Singh <singhsrb@fb.com>
Mon, 16 Oct 2017 13:06:33 -0700
changeset 34792 3b4b38130689
parent 30564 d83ca854fa21
child 37923 81455f482478
permissions -rw-r--r--
test-hgweb-annotate-whitespace: make test compatible with chg D946 fixed a bunch of tests which had the same root cause. Please see that for details. This seems to be one of the newer tests which fails because of the same reason. Test Plan: Ran the test 'test-hgweb-annotate-whitespace.t' with and without the '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D1124

from __future__ import absolute_import

import os
from mercurial import (
    hg,
    ui as uimod,
)
from mercurial.hgweb import (
    hgwebdir_mod,
)
hgwebdir = hgwebdir_mod.hgwebdir

os.mkdir('webdir')
os.chdir('webdir')

webdir = os.path.realpath('.')

u = uimod.ui.load()
hg.repository(u, 'a', create=1)
hg.repository(u, 'b', create=1)
os.chdir('b')
hg.repository(u, 'd', create=1)
os.chdir('..')
hg.repository(u, 'c', create=1)
os.chdir('..')

paths = {'t/a/': '%s/a' % webdir,
         'b': '%s/b' % webdir,
         'coll': '%s/*' % webdir,
         'rcoll': '%s/**' % webdir}

config = os.path.join(webdir, 'hgwebdir.conf')
configfile = open(config, 'w')
configfile.write('[paths]\n')
for k, v in paths.items():
    configfile.write('%s = %s\n' % (k, v))
configfile.close()

confwd = hgwebdir(config)
dictwd = hgwebdir(paths)

assert len(confwd.repos) == len(dictwd.repos), 'different numbers'
assert len(confwd.repos) == 9, 'expected 9 repos, found %d' % len(confwd.repos)

found = dict(confwd.repos)
for key, path in dictwd.repos:
    assert key in found, 'repository %s was not found' % key
    assert found[key] == path, 'different paths for repo %s' % key