Skip to content

Commit 80f7c4f

Browse files
committed
Pass the parser along because of reasons.
Specifically, it's convenient to pull the factory off of the parser. Who knows; maybe someone will need it for other reasons.
1 parent cdbeedb commit 80f7c4f

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

ometa/protocol.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def connectionMade(self):
3535

3636
self.sender = self.senderFactory(self.transport)
3737
self.receiver = self.receiverFactory(self.sender)
38-
self.receiver.prepareParsing()
38+
self.receiver.prepareParsing(self)
3939
self.parser = TrampolinedParser(
4040
self.grammar, self.receiver, self.bindings)
4141

ometa/test/test_protocol.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,11 @@ def __init__(self, sender):
4242
self.returnMap = {}
4343
self.connected = False
4444
self.lossReason = None
45+
self.parser = None
4546

46-
def prepareParsing(self):
47+
def prepareParsing(self, parser):
4748
self.connected = True
49+
self.parser = parser
4850

4951
def __call__(self, v):
5052
self.calls.append(v)
@@ -84,6 +86,11 @@ def test_senderPassed(self):
8486
self.protocol.makeConnection(None)
8587
self.assertEqual(self.protocol.sender, self.protocol.receiver.sender)
8688

89+
def test_parserPassed(self):
90+
"""The parser is passed in the prepareParsing method."""
91+
self.protocol.makeConnection(None)
92+
self.assertEqual(self.protocol, self.protocol.receiver.parser)
93+
8794
def test_connectionEstablishes(self):
8895
"""prepareParsing is called on the receiver after connection establishment."""
8996
self.protocol.makeConnection(None)

0 commit comments

Comments
 (0)