mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00
MultiServer: fix case sensitivity in server commands (#1156)
* fix case sensitivity in server commands * improve ambiguous match breakout * worried about accidentally swapping team and slot * Remove now unused import
This commit is contained in:
40
test/programs/TestMultiServer.py
Normal file
40
test/programs/TestMultiServer.py
Normal file
@@ -0,0 +1,40 @@
|
||||
import unittest
|
||||
from MultiServer import Context, ServerCommandProcessor
|
||||
|
||||
|
||||
class TestResolvePlayerName(unittest.TestCase):
|
||||
def test_resolve(self) -> None:
|
||||
p = ServerCommandProcessor(Context("", 0, "", "", 0, 0, False))
|
||||
p.ctx.player_names = {
|
||||
(1, 1): "AAA",
|
||||
(1, 2): "aBc",
|
||||
(1, 3): "abC",
|
||||
}
|
||||
assert not p.resolve_player("abc"), "ambiguous name entry shouldn't resolve to player"
|
||||
assert not p.resolve_player("Abc"), "ambiguous name entry shouldn't resolve to player"
|
||||
assert p.resolve_player("aBc") == (1, 2, "aBc"), "matching case resolve"
|
||||
assert p.resolve_player("abC") == (1, 3, "abC"), "matching case resolve"
|
||||
assert not p.resolve_player("aB"), "partial name shouldn't resolve to player"
|
||||
assert not p.resolve_player("abCD"), "incorrect name shouldn't resolve to player"
|
||||
|
||||
p.ctx.player_names = {
|
||||
(1, 1): "aaa",
|
||||
(1, 2): "abc",
|
||||
(1, 3): "abC",
|
||||
}
|
||||
assert p.resolve_player("abc") == (1, 2, "abc"), "matching case resolve"
|
||||
assert not p.resolve_player("Abc"), "ambiguous name entry shouldn't resolve to player"
|
||||
assert not p.resolve_player("aBc"), "ambiguous name entry shouldn't resolve to player"
|
||||
assert p.resolve_player("abC") == (1, 3, "abC"), "matching case resolve"
|
||||
|
||||
p.ctx.player_names = {
|
||||
(1, 1): "AbcdE",
|
||||
(1, 2): "abc",
|
||||
(1, 3): "abCD",
|
||||
}
|
||||
assert p.resolve_player("abc") == (1, 2, "abc"), "matching case resolve"
|
||||
assert p.resolve_player("abC") == (1, 2, "abc"), "case insensitive resolves when 1 match"
|
||||
assert p.resolve_player("Abc") == (1, 2, "abc"), "case insensitive resolves when 1 match"
|
||||
assert p.resolve_player("ABC") == (1, 2, "abc"), "case insensitive resolves when 1 match"
|
||||
assert p.resolve_player("abcd") == (1, 3, "abCD"), "case insensitive resolves when 1 match"
|
||||
assert not p.resolve_player("aB"), "partial name shouldn't resolve to player"
|
Reference in New Issue
Block a user