Merge lp:~adam-collard/landscape-client/xenial-transport-fixes into lp:~landscape/landscape-client/trunk

Proposed by Adam Collard
Status: Merged
Approved by: Adam Collard
Approved revision: 830
Merged at revision: 831
Proposed branch: lp:~adam-collard/landscape-client/xenial-transport-fixes
Merge into: lp:~landscape/landscape-client/trunk
Diff against target: 82 lines (+31/-20)
1 file modified
landscape/broker/tests/test_transport.py (+31/-20)
To merge this branch: bzr merge lp:~adam-collard/landscape-client/xenial-transport-fixes
Reviewer Review Type Date Requested Status
Bogdana Vereha (community) Approve
Free Ekanayaka (community) Approve
Review via email: mp+287944@code.launchpad.net

Commit message

The version of Twisted in Xenial (currently 16.0.0~pre1-2ubuntu1) doesn't have the previous backwards compatible way of accessing request headers (request.received_headers as a dict).

This branch switches the tests to use the new API, but retain backwards compatibility for previous Ubuntu releases.

Note that #1549962 is addressing separate test failures.

Description of the change

The version of Twisted in Xenial (currently 16.0.0~pre1-2ubuntu1) doesn't have the previous backwards compatible way of accessing request headers (request.received_headers as a dict).

This branch switches the tests to use the new API, but retain backwards compatibility for previous Ubuntu releases.

Note that #1549962 is addressing separate test failures.

Testing instructions:

trial landscape.broker.tests.test_transport

To post a comment you must log in.
Revision history for this message
Free Ekanayaka (free.ekanayaka) wrote :

Looks good with a nit, +1

review: Approve
Revision history for this message
Bogdana Vereha (bogdana) wrote :

+1

review: Approve
830. By Adam Collard

Add comments, fix line length (free's review)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'landscape/broker/tests/test_transport.py'
2--- landscape/broker/tests/test_transport.py 2013-11-29 16:48:55 +0000
3+++ landscape/broker/tests/test_transport.py 2016-03-04 08:59:24 +0000
4@@ -66,8 +66,9 @@
5 message API version as HTTP headers, and the payload as a
6 bpickled request body.
7 """
8- r = DataCollectingResource()
9- port = reactor.listenTCP(0, server.Site(r), interface="127.0.0.1")
10+ resource = DataCollectingResource()
11+ port = reactor.listenTCP(
12+ 0, server.Site(resource), interface="127.0.0.1")
13 self.ports.append(port)
14 transport = HTTPTransport(
15 None, "http://localhost:%d/" % (port.getHost().port,))
16@@ -75,15 +76,20 @@
17 exchange_token="abcd-efgh", message_api="X.Y")
18
19 def got_result(ignored):
20- self.assertEqual(r.request.received_headers["x-computer-id"],
21- "34")
22- self.assertEqual(r.request.received_headers["x-exchange-token"],
23- "abcd-efgh")
24- self.assertEqual(r.request.received_headers["user-agent"],
25- "landscape-client/%s" % (VERSION,))
26- self.assertEqual(r.request.received_headers["x-message-api"],
27- "X.Y")
28- self.assertEqual(bpickle.loads(r.content), "HI")
29+ try:
30+ get_header = resource.request.requestHeaders.getRawHeaders
31+ except AttributeError:
32+ # For backwards compatibility with Twisted versions
33+ # without requestHeaders
34+ def get_header(header):
35+ return [resource.request.received_headers[header]]
36+
37+ self.assertEqual(get_header(u"x-computer-id"), ["34"])
38+ self.assertEqual(get_header("x-exchange-token"), ["abcd-efgh"])
39+ self.assertEqual(
40+ get_header("user-agent"), ["landscape-client/%s" % (VERSION,)])
41+ self.assertEqual(get_header("x-message-api"), ["X.Y"])
42+ self.assertEqual(bpickle.loads(resource.content), "HI")
43 result.addCallback(got_result)
44 return result
45
46@@ -93,9 +99,9 @@
47 a host which provides SSL data which can be verified by the
48 public key specified.
49 """
50- r = DataCollectingResource()
51+ resource = DataCollectingResource()
52 context_factory = DefaultOpenSSLContextFactory(PRIVKEY, PUBKEY)
53- port = reactor.listenSSL(0, server.Site(r), context_factory,
54+ port = reactor.listenSSL(0, server.Site(resource), context_factory,
55 interface="127.0.0.1")
56 self.ports.append(port)
57 transport = HTTPTransport(
58@@ -104,13 +110,18 @@
59 message_api="X.Y")
60
61 def got_result(ignored):
62- self.assertEqual(r.request.received_headers["x-computer-id"],
63- "34")
64- self.assertEqual(r.request.received_headers["user-agent"],
65- "landscape-client/%s" % (VERSION,))
66- self.assertEqual(r.request.received_headers["x-message-api"],
67- "X.Y")
68- self.assertEqual(bpickle.loads(r.content), "HI")
69+ try:
70+ get_header = resource.request.requestHeaders.getRawHeaders
71+ except AttributeError:
72+ # For backwards compatibility with Twisted versions
73+ # without requestHeaders
74+ def get_header(header):
75+ return [resource.request.received_headers[header]]
76+ self.assertEqual(get_header("x-computer-id"), ["34"])
77+ self.assertEqual(
78+ get_header("user-agent"), ["landscape-client/%s" % (VERSION,)])
79+ self.assertEqual(get_header("x-message-api"), ["X.Y"])
80+ self.assertEqual(bpickle.loads(resource.content), "HI")
81 result.addCallback(got_result)
82 return result
83

Subscribers

People subscribed via source and target branches

to all changes: