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")
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")
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)
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)