Mercurial > public > mercurial-scm > hg-stable
annotate tests/test-hg-parseurl.py @ 50220:02fe65f74be5
convert: use a priority queue for sorting commits, to make sorting faster
To achieve this, we turn commit sorters into classes so they can
encapsulate state.
This reduces the sorting time from ~30s to ~10s on a 500k-commit
prefix of a repo I tried to convert. (and probably reduces the time
to sort the whole repo from many tens of minutes to minutes, but I
didn't try that again)
The date caching gets removed because priority queue already
caches the key.
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Thu, 23 Feb 2023 23:25:28 +0100 |
parents | 6000f5b25c9b |
children | 493034cc3265 |
rev | line source |
---|---|
37713
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
1 import unittest |
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
2 |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
3 from mercurial.utils import urlutil |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
4 |
8174
29bc5d18714a
hg: allow hg.parseurl(url, None)
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
5 |
37713
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
6 class ParseRequestTests(unittest.TestCase): |
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
7 def testparse(self): |
8174
29bc5d18714a
hg: allow hg.parseurl(url, None)
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
8 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
9 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
10 urlutil.parseurl(b'http://example.com/no/anchor'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
11 (b'http://example.com/no/anchor', (None, [])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
12 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
13 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
14 urlutil.parseurl(b'http://example.com/an/anchor#foo'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
15 (b'http://example.com/an/anchor', (b'foo', [])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
16 ) |
37713
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
17 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
18 urlutil.parseurl( |
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
19 b'http://example.com/no/anchor/branches', [b'foo'] |
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
20 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
21 (b'http://example.com/no/anchor/branches', (None, [b'foo'])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
22 ) |
37713
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
23 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
24 urlutil.parseurl( |
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
25 b'http://example.com/an/anchor/branches#bar', [b'foo'] |
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
26 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
27 (b'http://example.com/an/anchor/branches', (b'bar', [b'foo'])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
28 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
29 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
30 urlutil.parseurl( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
31 b'http://example.com/an/anchor/branches-None#foo', None |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
32 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
33 (b'http://example.com/an/anchor/branches-None', (b'foo', [])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
34 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
35 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
36 urlutil.parseurl(b'http://example.com/'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
37 (b'http://example.com/', (None, [])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
38 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
39 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
40 urlutil.parseurl(b'http://example.com'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
41 (b'http://example.com/', (None, [])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
42 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
43 self.assertEqual( |
46908
4452cb788404
urlutil: extract `parseurl` from `hg` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43076
diff
changeset
|
44 urlutil.parseurl(b'http://example.com#foo'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
45 (b'http://example.com/', (b'foo', [])), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
46 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
47 |
37713
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
48 |
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
49 if __name__ == '__main__': |
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
50 import silenttestrunner |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37714
diff
changeset
|
51 |
37713
11d128a14ec0
tests: port test-hg-parseurl.py to unittest
Augie Fackler <augie@google.com>
parents:
28806
diff
changeset
|
52 silenttestrunner.main(__name__) |