# -*- coding: utf-8 -*-
from argparse import ArgumentParser
files_name = {
'steps.edutesting.ui_steps.desktop_steps': 'Шаги для работы с рабочим столом',
'steps.edutesting.ui_steps.field_steps': 'Шаги для работы с полями формы',
'steps.edutesting.ui_steps.grid_steps': 'Шаги для работы с гридами',
'steps.edutesting.ui_steps.helpers': 'Вспомогательные шаги',
'steps.edutesting.ui_steps.login': 'Шаги для авторизации',
'steps.edutesting.ui_steps.ui': 'Не отсортированные по категориям шаги',
'steps.factory_steps': 'Шаги для создание тестовых данных',
'steps.journal': 'Шаги для Классного журнала (ЭШ)',
'steps.edo': 'Шаги ЭДО',
'steps.personal_area_steps': 'Шаги для работы с интерфейсом ученика',
}
[документация]def chagen_docid(file_str, docid):
res = []
index = docid[6:]
for l in file_str:
if docid in l:
l = l.replace(docid, files_name[docid])
if index in l:
l = l.replace(index, files_name[docid])
res.append(l)
return res
[документация]def create_rst_file(lines, docid):
fname = files_name.get(docid, None)
if fname:
lines = chagen_docid(lines, docid)
with open('.'.join((fname, 'rst',)), 'w') as f:
f.write('\n'.join(lines))
[документация]def replace_gherkin_steps(line):
gherkin_steps = {
'Given': 'Дано',
'When': 'Когда',
'Then': 'То',
}
for k, v in gherkin_steps.iteritems():
if k in line:
line = line.replace(k, v)
return line
[документация]def main(file_with_doc):
with open(file_with_doc) as f:
lines = f.read()
docid = ''
doc = []
for line in lines.split('\n'):
if line.startswith(':Module:') or line.startswith(':Filename:'):
continue
if line.startswith('.. _docid'):
docid = line[9:].strip('.:')
line = replace_gherkin_steps(line)
if line.startswith('# -- DOCUMENT-END'):
create_rst_file(doc, docid)
doc = []
continue
doc.append(line)
if __name__ == '__main__':
arg_parser = ArgumentParser()
arg_parser.add_argument('--step-doc', type=str, default='')
args = vars(arg_parser.parse_args())
main(args['step_doc'])