-
-
Save artbear/6035f681b745a7b066f64f372b816af9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
################################################################################ | |
# В данном файле описана заготовка для создания скриптов для | |
# 1С:Центра Автоматизации. Все поставляемые скрипты написаны по данному шаблону, | |
# поэтому можно любой скрипт использовать как пример. | |
################################################################################ | |
# Этот модуль требуется импортировать в начале каждого скрипта. | |
from lib.common import bootstrap | |
# Экспорт базового класса для сценария. Он отвечает за настройку логгирования, | |
# базовую валидацию параметров, перехват исключений и корректное завершение | |
# скрипта и т.д. | |
from lib.common.base_scenario import BaseScenario | |
# Экспорт класса ошибок. | |
from lib.common.errors import SACError | |
# Далее могут экспоритроваться любые модули. | |
# Структура lib : | |
# | -- common : базовая функциональность для скриптов | |
# | |-- base_scenario : базовые классы для сценариев | |
# | |-- bootstrap : модуль, в котором производится первоначальная настройка | |
# | |-- config : определение базового класса для описания конфигурации | |
# | сценария и вспомогательные функции (в т.ч. StrPathExpanded) | |
# | |-- const : описание некоторых констант | |
# | |-- errors : описание ошибок и реализация класса ошибок SACError | |
# | |-- global_vars : содержит в себе глобальные переменны | |
# | |-- logger : содержит в себе глобальный объект логгера global_logger и | |
# | класс LogFunc, который предназначен для замера времени | |
# | | |
# |-- utils : вспомогательные функции, классы (сам модуль также содержит в себе | |
# | функции и классы) | |
# | |-- apache : функции для работы с Apache | |
# | |-- cmd : содержит в себе инструменты для запуска внешних утилит | |
# | |-- cvt : содержит в себе функции для конвертации типов | |
# | |-- fs : содержит в себе инструменты для работы с файловой системой | |
# | | |
# |-- linux_utils : вспомогательные утилиты для Linux (сам модуль также содержит | |
# | в себе функции и классы) | |
# | |-- deb : содержит инструменты для работы с DEB системами | |
# | |-- rpm : содержит инструменты для работы с RPM системами | |
# | |-- apache : функции для работы с Apache | |
# | |-- service : инструменты для работы с сервисами | |
# | |-- platform_installer : реализация установки платформы | |
# | |-- platform_remover : реализация удаления платформы | |
# | | |
# |-- win_utils : вспомогательные утилиты для Windows (сам модуль также содержит | |
# | в себе функции и классы) | |
# | |-- apache : функции для работы с Apache | |
# | |-- service : инструменты для работы с сервисами | |
# | |-- platform_installer : реализация установки платформы | |
# | |-- platform_remover : реализация удаления платформы | |
# | |-- iis : функции для работы с IIS | |
# | |-- permissions : функции дял проверки прав | |
# | | |
# |-- proc_tree_controller : утилита для запуска процессов и контроля всего | |
# | дерева процессов | |
# | |
# Также в lib лежит код, который требуется отдельным сценариям и не предназначен | |
# для переиспользования. | |
## Основной класс, реализующий сценарий. Более детально можно посмотреть в | |
# lib/common/base_scenario.py . | |
class ExampleScenario(BaseScenario): | |
# Базовый класс имеет 2 поля, которые можно использовать внутри методов: | |
# | |
# self.config - ScenarioConfiguration объект, который хранит в себе | |
# данные, пришедшие извне. К этому объекту можно обращаться как к словарю, | |
# т.е., например, self.config["input-parameter"]. Этот словарь всегда | |
# содержит параметры "os-type" и "arch". | |
# | |
# self.tmp - путь ко временной директории, которая будет удалена по | |
# завершению работы скрипта. Ее можно использовать для любых целей. | |
## Метод, который валидирует входные данные. Что валидация считалась | |
# неуспешной, метод должен выбросить исключение (любое). В противном случае | |
# валидация считается успешной. | |
def _validate_specific_data(self): | |
pass | |
## Метод, который выполняется после инициализации скрипта и прохождения | |
# валидации. Тут могут быть выполнены любые действия, которые нужны перед | |
# началом теста. | |
def _after_init(self): | |
pass | |
## Метод, который возвращает список тестов, которые необходимо провести. | |
# Каждый тест должен быть функцией, не принимающей параметры. | |
# Возвращаемый список должен содержать кортежи (имя теста, функция, | |
# выполнять только если тест не ограничивается). | |
def _get_available_tests(self): | |
return [ | |
("test-name", lambda: True, False), | |
] | |
## Метод, реализующий основную логику. Он запускается в случае, если | |
# test-mode == False. | |
def _real(self): | |
pass | |
# Позволяет запускать сценарий, если данный файл был запущен напрямую. | |
if __name__ == "__main__": | |
ExampleScenario.main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment