Merge ~cgrabowski/maas:fix_unsubscribe_response_serialization into maas:master

Proposed by Christian Grabowski
Status: Merged
Approved by: Christian Grabowski
Approved revision: f6a1cc5ce7089ff302bf8798038869f7e656fd4e
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~cgrabowski/maas:fix_unsubscribe_response_serialization
Merge into: maas:master
Diff against target: 34 lines (+11/-1)
2 files modified
src/maasserver/websockets/base.py (+1/-1)
src/maasserver/websockets/handlers/tests/test_machine.py (+10/-0)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Adam Collard (community) Needs Information
Jack Lloyd-Walters Approve
Review via email: mp+427085@code.launchpad.net

Commit message

ensure type returned on unsubscribe is always list

To post a comment you must log in.
Revision history for this message
Jack Lloyd-Walters (lloydwaltersj) :
review: Approve
Revision history for this message
Adam Collard (adam-collard) :
review: Needs Information
Revision history for this message
Christian Grabowski (cgrabowski) :
Revision history for this message
Jack Lloyd-Walters (lloydwaltersj) :
Revision history for this message
Christian Grabowski (cgrabowski) :
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fix_unsubscribe_response_serialization lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/118/consoleText
COMMIT: 36974c574d417b3d9e65a2c2de9020237f66e798

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fix_unsubscribe_response_serialization lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: f6a1cc5ce7089ff302bf8798038869f7e656fd4e

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b fix_unsubscribe_response_serialization lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://maas-ci.internal:8080/job/maas-tester/121/consoleText

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/websockets/base.py b/src/maasserver/websockets/base.py
2index 8787174..a9cd089 100644
3--- a/src/maasserver/websockets/base.py
4+++ b/src/maasserver/websockets/base.py
5@@ -831,7 +831,7 @@ class Handler(metaclass=HandlerMetaclass):
6 if self.cache.get("active_pk") in pks:
7 del self.cache["active_pk"]
8 self.cache["loaded_pks"] = self.cache["loaded_pks"] - pks
9- return pks
10+ return list(pks)
11 else:
12 raise HandlerValidationError(
13 f"'{self._meta.pk}' or '{self._meta.bulk_pk}' must be provided in params for unsubscribe"
14diff --git a/src/maasserver/websockets/handlers/tests/test_machine.py b/src/maasserver/websockets/handlers/tests/test_machine.py
15index 369ae81..9ffcbcd 100644
16--- a/src/maasserver/websockets/handlers/tests/test_machine.py
17+++ b/src/maasserver/websockets/handlers/tests/test_machine.py
18@@ -6291,6 +6291,16 @@ class TestMachineHandlerFilter(MAASServerTestCase):
19 handler = MachineHandler(admin, {}, None)
20 self.assertRaises(HandlerValidationError, handler.unsubscribe, {})
21
22+ def test_unsubscribe_returns_serializable_type(self):
23+ admin = factory.make_admin()
24+ handler = MachineHandler(admin, {}, None)
25+ nodes = [factory.make_Node() for _ in range(3)]
26+ handler.list({})
27+ resp = handler.unsubscribe(
28+ {"system_ids": [node.system_id for node in nodes]}
29+ )
30+ self.assertIsInstance(resp, list)
31+
32 def test_read_an_unsubscribed_object_subscribes(self):
33 admin = factory.make_admin()
34 handler = MachineHandler(admin, {}, None)

Subscribers

People subscribed via source and target branches