Archipelago/test/programs/TestMultiServer.py

41 lines
2.0 KiB
Python
Raw Normal View History

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"