class DBEditor(QObject): """Класс для работы с БД из QML. """ logGroupsChanged = pyqtSignal() def __init__(self, parent=None): super().__init__(parent) self._database = DataBase() self._database.connect() @pyqtSlot(str, str, result=int) def create_log_group(self, log_group_name: str, description: str) -> int: """Qt слот создания группы жруналов. Используется в LogEditor.qml :param log_group_name: имя группы журналов; :param description: описание группы журналов. :return: код ответа функции создания (см описание функции ниже). """ code = db_log.create_log_group(self._database, log_group_name, description) if code == 0: self.logGroupsChanged.emit() return code @pyqtSlot(result=list) def get_log_groups(self) -> list: """Qt слот получения списка групп журналов. :return: список групп журналов. """ return list(db_log.get_log_group_names(self._database)) @pyqtSlot(str, result=str) def get_log_group_description(self, log_group_name: str) -> str: """Qt слот получения описания группы журналов. :param log_group_name: имя группы журналов. :return: описание группы журналов. """ return db_log.get_log_group_description(self._database, log_group_name) @pyqtSlot(str, str, str, result=int) def edit_log_group_info(self, current_name: str, new_name: str, new_description: str) -> int: """Qt слот редактирование информации по группе журналов (имя и описание). :param current_name: старое имя; :param new_name: новое имя; :param new_description: новое описание. :return: код ответа функции создания (см описание функции ниже). """ code = db_log.edit_log_group_info(self._database, current_name, new_name, new_description) if code == 0: self.logGroupsChanged.emit() return code
def get_log_group_names(database: DataBase) -> tuple: """Функция получения групп шаблонов :param database: объъект класса БД. :return: список групп шаблонов. """ return database.get_log_group_names()
def get_log_group_description(database: DataBase, log_group_name: str) -> str: """Функция получения описания группы шаблонов. :param database: объект класса БД; :param log_group_name: имя группы шаблонов. :return: описание группы шаблонов. Если из Бд вернулось "", то это ошибка, такого быть не должно, по какой-то причине группа шаблонов с таким именем не была найдена. """ description = database.get_log_group_description(log_group_name) assert description != "NULL", "[1001] Группы шаблонов " + log_group_name + " не существует!" return description
def create_log_group(database: DataBase, log_group_name: str, description: str) -> int: """Функция создания группы журналов. :param database: объект класса БД; :param log_group_name: имя группы; :param description: описание группы. :return: код выполнения запроса: 0 - успешно; -1 - не соблюдена уникальность имени группы шаблона; """ return database.insert_log_group(log_group_name, description)
def edit_log_group_info(database: DataBase, current_name: str, new_name: str, new_description: str) -> int: """Функция редактирования информации по группе журналов (имя и описание). :param database: объект класса БД; :param current_name: старое имя; :param new_name: новое имя; :param new_description: новое описание. :return: код выполнения запроса: 0 - успешно; -1 - не соблюдена уникальность имени группы шаблона; """ return database.update_log_group_info(current_name, new_name, new_description)
def test_create_new_user(browser, get_data_for_admin_login, get_data_for_add_user, db_connect): with allure.step("Open app and log in as admin"): admin_page = AdminPage(browser) admin_page.open_admin_login_page() admin_username, admin_passwd = get_data_for_admin_login admin_page.login(admin_username, admin_passwd) with allure.step("Create user"): admin_user_page = UsersAdminPage(browser) admin_user_page.click_on_button_from_left_admin_page_block("Users") new_username, new_passwd = get_data_for_add_user admin_user_page.add_new_user(new_username, new_passwd) admin_user_page.set_staff_status_to_user() with allure.step("Check is user in db"): connect = db_connect db = DataBase(connect) db.is_user_in_auth_table(new_username) with allure.step("Log in as new user"): admin_page.click_on_button_from_top_toolbar("Log out") admin_page.click_on_button_from_top_toolbar("Django administration") admin_page.login(new_username, new_passwd) admin_page.is_login_successful(new_username)
def __init__(self, host_ip=None, hostname=None, port=None, project=None): # self.live = Thread(target=self.stream) self.socket = socket.socket() self.db = DataBase(settings.DATABASE_FP) if host_ip is None: host_ip = socket.gethostbyname(socket.gethostname()) # host = '192.168.1.176' self.host_ip = host_ip if hostname is None: hostname = self.host_ip self.hostname = hostname if port is None: port = 80 self.port = port if project is None: project = '..' self.project = project self.db_lock = Lock() self.api = API(self.db, self.db_lock, self.hostname, self.port) self.socket.bind((self.host_ip, self.port)) self.socket.listen(5)
def __init__(self, parent=None): super().__init__(parent) self._database = DataBase() self._database.connect()