revlogv2: track pending write in the docket and expose it to hooks
The docket is now able to write pending data. We could have used a distinct
intermediate files, however keeping everything in the same file will make it
simpler to keep track of the various involved files if necessary.
However it might prove more complicated for streaming clone. This will be dealt
with later.
Note that we lifted the stderr redirection in the test since we no longer suffer
from "unkown working directory parent" message.
Differential Revision: https://phab.mercurial-scm.org/D10631
from __future__ import absolute_import, print_function
import unittest
from mercurial.utils import urlutil
class ParseRequestTests(unittest.TestCase):
def testparse(self):
self.assertEqual(
urlutil.parseurl(b'http://example.com/no/anchor'),
(b'http://example.com/no/anchor', (None, [])),
)
self.assertEqual(
urlutil.parseurl(b'http://example.com/an/anchor#foo'),
(b'http://example.com/an/anchor', (b'foo', [])),
)
self.assertEqual(
urlutil.parseurl(
b'http://example.com/no/anchor/branches', [b'foo']
),
(b'http://example.com/no/anchor/branches', (None, [b'foo'])),
)
self.assertEqual(
urlutil.parseurl(
b'http://example.com/an/anchor/branches#bar', [b'foo']
),
(b'http://example.com/an/anchor/branches', (b'bar', [b'foo'])),
)
self.assertEqual(
urlutil.parseurl(
b'http://example.com/an/anchor/branches-None#foo', None
),
(b'http://example.com/an/anchor/branches-None', (b'foo', [])),
)
self.assertEqual(
urlutil.parseurl(b'http://example.com/'),
(b'http://example.com/', (None, [])),
)
self.assertEqual(
urlutil.parseurl(b'http://example.com'),
(b'http://example.com/', (None, [])),
)
self.assertEqual(
urlutil.parseurl(b'http://example.com#foo'),
(b'http://example.com/', (b'foo', [])),
)
if __name__ == '__main__':
import silenttestrunner
silenttestrunner.main(__name__)