Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
def get_log_group_names(database: DataBase) -> tuple:
    """Функция получения групп шаблонов

    :param database: объъект класса БД.

    :return: список групп шаблонов.
    """
    return database.get_log_group_names()
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self._database = DataBase()
        self._database.connect()