Exemplo n.º 1
0
 def test_error(self):
     # Zero-length payload
     self.assertRaises(WireProtocolError, ERRORDatagram.from_wire, '')
     # One byte payload
     self.assertRaises(WireProtocolError, ERRORDatagram.from_wire, '\x00')
     # Errorcode only (maybe this should fail)
     dgram = ERRORDatagram.from_wire('\x00\x01')
     self.assertEqual(dgram.errorcode, 1)
     self.assertEqual(dgram.errmsg, errors[1])
     # Errorcode with errstring - not terminated
     dgram = ERRORDatagram.from_wire('\x00\x01foobar')
     self.assertEqual(dgram.errorcode, 1)
     self.assertEqual(dgram.errmsg, 'foobar')
     # Errorcode with errstring - terminated
     dgram = ERRORDatagram.from_wire('\x00\x01foobar\x00')
     self.assertEqual(dgram.errorcode, 1)
     self.assertEqual(dgram.errmsg, 'foobar')
     # Unknown errorcode
     self.assertRaises(WireProtocolError, ERRORDatagram.from_wire, '\x00\x0efoobar')
     # Unknown errorcode in from_code
     self.assertRaises(WireProtocolError, ERRORDatagram.from_code, 13)
     # from_code with custom message
     dgram = ERRORDatagram.from_code(3, "I've accidentally the whole message")
     self.assertEqual(dgram.errorcode, 3)
     self.assertEqual(dgram.errmsg, "I've accidentally the whole message")
     self.assertEqual(dgram.to_wire(), "\x00\x05\x00\x03I've accidentally the whole message\x00")
     # from_code default message
     dgram = ERRORDatagram.from_code(3)
     self.assertEqual(dgram.errorcode, 3)
     self.assertEqual(dgram.errmsg, "Disk full or allocation exceeded")
     self.assertEqual(dgram.to_wire(), "\x00\x05\x00\x03Disk full or allocation exceeded\x00")
Exemplo n.º 2
0
 def test_error(self):
     # Zero-length payload
     self.assertRaises(WireProtocolError, ERRORDatagram.from_wire, b'')
     # One byte payload
     self.assertRaises(WireProtocolError, ERRORDatagram.from_wire, b'\x00')
     # Errorcode only (maybe this should fail)
     dgram = ERRORDatagram.from_wire(b'\x00\x01')
     self.assertEqual(dgram.errorcode, 1)
     self.assertEqual(dgram.errmsg, errors[1])
     # Errorcode with errstring - not terminated
     dgram = ERRORDatagram.from_wire(b'\x00\x01foobar')
     self.assertEqual(dgram.errorcode, 1)
     self.assertEqual(dgram.errmsg, b'foobar')
     # Errorcode with errstring - terminated
     dgram = ERRORDatagram.from_wire(b'\x00\x01foobar\x00')
     self.assertEqual(dgram.errorcode, 1)
     self.assertEqual(dgram.errmsg, b'foobar')
     # Unknown errorcode
     self.assertRaises(WireProtocolError, ERRORDatagram.from_wire,
                       b'\x00\x0efoobar')
     # Unknown errorcode in from_code
     self.assertRaises(WireProtocolError, ERRORDatagram.from_code, 13)
     # from_code with custom message
     dgram = ERRORDatagram.from_code(
         3, b"I've accidentally the whole message")
     self.assertEqual(dgram.errorcode, 3)
     self.assertEqual(dgram.errmsg, b"I've accidentally the whole message")
     self.assertEqual(
         dgram.to_wire(),
         b"\x00\x05\x00\x03I've accidentally the whole message\x00")
     # from_code default message
     dgram = ERRORDatagram.from_code(3)
     self.assertEqual(dgram.errorcode, 3)
     self.assertEqual(dgram.errmsg, b"Disk full or allocation exceeded")
     self.assertEqual(
         dgram.to_wire(),
         b"\x00\x05\x00\x03Disk full or allocation exceeded\x00")
Exemplo n.º 3
0
 def test_error_codes(self):
     # Error codes 0 to 8 are formally defined for TFTP (as of 2015-02-04).
     for errorcode in range(0, 9):
         data = struct.pack("!H", errorcode) + "message\x00"
         dgram = ERRORDatagram.from_wire(data)
         self.assertEqual(dgram.errorcode, errorcode)
Exemplo n.º 4
0
 def test_error_codes(self):
     # Error codes 0 to 8 are formally defined for TFTP (as of 2015-02-04).
     for errorcode in range(0, 9):
         data = struct.pack(b"!H", errorcode) + b"message\x00"
         dgram = ERRORDatagram.from_wire(data)
         self.assertEqual(dgram.errorcode, errorcode)