(self)
| 146 | return rv |
| 147 | |
| 148 | def run_test(self): |
| 149 | # basic -proxy |
| 150 | self.node_test(self.nodes[0], [self.serv1, self.serv1, self.serv1, self.serv1], False) |
| 151 | |
| 152 | # -proxy plus -onion |
| 153 | self.node_test(self.nodes[1], [self.serv1, self.serv1, self.serv2, self.serv1], False) |
| 154 | |
| 155 | # -proxy plus -onion, -proxyrandomize |
| 156 | rv = self.node_test(self.nodes[2], [self.serv2, self.serv2, self.serv2, self.serv2], True) |
| 157 | # Check that credentials as used for -proxyrandomize connections are unique |
| 158 | credentials = set((x.username,x.password) for x in rv) |
| 159 | assert_equal(len(credentials), len(rv)) |
| 160 | |
| 161 | if self.have_ipv6: |
| 162 | # proxy on IPv6 localhost |
| 163 | self.node_test(self.nodes[3], [self.serv3, self.serv3, self.serv3, self.serv3], False, False) |
| 164 | |
| 165 | def networks_dict(d): |
| 166 | r = {} |
| 167 | for x in d['networks']: |
| 168 | r[x['name']] = x |
| 169 | return r |
| 170 | |
| 171 | # test RPC getnetworkinfo |
| 172 | n0 = networks_dict(self.nodes[0].getnetworkinfo()) |
| 173 | for net in ['ipv4','ipv6','onion']: |
| 174 | assert_equal(n0[net]['proxy'], '%s:%i' % (self.conf1.addr)) |
| 175 | assert_equal(n0[net]['proxy_randomize_credentials'], True) |
| 176 | assert_equal(n0['onion']['reachable'], True) |
| 177 | |
| 178 | n1 = networks_dict(self.nodes[1].getnetworkinfo()) |
| 179 | for net in ['ipv4','ipv6']: |
| 180 | assert_equal(n1[net]['proxy'], '%s:%i' % (self.conf1.addr)) |
| 181 | assert_equal(n1[net]['proxy_randomize_credentials'], False) |
| 182 | assert_equal(n1['onion']['proxy'], '%s:%i' % (self.conf2.addr)) |
| 183 | assert_equal(n1['onion']['proxy_randomize_credentials'], False) |
| 184 | assert_equal(n1['onion']['reachable'], True) |
| 185 | |
| 186 | n2 = networks_dict(self.nodes[2].getnetworkinfo()) |
| 187 | for net in ['ipv4','ipv6','onion']: |
| 188 | assert_equal(n2[net]['proxy'], '%s:%i' % (self.conf2.addr)) |
| 189 | assert_equal(n2[net]['proxy_randomize_credentials'], True) |
| 190 | assert_equal(n2['onion']['reachable'], True) |
| 191 | |
| 192 | if self.have_ipv6: |
| 193 | n3 = networks_dict(self.nodes[3].getnetworkinfo()) |
| 194 | for net in ['ipv4','ipv6']: |
| 195 | assert_equal(n3[net]['proxy'], '[%s]:%i' % (self.conf3.addr)) |
| 196 | assert_equal(n3[net]['proxy_randomize_credentials'], False) |
| 197 | assert_equal(n3['onion']['reachable'], False) |
| 198 | |
| 199 | if __name__ == '__main__': |
| 200 | ProxyTest().main() |
nothing calls this directly
no test coverage detected