diff options
author | Colin Watson <cjwatson@debian.org> | 2018-02-09 21:54:21 +0000 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2018-02-09 22:05:02 +0000 |
commit | ce949d55b30a9ac5a74439727aacf0fab004d6cf (patch) | |
tree | a4be13fd97e6f5bee967e8b4c8778b929eca73e5 | |
parent | 00ab469a4ae426c346228bd68eabe0fd4e689e4c (diff) |
Improve mock setup for 407-then-unknown test
`test_407_then_unknown_interaction_methods` causes the client to fetch
the possible methods supported by the discharger (because it's told that
it only supports a non-window method). This is currently unmocked,
which causes the client to actually contact `http://example.com/visit`.
This fails in Launchpad builds because they run with a restrictive
network setup that doesn't even expose DNS lookups for non-permitted
hosts.
There isn't really a good way to simulate this without setting up a
similar stunt DNS server (though perhaps installing an
`httmock.all_requests` fallback mock that raises an exception would be a
good idea?), but this seems to be the only failure at the moment.
Forwarded: https://github.com/go-macaroon-bakery/py-macaroon-bakery/pull/45
Last-Update: 2018-02-09
Patch-Name: improve-unknown-interaction-mock.patch
-rw-r--r-- | macaroonbakery/tests/test_bakery.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/macaroonbakery/tests/test_bakery.py b/macaroonbakery/tests/test_bakery.py index 72a6928..1883987 100644 --- a/macaroonbakery/tests/test_bakery.py +++ b/macaroonbakery/tests/test_bakery.py @@ -146,6 +146,16 @@ def discharge_401(url, request): } +@urlmatch(path='.*/visit') +def visit_200(url, request): + return { + 'status_code': 200, + 'content': { + 'interactive': '/visit' + } + } + + @urlmatch(path='.*/wait') def wait_after_401(url, request): if request.url != 'http://example.com/wait': @@ -245,7 +255,8 @@ class TestBakery(TestCase): def kind(self): return 'unknown' client = httpbakery.Client(interaction_methods=[UnknownInteractor()]) - with HTTMock(first_407_then_200), HTTMock(discharge_401): + with HTTMock(first_407_then_200), HTTMock(discharge_401),\ + HTTMock(visit_200): with self.assertRaises(httpbakery.InteractionError) as exc: requests.get( ID_PATH, |