change 'list' protocol, make room for nameplate attributes

This commit is contained in:
Brian Warner 2016-05-22 11:01:44 -07:00
parent 53bbcc33f6
commit 0ee56e12b0
2 changed files with 11 additions and 3 deletions

View File

@ -54,7 +54,7 @@ from .rendezvous import CrowdedError, SidedMessage
# -> {type: "bind", appid:, side:}
#
# -> {type: "list"} -> nameplates
# <- {type: "nameplates", nameplates: [str..]}
# <- {type: "nameplates", nameplates: [{id: str,..},..]}
# -> {type: "allocate"} -> nameplate, mailbox
# <- {type: "allocated", nameplate: str}
# -> {type: "claim", nameplate: str} -> mailbox
@ -152,7 +152,10 @@ class WebSocketRendezvous(websocket.WebSocketServerProtocol):
def handle_list(self):
nameplate_ids = sorted(self._app.get_nameplate_ids())
self.send("nameplates", nameplates=nameplate_ids)
# provide room to add nameplate attributes later (like which wordlist
# is used for each, maybe how many words)
nameplates = [{"id": nid} for nid in nameplate_ids]
self.send("nameplates", nameplates=nameplates)
def handle_allocate(self, server_rx):
if self._did_allocate:

View File

@ -539,7 +539,12 @@ class WebSocketAPI(ServerBase, unittest.TestCase):
c1.send(u"list")
m = yield c1.next_non_ack()
self.assertEqual(m[u"type"], u"nameplates")
self.assertEqual(set(m[u"nameplates"]), set([nameplate_id1, u"np2"]))
nids = set()
for n in m[u"nameplates"]:
self.assertEqual(type(n), dict)
self.assertEqual(list(n.keys()), [u"id"])
nids.add(n[u"id"])
self.assertEqual(nids, set([nameplate_id1, u"np2"]))
@inlineCallbacks
def test_allocate(self):