Files
minecraft-bot/tests/test_sneak_placement.py
T

41 lines
1.3 KiB
Python

import unittest
from munch import Munch
from minecraft.networking.modern import ClientTickEnd, UseItemOnBlockPacket
from mosfet.game import Game
from mosfet.protocol.modern import PlayerInputPacket
class FakeConnection:
def __init__(self):
self.packets = []
def write_packet(self, packet, force=False):
self.packets.append((packet, force))
class SneakPlacementTests(unittest.TestCase):
def test_sneaking_wraps_block_placement_and_is_released(self):
connection = FakeConnection()
game = Game.__new__(Game)
game.g = Munch(connection=connection)
game.sequence = 0
game.place_block((3, 64, 7), 1, sneaking=True)
packets = [packet for packet, _force in connection.packets]
self.assertEqual(len(packets), 6)
self.assertIsInstance(packets[0], PlayerInputPacket)
self.assertEqual(packets[0].flags, 0x20)
self.assertIsInstance(packets[1], ClientTickEnd)
self.assertIsInstance(packets[2], UseItemOnBlockPacket)
self.assertEqual(packets[2].location, (3, 64, 7))
self.assertIsInstance(packets[3], ClientTickEnd)
self.assertIsInstance(packets[4], PlayerInputPacket)
self.assertEqual(packets[4].flags, 0)
self.assertIsInstance(packets[5], ClientTickEnd)
if __name__ == '__main__':
unittest.main()