This commit is contained in:
Shivaram Lingamneni 2019-02-20 22:48:48 -05:00
parent b184892a1c
commit 383a65d58e

View File

@ -277,3 +277,25 @@ class LabeledResponsesTestCase(cases.BaseServerTestCase, cases.OptionalityHelper
self.assertMessageEqual(m, command='PONG', params=['adhoctestline'])
# check the label
self.assertEqual(m.tags.get('draft/label'), '98765')
@cases.SpecificationSelector.requiredBySpecification('Oragono')
def testEmptyBatchForNoResponse(self):
self.connectClient('bar', capabilities=['batch', 'draft/labeled-response', 'draft/message-tags-0.2', 'server-time'])
self.getMessages(1)
# PONG never receives a response
self.sendLine(1, '@draft/label=98765 PONG adhoctestline')
# "If no response is required, an empty batch MUST be sent."
# https://ircv3.net/specs/extensions/labeled-response.html
ms = self.getMessages(1)
self.assertEqual(len(ms), 2)
batch_start, batch_end = ms
self.assertEqual(batch_start.command, 'BATCH')
self.assertEqual(batch_start.tags.get('draft/label'), '98765')
self.assertTrue(batch_start.params[0].startswith('+'))
batch_id = batch_start.params[0][1:]
self.assertEqual(batch_end.command, 'BATCH')
self.assertEqual(batch_end.params[0], '-' + batch_id)