You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.5 KiB

5 years ago
  1. """
  2. file: test_server.py
  3. adds server functionality-tests for pytest
  4. date: 11.07.2019
  5. """
  6. import pytest
  7. def test_ping(server):
  8. assert server.ping(server, "tolsun.oulu.fi") == "PONG"
  9. @pytest.mark.parametrize("test_input,expected", [("password", True), ("wrong password", False)])
  10. def test_command_pass(server, test_input, expected):
  11. server.password = "password"
  12. assert server.command_pass(server, test_input) == expected
  13. def create_user_dict():
  14. user_dict = dict()
  15. user_id = "user"
  16. for i in range(0, 9):
  17. user_dict[(user_id + str(i))] = dict()
  18. return user_dict
  19. @pytest.mark.parametrize("user_dict, user_to_change, nickname, expected_result",
  20. [
  21. (create_user_dict(), "user2", "wayne", True),
  22. (create_user_dict(), "user2", "user4", True),
  23. (create_user_dict(), "user2", "christoph", True),
  24. (create_user_dict(), "user2", "user19", True),
  25. ({"WiZ": {}}, "WiZ", "Kilroy", True)])
  26. def test_change_nickname(server, user_dict, user_to_change, nickname, expected_result):
  27. server.user_dict = user_dict.copy()
  28. assert server.command_nickname(server, user_to_change, nickname) == expected_result
  29. assert user_to_change not in server.user_dict
  30. if nickname in user_dict:
  31. assert nickname not in server.user_dict, nickname + " should have been deleted due to name collision"