tests/test-hg-parseurl.py
author Yuya Nishihara <yuya@tcha.org>
Sat, 12 Oct 2019 23:34:05 +0900
changeset 44203 2a24ead003f0
parent 43076 2372284d9457
child 46908 4452cb788404
permissions -rw-r--r--
rust-cpython: add panicking version of borrow_mut() and use it The original borrow_mut() is renamed to try_borrow_mut(). Since leak_immutable() no longer incref the borrow count, the caller should know if the underlying value is borrowed or not. No Python world is involved. That's why we can simply use the panicking borrow_mut().

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