def test_main(self): func = lambda d: list(split_message(d)) # no response format self.assertEqual(func(b""), []) self.assertEqual(func(b"foo"), [(b"foo", None)]) self.assertEqual(func(b"foo\nbar"), [(b"foo", None), (b"bar", None)]) # response format self.assertEqual(func(b"\x00a\x00/dev/null\x00"), [(b"a", b"/dev/null")]) self.assertEqual(func(b"\x00a\x00/dev/null\x00\x00b\x00/dev/foo\x00"), [(b"a", b"/dev/null"), (b"b", b"/dev/foo")]) # mixed self.assertEqual(func(b"foo\x00a\x00/dev\x00"), [(b"foo", None), (b"a", b"/dev")]) self.assertEqual(func(b"\x00a\x00/dev\x00foo"), [(b"a", b"/dev"), (b"foo", None)]) self.assertEqual(func(b"\x00a\x00/dev\x00foo\x00b\x00/arg\x00bla"), [(b"a", b"/dev"), (b"foo", None), (b"b", b"/arg"), (b"bla", None)]) # inval self.assertRaises(ValueError, func, b"foo\x00bar")
def _callback(self, data): try: messages = list(fifo.split_message(data)) except ValueError: print_w("invalid message: %r" % data) return for command, path in messages: response = self._cmd_registry.handle_line(self._app, command) if path is not None: with open(path, "wb") as h: if response is not None: h.write(response)
def _callback(self, data): try: messages = list(fifo.split_message(data)) except ValueError: print_w("invalid message: %r" % data) return for command, path in messages: command = bytes2fsn(command, None) response = self._cmd_registry.handle_line(self._app, command) if path is not None: path = bytes2fsn(path, None) with open(path, "wb") as h: if response is not None: assert isinstance(response, fsnative) h.write(fsn2bytes(response, None))