mirror of
https://github.com/Dinnerbone/mcstatus.git
synced 2026-04-06 03:51:23 +08:00
35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
from unittest import TestCase
|
|
|
|
from mcstatus.protocol.connection import Connection
|
|
from mcstatus.querier import ServerQuerier
|
|
|
|
|
|
class TestQuerier(TestCase):
|
|
def setUp(self):
|
|
self.querier = ServerQuerier(Connection())
|
|
|
|
def test_handshake(self):
|
|
self.querier.connection.receive(bytearray.fromhex("090000000035373033353037373800"))
|
|
self.querier.handshake()
|
|
|
|
self.assertEqual(self.querier.connection.flush(), bytearray.fromhex("FEFD090000000000000000"))
|
|
self.assertEqual(self.querier.challenge, 570350778)
|
|
|
|
def test_query(self):
|
|
self.querier.connection.receive(bytearray.fromhex("00000000000000000000000000000000686f73746e616d650041204d696e656372616674205365727665720067616d657479706500534d500067616d655f6964004d494e4543524146540076657273696f6e00312e3800706c7567696e7300006d617000776f726c64006e756d706c61796572730033006d6178706c617965727300323000686f7374706f727400323535363500686f73746970003139322e3136382e35362e31000001706c617965725f000044696e6e6572626f6e6500446a696e6e69626f6e650053746576650000"))
|
|
response = self.querier.read_query()
|
|
|
|
self.assertEqual(self.querier.connection.flush(), bytearray.fromhex("FEFD00000000000000000000000000"))
|
|
self.assertEqual(response.raw, {
|
|
"hostname": "A Minecraft Server",
|
|
"gametype": "SMP",
|
|
"game_id": "MINECRAFT",
|
|
"version": "1.8",
|
|
"plugins": "",
|
|
"map": "world",
|
|
"numplayers": "3",
|
|
"maxplayers": "20",
|
|
"hostport": "25565",
|
|
"hostip": "192.168.56.1",
|
|
})
|
|
self.assertEqual(response.players, ["Dinnerbone", "Djinnibone", "Steve"]) |