Mercurial > hg
annotate tests/test-check-interfaces.py @ 39118:1415b78869eb
patchbomb: allow using HGHOSTNAME to force a hostname
I'll update run-tests.py to set this globally to stabilize some
tests. The variable name is intentionally generic because I suspect we
should generalize this to other tests.
Differential Revision: https://phab.mercurial-scm.org/D4294
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Thu, 16 Aug 2018 00:40:20 -0400 |
parents | c82ea938efbb |
children | b518d495a560 |
rev | line source |
---|---|
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
1 # Test that certain objects conform to well-defined interfaces. |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
2 |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
3 from __future__ import absolute_import, print_function |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
4 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
5 from mercurial import encoding |
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
6 encoding.environ[b'HGREALINTERFACES'] = b'1' |
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
7 |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
8 import os |
37814
265c122b69aa
tests: mark test-check-interfaces.py as requiring a repo
Martin von Zweigbergk <martinvonz@google.com>
parents:
37810
diff
changeset
|
9 import subprocess |
265c122b69aa
tests: mark test-check-interfaces.py as requiring a repo
Martin von Zweigbergk <martinvonz@google.com>
parents:
37810
diff
changeset
|
10 import sys |
265c122b69aa
tests: mark test-check-interfaces.py as requiring a repo
Martin von Zweigbergk <martinvonz@google.com>
parents:
37810
diff
changeset
|
11 |
265c122b69aa
tests: mark test-check-interfaces.py as requiring a repo
Martin von Zweigbergk <martinvonz@google.com>
parents:
37810
diff
changeset
|
12 # Only run if tests are run in a repo |
265c122b69aa
tests: mark test-check-interfaces.py as requiring a repo
Martin von Zweigbergk <martinvonz@google.com>
parents:
37810
diff
changeset
|
13 if subprocess.call(['python', '%s/hghave' % os.environ['TESTDIR'], |
265c122b69aa
tests: mark test-check-interfaces.py as requiring a repo
Martin von Zweigbergk <martinvonz@google.com>
parents:
37810
diff
changeset
|
14 'test-repo']): |
265c122b69aa
tests: mark test-check-interfaces.py as requiring a repo
Martin von Zweigbergk <martinvonz@google.com>
parents:
37810
diff
changeset
|
15 sys.exit(80) |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
16 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
17 from mercurial.thirdparty.zope import ( |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
18 interface as zi, |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
19 ) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
20 from mercurial.thirdparty.zope.interface import ( |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
21 verify as ziverify, |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
22 ) |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
23 from mercurial import ( |
34307
afcbc6f64d27
tests: add interface checks for bundle, statichttp, and union peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33807
diff
changeset
|
24 bundlerepo, |
37441
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
25 filelog, |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
26 httppeer, |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
27 localrepo, |
38530
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
28 manifest, |
37870
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
29 pycompat, |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
30 repository, |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
31 sshpeer, |
34307
afcbc6f64d27
tests: add interface checks for bundle, statichttp, and union peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33807
diff
changeset
|
32 statichttprepo, |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
33 ui as uimod, |
34307
afcbc6f64d27
tests: add interface checks for bundle, statichttp, and union peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33807
diff
changeset
|
34 unionrepo, |
37441
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
35 vfs as vfsmod, |
37296
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
36 wireprotoserver, |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
37 wireprototypes, |
37630
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
38 wireprotov1peer, |
37545
93397c4633f6
wireproto: extract HTTP version 2 code to own module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37441
diff
changeset
|
39 wireprotov2server, |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
40 ) |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
41 |
37870
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
42 rootdir = pycompat.fsencode( |
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
43 os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))) |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
44 |
37441
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
45 def checkzobject(o, allowextra=False): |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
46 """Verify an object with a zope interface.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
47 ifaces = zi.providedBy(o) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
48 if not ifaces: |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
49 print('%r does not provide any zope interfaces' % o) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
50 return |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
51 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
52 # Run zope.interface's built-in verification routine. This verifies that |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
53 # everything that is supposed to be present is present. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
54 for iface in ifaces: |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
55 ziverify.verifyObject(iface, o) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
56 |
37441
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
57 if allowextra: |
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
58 return |
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
59 |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
60 # Now verify that the object provides no extra public attributes that |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
61 # aren't declared as part of interfaces. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
62 allowed = set() |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
63 for iface in ifaces: |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
64 allowed |= set(iface.names(all=True)) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
65 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
66 public = {a for a in dir(o) if not a.startswith('_')} |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
67 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
68 for attr in sorted(public - allowed): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
69 print('public attribute not declared in interfaces: %s.%s' % ( |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
70 o.__class__.__name__, attr)) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
71 |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
72 # Facilitates testing localpeer. |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
73 class dummyrepo(object): |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
74 def __init__(self): |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
75 self.ui = uimod.ui() |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
76 def filtered(self, name): |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
77 pass |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
78 def _restrictcapabilities(self, caps): |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
79 pass |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
80 |
37006
8e89c2bec1f7
httppeer: refactor how httppeer is created (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36370
diff
changeset
|
81 class dummyopener(object): |
8e89c2bec1f7
httppeer: refactor how httppeer is created (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36370
diff
changeset
|
82 handlers = [] |
8e89c2bec1f7
httppeer: refactor how httppeer is created (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36370
diff
changeset
|
83 |
37552
8b8a845c85fc
httppeer: perform capabilities request in makepeer()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37547
diff
changeset
|
84 # Facilitates testing sshpeer without requiring a server. |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
85 class badpeer(httppeer.httppeer): |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
86 def __init__(self): |
37552
8b8a845c85fc
httppeer: perform capabilities request in makepeer()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37547
diff
changeset
|
87 super(badpeer, self).__init__(None, None, None, dummyopener(), None, |
8b8a845c85fc
httppeer: perform capabilities request in makepeer()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37547
diff
changeset
|
88 None) |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
89 self.badattribute = True |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
90 |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
91 def badmethod(self): |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
92 pass |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
93 |
36370
11ba1a96f946
sshpeer: defer pipe buffering and stderr sidechannel binding
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35978
diff
changeset
|
94 class dummypipe(object): |
11ba1a96f946
sshpeer: defer pipe buffering and stderr sidechannel binding
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35978
diff
changeset
|
95 def close(self): |
11ba1a96f946
sshpeer: defer pipe buffering and stderr sidechannel binding
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35978
diff
changeset
|
96 pass |
11ba1a96f946
sshpeer: defer pipe buffering and stderr sidechannel binding
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35978
diff
changeset
|
97 |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
98 def main(): |
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
99 ui = uimod.ui() |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
100 # Needed so we can open a local repo with obsstore without a warning. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
101 ui.setconfig('experimental', 'evolution.createmarkers', True) |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
102 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
103 checkzobject(badpeer()) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
104 |
37635
cc8c06835097
wireproto: convert legacy commands to command executor
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37630
diff
changeset
|
105 ziverify.verifyClass(repository.ipeerbase, httppeer.httppeer) |
37552
8b8a845c85fc
httppeer: perform capabilities request in makepeer()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37547
diff
changeset
|
106 checkzobject(httppeer.httppeer(None, None, None, dummyopener(), None, None)) |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
107 |
37609
01bfe5ad0c53
httppeer: implement ipeerconnection
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37552
diff
changeset
|
108 ziverify.verifyClass(repository.ipeerconnection, |
01bfe5ad0c53
httppeer: implement ipeerconnection
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37552
diff
changeset
|
109 httppeer.httpv2peer) |
37611
ae8730877371
httppeer: basic implementation of capabilities interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37609
diff
changeset
|
110 ziverify.verifyClass(repository.ipeercapabilities, |
ae8730877371
httppeer: basic implementation of capabilities interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37609
diff
changeset
|
111 httppeer.httpv2peer) |
37870
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
112 checkzobject(httppeer.httpv2peer(None, b'', b'', None, None, None)) |
37609
01bfe5ad0c53
httppeer: implement ipeerconnection
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37552
diff
changeset
|
113 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
114 ziverify.verifyClass(repository.ipeerbase, |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
115 localrepo.localpeer) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
116 checkzobject(localrepo.localpeer(dummyrepo())) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
117 |
37630
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
118 ziverify.verifyClass(repository.ipeercommandexecutor, |
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
119 localrepo.localcommandexecutor) |
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
120 checkzobject(localrepo.localcommandexecutor(None)) |
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
121 |
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
122 ziverify.verifyClass(repository.ipeercommandexecutor, |
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
123 wireprotov1peer.peerexecutor) |
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
124 checkzobject(wireprotov1peer.peerexecutor(None)) |
e1b32dc4646c
wireproto: implement command executor interface for version 1 peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37611
diff
changeset
|
125 |
37635
cc8c06835097
wireproto: convert legacy commands to command executor
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37630
diff
changeset
|
126 ziverify.verifyClass(repository.ipeerbase, sshpeer.sshv1peer) |
37870
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
127 checkzobject(sshpeer.sshv1peer(ui, b'ssh://localhost/foo', b'', dummypipe(), |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
128 dummypipe(), None, None)) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
129 |
37635
cc8c06835097
wireproto: convert legacy commands to command executor
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37630
diff
changeset
|
130 ziverify.verifyClass(repository.ipeerbase, sshpeer.sshv2peer) |
37870
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
131 checkzobject(sshpeer.sshv2peer(ui, b'ssh://localhost/foo', b'', dummypipe(), |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
132 dummypipe(), None, None)) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
133 |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
134 ziverify.verifyClass(repository.ipeerbase, bundlerepo.bundlepeer) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
135 checkzobject(bundlerepo.bundlepeer(dummyrepo())) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
136 |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
137 ziverify.verifyClass(repository.ipeerbase, statichttprepo.statichttppeer) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
138 checkzobject(statichttprepo.statichttppeer(dummyrepo())) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
139 |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
140 ziverify.verifyClass(repository.ipeerbase, unionrepo.unionpeer) |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37296
diff
changeset
|
141 checkzobject(unionrepo.unionpeer(dummyrepo())) |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
142 |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
143 ziverify.verifyClass(repository.completelocalrepository, |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
144 localrepo.localrepository) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
145 repo = localrepo.localrepository(ui, rootdir) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
146 checkzobject(repo) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37006
diff
changeset
|
147 |
37296
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
148 ziverify.verifyClass(wireprototypes.baseprotocolhandler, |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
149 wireprotoserver.sshv1protocolhandler) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
150 ziverify.verifyClass(wireprototypes.baseprotocolhandler, |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
151 wireprotoserver.sshv2protocolhandler) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
152 ziverify.verifyClass(wireprototypes.baseprotocolhandler, |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
153 wireprotoserver.httpv1protocolhandler) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
154 ziverify.verifyClass(wireprototypes.baseprotocolhandler, |
37545
93397c4633f6
wireproto: extract HTTP version 2 code to own module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37441
diff
changeset
|
155 wireprotov2server.httpv2protocolhandler) |
37296
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
156 |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
157 sshv1 = wireprotoserver.sshv1protocolhandler(None, None, None) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
158 checkzobject(sshv1) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
159 sshv2 = wireprotoserver.sshv2protocolhandler(None, None, None) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
160 checkzobject(sshv2) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
161 |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
162 httpv1 = wireprotoserver.httpv1protocolhandler(None, None, None) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
163 checkzobject(httpv1) |
37545
93397c4633f6
wireproto: extract HTTP version 2 code to own module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37441
diff
changeset
|
164 httpv2 = wireprotov2server.httpv2protocolhandler(None, None) |
37296
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
165 checkzobject(httpv2) |
78103e4138b1
wireproto: port protocol handler to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37181
diff
changeset
|
166 |
37441
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
167 ziverify.verifyClass(repository.ifilestorage, filelog.filelog) |
38530
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
168 ziverify.verifyClass(repository.imanifestdict, manifest.manifestdict) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
169 ziverify.verifyClass(repository.imanifestrevisionstored, |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
170 manifest.manifestctx) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
171 ziverify.verifyClass(repository.imanifestrevisionwritable, |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
172 manifest.memmanifestctx) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
173 ziverify.verifyClass(repository.imanifestrevisionstored, |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
174 manifest.treemanifestctx) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
175 ziverify.verifyClass(repository.imanifestrevisionwritable, |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
176 manifest.memtreemanifestctx) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
177 ziverify.verifyClass(repository.imanifestlog, manifest.manifestlog) |
37441
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
178 |
37870
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
179 vfs = vfsmod.vfs(b'.') |
39c17718f311
tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com>
parents:
37814
diff
changeset
|
180 fl = filelog.filelog(vfs, b'dummy.i') |
37441
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
181 checkzobject(fl, allowextra=True) |
a3202fa83aff
filelog: declare that filelog implements a storage interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37320
diff
changeset
|
182 |
38530
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
183 # Conforms to imanifestlog. |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
184 ml = manifest.manifestlog(vfs, repo) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
185 checkzobject(ml) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
186 checkzobject(repo.manifestlog) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
187 |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
188 # Conforms to imanifestrevision. |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
189 mctx = ml[repo[0].manifestnode()] |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
190 checkzobject(mctx) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
191 |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
192 # Conforms to imanifestrevisionwritable. |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
193 checkzobject(mctx.new()) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
194 checkzobject(mctx.copy()) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
195 |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
196 # Conforms to imanifestdict. |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
197 checkzobject(mctx.read()) |
c82ea938efbb
repository: define manifest interfaces
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37870
diff
changeset
|
198 |
33807
b70029f355a3
tests: verify that peer instances only expose interface members
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
199 main() |