tests/test-hg-parseurl.py
author Gregory Szorc <gregory.szorc@gmail.com>
Thu, 02 Aug 2018 09:53:22 -0700
changeset 38886 66cf046ef60f
parent 37714 5dd71e9ae68a
child 43076 2372284d9457
permissions -rw-r--r--
changegroup: move revchunk() from narrow The monkeypatched revchunk for ellipses serving is a completely independent implementation. We model it as such in the changegroup code. revchunk() is now a simple proxy function. Again, I wish we had better APIs here. Especially since this narrow code is part of cg1packer and cg1packer can't be used with narrow. Class inheritance is wonky. And I will definitely be making changes to changegroup code for delta generation. As part of the code move, `node.nullrev` was replaced by `nullrev`. And a reference to `orig` was replaced to call `self._revchunknormal` directly. Differential Revision: https://phab.mercurial-scm.org/D4063

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__)