проверка имени во время активации
This commit is contained in:
parent
10b89ce25f
commit
5eb5eeb9ba
35
hlna.py
35
hlna.py
@ -295,6 +295,7 @@ def ports(port, ports_arr, flag):
|
||||
print_line("Port=", port, flag="CYAN")
|
||||
if port in ports_arr:
|
||||
print_line("Порт уже занят", flag="RED")
|
||||
port = check_int("Введите новый порт")
|
||||
else:
|
||||
return port
|
||||
|
||||
@ -311,7 +312,7 @@ def config_cluster():
|
||||
while True:
|
||||
cluster_id = input("Укажите id для кластера, любое сочетание символов: \n")
|
||||
if cluster_id == '':
|
||||
print_line("Введите символы: ", glag="CYAN")
|
||||
print_line("Введите символы: ", flag="CYAN")
|
||||
else:
|
||||
create_dir(dir_server_ark + cluster_id)
|
||||
cluster_dir_override = (dir_server_ark + cluster_id)
|
||||
@ -385,9 +386,12 @@ def config_maps(i):
|
||||
return map_s, port_s, query_p, rcon_p
|
||||
|
||||
|
||||
def config_nameserver(map_s):
|
||||
def config_nameserver(map_s, flag=True):
|
||||
while True:
|
||||
name_server = input("Укажите название Сервера: \n")
|
||||
if flag:
|
||||
name_server = input("Укажите название Сервера: \n")
|
||||
else:
|
||||
name_server = map_s
|
||||
if name_server == "":
|
||||
if map_s in list_config:
|
||||
count = 1
|
||||
@ -407,12 +411,12 @@ def config_nameserver(map_s):
|
||||
2. Нет
|
||||
:""")
|
||||
if choose_reconf == "":
|
||||
config_nameserver(map_s)
|
||||
return
|
||||
elif choose_reconf == "1":
|
||||
return name_server
|
||||
else:
|
||||
print_line("Введите новое имя сервера", flag="YELLOW")
|
||||
config_nameserver(map_s)
|
||||
flag = True
|
||||
else:
|
||||
return
|
||||
else:
|
||||
list_config.append(name_server) # если enter, то ставим последним элементом карту
|
||||
break
|
||||
@ -523,10 +527,8 @@ def config_backup(g, m):
|
||||
if g == "ark":
|
||||
name_server = choose_map(g, m)
|
||||
if m == "all":
|
||||
print_line(f"М: {m}, name_server: {name_server}")
|
||||
all_empty = True # флаг
|
||||
for i in name_server:
|
||||
print_line(f"{i},{g}")
|
||||
data = read_yaml(g, m=i, flag=True)
|
||||
if 'ark_backup' not in data or data['ark_backup'] == "" or data['ark_backup'] == "False":
|
||||
all_empty = False # меняем флаг, если есть значение, которое не пустое
|
||||
@ -783,7 +785,7 @@ def moddownload(g, m, id_mod, dir_mod_ark):
|
||||
if os.path.isfile(uncompressed):
|
||||
os.remove(uncompressed)
|
||||
except Exception as e:
|
||||
print_line(e, flag="GREEN")
|
||||
print_line(e, flag="RED")
|
||||
print_line(f"[x] Unpacking .z files failed, aborting mod install", flag="RED")
|
||||
return False
|
||||
|
||||
@ -829,6 +831,7 @@ def moddownload(g, m, id_mod, dir_mod_ark):
|
||||
f"mv {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf {dir_mod_ark}/appworkshop_{id_game_workshop}.acf")
|
||||
|
||||
|
||||
|
||||
@hlna.command(help='Выключение/включение серверов (без удаления) <hlna switch -m all -d')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option("-m", required=True, help="Название cервера")
|
||||
@ -841,18 +844,13 @@ def switch(g, m, e): # добавить all
|
||||
create_dir(dir_deactivated)
|
||||
if e:
|
||||
port_s, query_p, rcon_p = ports_array()
|
||||
|
||||
state_config = delist_config if e else list_config
|
||||
state_config1 = list_config if e else delist_config
|
||||
state_msg = "активных" if e else "не активных"
|
||||
for i in m:
|
||||
try:
|
||||
state_config1 = list_config if e else delist_config
|
||||
if i in state_config1:
|
||||
print_line(f"Карта {i} уже есть в {state_msg}", flag="CYAN")
|
||||
continue
|
||||
data = read_yaml(g="ark", m=i, flag=not e)
|
||||
print_line(f"дата {data}", flag="RED")
|
||||
if e: # добавить проверку занятости имени
|
||||
data['SessionName'] = config_nameserver(i, flag=False)[-1]
|
||||
data['Port'] = ports(data['Port'], port_s, e)
|
||||
data['QueryPort'] = ports(data['QueryPort'], port_s, e)
|
||||
data['RCONPort'] = ports(data['RCONPort'], port_s, e)
|
||||
@ -915,7 +913,7 @@ def status(list_config=list_config):
|
||||
x = input("Есть неактивные сервера, показать Y/n: ")
|
||||
if x != "n":
|
||||
for i in delist_config:
|
||||
data = read_yaml(i, flag=False)
|
||||
data = read_yaml(m=i,g="ark", flag=False)
|
||||
print_line(f"""
|
||||
Имя сервера: {i}
|
||||
Карта: {data['map']}
|
||||
@ -1000,7 +998,6 @@ def start_stop(action, g, m):
|
||||
def read_yaml(g="", m="", flag=True):
|
||||
"""Читает конфиги активных или неактивных карт в зависимости от флага и отдаёт данные туда где их запросили"""
|
||||
g = g.lower()
|
||||
print_line(f"g: {g}, m: {m}")
|
||||
if g == "ark":
|
||||
if m == "all":
|
||||
print_line("Не правильный вызов yaml, должен вызываться из цикла")
|
||||
|
39
pytest.py
39
pytest.py
@ -3,15 +3,45 @@ import os
|
||||
import hlna
|
||||
import time
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
import zipfile
|
||||
from click.testing import CliRunner
|
||||
from pathlib import Path
|
||||
home_dir = Path.home()
|
||||
config_hlna = f"{home_dir}/.config/hlna/"
|
||||
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from hlna import config
|
||||
|
||||
|
||||
class TestConfig(unittest.TestCase):
|
||||
|
||||
@patch('builtins.input', side_effect=['1'])
|
||||
@patch('hlna.config_ark')
|
||||
def test_config_ark_valid(self, config_ark_mock, input_mock):
|
||||
config()
|
||||
config_ark_mock.assert_called_once()
|
||||
|
||||
@patch('builtins.input', side_effect=['2'])
|
||||
@patch('hlna.config_7daystodie')
|
||||
def test_config_7daystodie_valid(self, config_7daystodie_mock, input_mock):
|
||||
config()
|
||||
config_7daystodie_mock.assert_called_once()
|
||||
|
||||
@patch('builtins.input', side_effect=['3'])
|
||||
@patch('sys.stdout', new_callable=MagicMock)
|
||||
def test_config_invalid_game(self, mocked_stdout, input_mock):
|
||||
config()
|
||||
self.assertEqual(mocked_stdout.getvalue().strip(), "Пока есть только ARK и 7Days xD")
|
||||
|
||||
@patch('builtins.input', side_effect=['a', '1'])
|
||||
@patch('hlna.config_ark')
|
||||
@patch('sys.stdout', new_callable=MagicMock)
|
||||
def test_config_invalid_input(self, mocked_stdout, config_ark_mock, input_mock):
|
||||
config()
|
||||
config_ark_mock.assert_called_once()
|
||||
self.assertEqual(mocked_stdout.getvalue().strip(),
|
||||
"Выберите игру для конфигурирования\n1. ARK Survival Evolved\n2. 7 Days to Die\n: ")
|
||||
class TestFindFile(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.test_dir = 'test_dir'
|
||||
@ -94,6 +124,13 @@ class TestBackup(unittest.TestCase):
|
||||
self.assertEqual(zip_file.testzip(), None)
|
||||
self.assertTrue(os.path.exists(os.path.join(target, f"{config_hlna}ARK/test_file.txt")))
|
||||
|
||||
class TestGetExternalIP(unittest.TestCase):
|
||||
def test_backup(self):
|
||||
self.assertTrue(bool(hlna.get_external_ip()))
|
||||
|
||||
#class TestGetExternalIP(unittest.TestCase):
|
||||
# def test_backup(self):
|
||||
# self.assertTrue(bool(hlna.get_external_ip()))
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user