Merge lp:~ltrager/maas/fix_websockets_tests_110 into lp:maas/1.10

Proposed by Lee Trager
Status: Merged
Approved by: Lee Trager
Approved revision: no longer in the source branch.
Merged at revision: 4582
Proposed branch: lp:~ltrager/maas/fix_websockets_tests_110
Merge into: lp:maas/1.10
Diff against target: 228 lines (+47/-35)
2 files modified
src/maasserver/tests/test_webapp.py (+3/-4)
src/maasserver/websockets/tests/test_websockets.py (+44/-31)
To merge this branch: bzr merge lp:~ltrager/maas/fix_websockets_tests_110
Reviewer Review Type Date Requested Status
Lee Trager (community) Approve
Review via email: mp+286867@code.launchpad.net

Commit message

Stop using deprecated features on the DummyRequest object for twisted 16.

Description of the change

MAAS was using deprecated features from the DummyRequest object during testing. These deprecated features have been removed from Twisted 16 which was just pushed into main on Xenial. I've updated our tests to use the new way which allows our unit tests to pass. I looked around the codebase and it appears that we did convert Requests to the new method awhile back so only the unit tests had to be fixed.

Upstream bugs on removing deprecated features
http://twistedmatrix.com/trac/ticket/8140
http://twistedmatrix.com/trac/ticket/8136

To post a comment you must log in.
Revision history for this message
Lee Trager (ltrager) wrote :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/maasserver/tests/test_webapp.py'
--- src/maasserver/tests/test_webapp.py 2015-12-08 18:35:10 +0000
+++ src/maasserver/tests/test_webapp.py 2016-02-23 06:28:54 +0000
@@ -27,7 +27,6 @@
27from maastesting.twisted import TwistedLoggerFixture27from maastesting.twisted import TwistedLoggerFixture
28from mock import sentinel28from mock import sentinel
29from testtools.matchers import (29from testtools.matchers import (
30 ContainsDict,
31 Equals,30 Equals,
32 Is,31 Is,
33 IsInstance,32 IsInstance,
@@ -134,9 +133,9 @@
134 self.expectThat(133 self.expectThat(
135 page.find(".//p").text_content(),134 page.find(".//p").text_content(),
136 Equals("Please try again in a few seconds."))135 Equals("Please try again in a few seconds."))
137 self.expectThat(136 self.assertEqual(
138 request.outgoingHeaders,137 ['5'],
139 ContainsDict({b"retry-after": Equals(b"5")}))138 request.responseHeaders.getRawHeaders("retry-after"))
140139
141 def test__startService_starts_application(self):140 def test__startService_starts_application(self):
142 service = self.make_webapp()141 service = self.make_webapp()
143142
=== modified file 'src/maasserver/websockets/tests/test_websockets.py'
--- src/maasserver/websockets/tests/test_websockets.py 2015-11-29 23:59:47 +0000
+++ src/maasserver/websockets/tests/test_websockets.py 2016-02-23 06:28:54 +0000
@@ -551,10 +551,16 @@
551 """551 """
552 result = self.resource.render(request)552 result = self.resource.render(request)
553 self.assertEqual(b"", result)553 self.assertEqual(b"", result)
554 self.assertEqual({}, request.outgoingHeaders)554 self.assertEqual(
555 {}, {name: value for name, value in
556 request.responseHeaders.getAllRawHeaders()})
555 self.assertEqual([], request.written)557 self.assertEqual([], request.written)
556 self.assertEqual(400, request.responseCode)558 self.assertEqual(400, request.responseCode)
557559
560 def update_headers(self, request, headers):
561 for name, value in headers.items():
562 request.requestHeaders.addRawHeader(name=name, value=value)
563
558 def test_getChildWithDefault(self):564 def test_getChildWithDefault(self):
559 """565 """
560 L{WebSocketsResource.getChildWithDefault} raises a C{RuntimeError} when566 L{WebSocketsResource.getChildWithDefault} raises a C{RuntimeError} when
@@ -589,7 +595,7 @@
589 transport = StringTransportWithDisconnection()595 transport = StringTransportWithDisconnection()
590 transport.protocol = Protocol()596 transport.protocol = Protocol()
591 request.transport = transport597 request.transport = transport
592 request.headers.update({598 self.update_headers(request, headers={
593 b"upgrade": b"Websocket",599 b"upgrade": b"Websocket",
594 b"connection": b"Upgrade",600 b"connection": b"Upgrade",
595 b"sec-websocket-key": b"secure",601 b"sec-websocket-key": b"secure",
@@ -597,10 +603,11 @@
597 result = self.resource.render(request)603 result = self.resource.render(request)
598 self.assertEqual(NOT_DONE_YET, result)604 self.assertEqual(NOT_DONE_YET, result)
599 self.assertEqual(605 self.assertEqual(
600 {b"connection": b"Upgrade",606 {b"Connection": [b"Upgrade"],
601 b"upgrade": b"WebSocket",607 b"Upgrade": [b"WebSocket"],
602 b"sec-websocket-accept": b"oYBv54i42V5dw6KnZqOFroecUTc="},608 b"Sec-Websocket-Accept": [b"oYBv54i42V5dw6KnZqOFroecUTc="]},
603 request.outgoingHeaders)609 {name: value
610 for name, value in request.responseHeaders.getAllRawHeaders()})
604 self.assertEqual([b""], request.written)611 self.assertEqual([b""], request.written)
605 self.assertEqual(101, request.responseCode)612 self.assertEqual(101, request.responseCode)
606 self.assertIdentical(None, request.transport)613 self.assertIdentical(None, request.transport)
@@ -629,19 +636,20 @@
629 transport = StringTransportWithDisconnection()636 transport = StringTransportWithDisconnection()
630 transport.protocol = Protocol()637 transport.protocol = Protocol()
631 request.transport = transport638 request.transport = transport
632 request.headers.update({639 self.update_headers(request, headers={
633 b"upgrade": b"Websocket",640 b"upgrade": b"Websocket",
634 b"connection": b"Upgrade",641 b"connection": b"Upgrade",
635 b"sec-websocket-key": b"secure",642 b"sec-websocket-key": b"secure",
636 b"sec-websocket-version": b"13"})643 b"sec-websocket-version": b"13"})
637 result = self.resource.render(request)644 result = self.resource.render(request)
638 self.assertEqual(NOT_DONE_YET, result)645 self.assertEqual(NOT_DONE_YET, result)
639 self.assertEqual(646 self.assertEqual({
640 {b"connection": b"Upgrade",647 b"Connection": [b"Upgrade"],
641 b"upgrade": b"WebSocket",648 b"Upgrade": [b"WebSocket"],
642 b"sec-websocket-protocol": b"bar",649 b"Sec-Websocket-Protocol": [b"bar"],
643 b"sec-websocket-accept": b"oYBv54i42V5dw6KnZqOFroecUTc="},650 b"Sec-Websocket-Accept": [b"oYBv54i42V5dw6KnZqOFroecUTc="]},
644 request.outgoingHeaders)651 {name: value for name, value in
652 request.responseHeaders.getAllRawHeaders()})
645 self.assertEqual([b""], request.written)653 self.assertEqual([b""], request.written)
646 self.assertEqual(101, request.responseCode)654 self.assertEqual(101, request.responseCode)
647655
@@ -651,7 +659,7 @@
651 L{WebSocketsResource} returns a failed request.659 L{WebSocketsResource} returns a failed request.
652 """660 """
653 request = DummyRequest(b"/")661 request = DummyRequest(b"/")
654 request.headers.update({662 self.update_headers(request, headers={
655 b"upgrade": b"wrong",663 b"upgrade": b"wrong",
656 b"connection": b"Upgrade",664 b"connection": b"Upgrade",
657 b"sec-websocket-key": b"secure",665 b"sec-websocket-key": b"secure",
@@ -664,7 +672,7 @@
664 failed request.672 failed request.
665 """673 """
666 request = DummyRequest(b"/")674 request = DummyRequest(b"/")
667 request.headers.update({675 self.update_headers(request, headers={
668 b"connection": b"Upgrade",676 b"connection": b"Upgrade",
669 b"sec-websocket-key": b"secure",677 b"sec-websocket-key": b"secure",
670 b"sec-websocket-version": b"13"})678 b"sec-websocket-version": b"13"})
@@ -677,7 +685,7 @@
677 """685 """
678 request = DummyRequest(b"/")686 request = DummyRequest(b"/")
679 request.method = b"POST"687 request.method = b"POST"
680 request.headers.update({688 self.update_headers(request, headers={
681 b"upgrade": b"Websocket",689 b"upgrade": b"Websocket",
682 b"connection": b"Upgrade",690 b"connection": b"Upgrade",
683 b"sec-websocket-key": b"secure",691 b"sec-websocket-key": b"secure",
@@ -690,7 +698,7 @@
690 L{WebSocketsResource} returns a failed request.698 L{WebSocketsResource} returns a failed request.
691 """699 """
692 request = DummyRequest(b"/")700 request = DummyRequest(b"/")
693 request.headers.update({701 self.update_headers(request, headers={
694 b"upgrade": b"Websocket",702 b"upgrade": b"Websocket",
695 b"connection": b"Wrong",703 b"connection": b"Wrong",
696 b"sec-websocket-key": b"secure",704 b"sec-websocket-key": b"secure",
@@ -703,7 +711,7 @@
703 failed request.711 failed request.
704 """712 """
705 request = DummyRequest(b"/")713 request = DummyRequest(b"/")
706 request.headers.update({714 self.update_headers(request, headers={
707 b"upgrade": b"Websocket",715 b"upgrade": b"Websocket",
708 b"sec-websocket-key": b"secure",716 b"sec-websocket-key": b"secure",
709 b"sec-websocket-version": b"13"})717 b"sec-websocket-version": b"13"})
@@ -715,7 +723,7 @@
715 returns a failed request.723 returns a failed request.
716 """724 """
717 request = DummyRequest(b"/")725 request = DummyRequest(b"/")
718 request.headers.update({726 self.update_headers(request, headers={
719 b"upgrade": b"Websocket",727 b"upgrade": b"Websocket",
720 b"connection": b"Upgrade",728 b"connection": b"Upgrade",
721 b"sec-websocket-version": b"13"})729 b"sec-websocket-version": b"13"})
@@ -727,15 +735,17 @@
727 L{WebSocketsResource} returns a failed request.735 L{WebSocketsResource} returns a failed request.
728 """736 """
729 request = DummyRequest(b"/")737 request = DummyRequest(b"/")
730 request.headers.update({738
739 self.update_headers(request, headers={
731 b"upgrade": b"Websocket",740 b"upgrade": b"Websocket",
732 b"connection": b"Upgrade",741 b"connection": b"Upgrade",
733 b"sec-websocket-key": b"secure",742 b"sec-websocket-key": b"secure",
734 b"sec-websocket-version": b"11"})743 b"sec-websocket-version": b"11"})
735 result = self.resource.render(request)744 result = self.resource.render(request)
736 self.assertEqual(b"", result)745 self.assertEqual(b"", result)
737 self.assertEqual({b"sec-websocket-version": b"13"},746 self.assertEqual(
738 request.outgoingHeaders)747 ['13'],
748 request.responseHeaders.getRawHeaders("sec-websocket-version"))
739 self.assertEqual([], request.written)749 self.assertEqual([], request.written)
740 self.assertEqual(400, request.responseCode)750 self.assertEqual(400, request.responseCode)
741751
@@ -748,14 +758,16 @@
748 request.requestHeaders = Headers()758 request.requestHeaders = Headers()
749 request.transport = StringTransportWithDisconnection()759 request.transport = StringTransportWithDisconnection()
750 self.echoProtocol = None760 self.echoProtocol = None
751 request.headers.update({761 self.update_headers(request, headers={
752 b"upgrade": b"Websocket",762 b"upgrade": b"Websocket",
753 b"connection": b"Upgrade",763 b"connection": b"Upgrade",
754 b"sec-websocket-key": b"secure",764 b"sec-websocket-key": b"secure",
755 b"sec-websocket-version": b"13"})765 b"sec-websocket-version": b"13"})
756 result = self.resource.render(request)766 result = self.resource.render(request)
757 self.assertEqual(b"", result)767 self.assertEqual(b"", result)
758 self.assertEqual({}, request.outgoingHeaders)768 self.assertEqual(
769 {}, {name: value for name, value in
770 request.responseHeaders.getAllRawHeaders()})
759 self.assertEqual([], request.written)771 self.assertEqual([], request.written)
760 self.assertEqual(502, request.responseCode)772 self.assertEqual(502, request.responseCode)
761773
@@ -770,18 +782,19 @@
770 secureProtocol = TLSMemoryBIOProtocol(Factory(), Protocol())782 secureProtocol = TLSMemoryBIOProtocol(Factory(), Protocol())
771 transport.protocol = secureProtocol783 transport.protocol = secureProtocol
772 request.transport = transport784 request.transport = transport
773 request.headers.update({785 self.update_headers(request, headers={
774 b"upgrade": b"Websocket",786 b"upgrade": b"Websocket",
775 b"connection": b"Upgrade",787 b"connection": b"Upgrade",
776 b"sec-websocket-key": b"secure",788 b"sec-websocket-key": b"secure",
777 b"sec-websocket-version": b"13"})789 b"sec-websocket-version": b"13"})
778 result = self.resource.render(request)790 result = self.resource.render(request)
779 self.assertEqual(NOT_DONE_YET, result)791 self.assertEqual(NOT_DONE_YET, result)
780 self.assertEqual(792 self.assertEqual({
781 {b"connection": b"Upgrade",793 b"Connection": [b"Upgrade"],
782 b"upgrade": b"WebSocket",794 b"Upgrade": [b"WebSocket"],
783 b"sec-websocket-accept": b"oYBv54i42V5dw6KnZqOFroecUTc="},795 b"Sec-Websocket-Accept": [b"oYBv54i42V5dw6KnZqOFroecUTc="]},
784 request.outgoingHeaders)796 {name: value for name, value in
797 request.responseHeaders.getAllRawHeaders()})
785 self.assertEqual([b""], request.written)798 self.assertEqual([b""], request.written)
786 self.assertEqual(101, request.responseCode)799 self.assertEqual(101, request.responseCode)
787 self.assertIdentical(None, request.transport)800 self.assertIdentical(None, request.transport)
@@ -840,7 +853,7 @@
840 transport = StringTransportWithDisconnection()853 transport = StringTransportWithDisconnection()
841 transport.protocol = Protocol()854 transport.protocol = Protocol()
842 request.transport = transport855 request.transport = transport
843 request.headers.update({856 self.update_headers(request, headers={
844 b"upgrade": b"Websocket",857 b"upgrade": b"Websocket",
845 b"connection": b"Upgrade",858 b"connection": b"Upgrade",
846 b"sec-websocket-key": b"secure",859 b"sec-websocket-key": b"secure",

Subscribers

People subscribed via source and target branches

to all changes: