annotate tests/test-log-exthook.t @ 40026:7e807b8a9e56

wireprotov2: client support for following content redirects And with the server actually sending content redirects, it is finally time to implement client support for following them! When a redirect response is seen, we wait until all data for that request has been received (it should be nearly immediate since no data is expected to follow the redirect message). Then we use a URL opener to make a request. We stuff that response into the client handler and construct a new response object to track it. When readdata() is called for servicing requests, we attempt to read data from the first redirected response. During data reading, data is processed similarly to as if it came from a frame payload. The existing test for the functionality demonstrates the client transparently following the redirect and obtaining the command response data from an alternate URL! There is still plenty of work to do here, including shoring up testing. I'm not convinced things will work in the presence of multiple redirect responses. And we don't yet implement support for integrity verification or configuring server certificates to validate the connection. But it's a start. And it should enable us to start experimenting with "real" caches. Differential Revision: https://phab.mercurial-scm.org/D4778
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 26 Sep 2018 18:08:08 -0700
parents 2b9f315a4217
children 005bc856e919
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33154
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
1 Test hg log changeset printer external hook
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
2 -------------------------------------------
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
3
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
4 $ cat > $TESTTMP/logexthook.py <<EOF
33964
bfafd189edd9 tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33154
diff changeset
5 > from __future__ import absolute_import
39657
2b9f315a4217 py3: use codecs.encode() to encode in rot-13 encoding
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 35888
diff changeset
6 > import codecs
33964
bfafd189edd9 tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33154
diff changeset
7 > from mercurial import (
bfafd189edd9 tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33154
diff changeset
8 > commands,
35888
c8e2d6ed1f9e cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents: 33964
diff changeset
9 > logcmdutil,
33964
bfafd189edd9 tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33154
diff changeset
10 > repair,
bfafd189edd9 tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33154
diff changeset
11 > )
33154
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
12 > def rot13description(self, ctx):
39657
2b9f315a4217 py3: use codecs.encode() to encode in rot-13 encoding
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 35888
diff changeset
13 > summary = codecs.encode("summary", 'rot-13')
33154
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
14 > description = ctx.description().strip().splitlines()[0].encode('rot13')
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
15 > self.ui.write("%s: %s\n" % (summary, description))
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
16 > def reposetup(ui, repo):
35888
c8e2d6ed1f9e cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents: 33964
diff changeset
17 > logcmdutil.changesetprinter._exthook = rot13description
33154
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
18 > EOF
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
19
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
20 Prepare the repository
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
21
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
22 $ hg init empty
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
23 $ cd empty
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
24 $ touch ROOT
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
25 $ hg commit -A -m "Root" ROOT
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
26
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
27 $ touch a b c
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
28 $ hg commit -A -m "Add A, B, C" a b c
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
29
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
30 Check the log
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
31
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
32 $ hg log --config extensions.t=$TESTTMP/logexthook.py
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
33 changeset: 1:70fc82b23320
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
34 tag: tip
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
35 user: test
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
36 date: Thu Jan 01 00:00:00 1970 +0000
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
37 fhzznel: Nqq N, O, P
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
38 summary: Add A, B, C
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
39
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
40 changeset: 0:b00443a54871
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
41 user: test
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
42 date: Thu Jan 01 00:00:00 1970 +0000
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
43 fhzznel: Ebbg
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
44 summary: Root
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
45
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
46 Check that exthook is working with graph log too
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
47
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
48 $ hg log -G --config extensions.t=$TESTTMP/logexthook.py
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
49 @ changeset: 1:70fc82b23320
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
50 | tag: tip
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
51 | user: test
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
52 | date: Thu Jan 01 00:00:00 1970 +0000
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
53 | fhzznel: Nqq N, O, P
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
54 | summary: Add A, B, C
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
55 |
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
56 o changeset: 0:b00443a54871
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
57 user: test
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
58 date: Thu Jan 01 00:00:00 1970 +0000
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
59 fhzznel: Ebbg
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
60 summary: Root
4ecc6047d45f log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
61