tests/test-hg-parseurl.py
author Boris Feld <boris.feld@octobus.net>
Fri, 04 Jan 2019 02:29:04 +0100
changeset 41219 e5b227f41e4a
parent 37714 5dd71e9ae68a
child 43076 2372284d9457
permissions -rw-r--r--
revset: extract parsing logic out of formatspec We want to be able to perform better handling of some input when running revset (eg: `repo.revs("%ld", somerevs)`). The first step is to be able to access some of the parsed content before it gets substituted. There are many possible different substitutions, we'll add support for them gradually. In this changeset we support none, we just split some logic in a sub function as a preparatory step.

from __future__ import absolute_import, print_function

import unittest

from mercurial import (
    hg,
)

class ParseRequestTests(unittest.TestCase):
    def testparse(self):

        self.assertEqual(hg.parseurl(b'http://example.com/no/anchor'),
                         (b'http://example.com/no/anchor', (None, [])))
        self.assertEqual(hg.parseurl(b'http://example.com/an/anchor#foo'),
                         (b'http://example.com/an/anchor', (b'foo', [])))
        self.assertEqual(
            hg.parseurl(b'http://example.com/no/anchor/branches', [b'foo']),
            (b'http://example.com/no/anchor/branches', (None, [b'foo'])))
        self.assertEqual(
            hg.parseurl(b'http://example.com/an/anchor/branches#bar', [b'foo']),
            (b'http://example.com/an/anchor/branches', (b'bar', [b'foo'])))
        self.assertEqual(hg.parseurl(
            b'http://example.com/an/anchor/branches-None#foo', None),
            (b'http://example.com/an/anchor/branches-None', (b'foo', [])))
        self.assertEqual(hg.parseurl(b'http://example.com/'),
                         (b'http://example.com/', (None, [])))
        self.assertEqual(hg.parseurl(b'http://example.com'),
                         (b'http://example.com/', (None, [])))
        self.assertEqual(hg.parseurl(b'http://example.com#foo'),
                         (b'http://example.com/', (b'foo', [])))

if __name__ == '__main__':
    import silenttestrunner
    silenttestrunner.main(__name__)