def __init__(self, bot, config, server_service): """Initializes the object :param bot: :param config: :param server_service: """ self.bot = bot self.config = config self.service = NotificationService(config, server_service) self.send_server_notification.start()
def test_msg_contains_servers_info(service: NotificationService, test_pop_servers, mention): msg = service.create_msg_content(test_pop_servers, mention) # Not all A2S server information is used in the messages, so don't iterate over key-item pairs isCorrectMsg = True for server in test_pop_servers: if msg.find(server["server_name"]) == -1: isCorrectMsg = False if msg.find(server["map"]) == -1: isCorrectMsg = False if msg.find(str(server["player_count"])) == -1: isCorrectMsg = False if msg.find(str(server["max_players"])) == -1: isCorrectMsg = False assert isCorrectMsg
def test_msg_shouldnt_ping_role(service: NotificationService, mention, test_pop_servers): service.should_ping_role = False msg = service.create_msg_content(test_pop_servers, mention) assert msg.find(mention) == -1
def test_empty_servers_notice(service: NotificationService, mention): msg = service.create_msg_content([], mention) assert msg.find("empty") != -1
def test_returns_edit_notification_if_last_message_and_shouldnt_ping(service: NotificationService): service.should_ping_role = False notification_type = service.get_notification_type(1, 1, [], False) assert notification_type.Edit
def test_returns_new_notification_if_not_last_message(service: NotificationService): service.should_ping_role = False notification_type = service.get_notification_type(0, 1, [], False) assert notification_type.New
def test_returns_new_notification_if_should_ping(service: NotificationService, test_pop_servers): service.should_ping_role = True notification_type = service.get_notification_type(1, 1, test_pop_servers, False) assert notification_type == NotificationType.New
def test_force_updates_doesnt_timeout_pings(service: NotificationService): service.get_notification_type(0, 1, [], True) assert service.timeout_timer.is_alive() is False
def test_returns_notice_when_forced_and_no_active(service: NotificationService): notification_type = service.get_notification_type(0, 1, [], True) assert notification_type == NotificationType.Forced
def test_does_nothing_when_no_active(service: NotificationService): notification_type = service.get_notification_type(0, 1, [], False) assert notification_type == NotificationType.NoNotification
def service(config): server_service = ServerService(config) service = NotificationService(config, server_service) yield service del service
def test_msg_should_contain_time(service: NotificationService, test_pop_servers, mention): msg = service.create_msg_content(test_pop_servers, mention) time = re.search(r'\d{2}:\d{2}', msg) assert time is not None
def test_server_over_ping_threshold(service: NotificationService, mention, test_pop_servers): service.config["min_ping_players"] = 0 service.should_ping_role = True msg = service.create_msg_content(test_pop_servers, mention) assert msg.find(mention) != -1