Skip to content

Тестовое задание для компании Ngenix

Notifications You must be signed in to change notification settings

droppoint/ngenix-demo-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ngenix demo task: Тестовое задание для компании Ngenix

Задание

Написать программу на Python, которая делает следующие действия:

  1. Создает 50 zip-архивов, в каждом 100 xml файлов со случайными данными следующей структуры:

    <root>
        <var name='id' value='<случайное уникальное строковое значение>'/>
        <var name='level' value='<случайное число от 1 до 100>'/>
        <objects>
            <object name='<случайное строковое значение>'/>
            <object name='<случайное строковое значение>'/>
        </objects>
    </root>

    В тэге objects случайное число (от 1 до 10) вложенных тэгов object.

2. Обрабатывает директорию с полученными zip архивами, разбирает вложенные xml файлы и формирует 2 csv файла: Первый: id, level - по одной строке на каждый xml файл Второй: id, object_name - по отдельной строке для каждого тэга object (получится от 1 до 10 строк на каждый xml файл)

Зависимости

  • Pyton >= 3.4.1

Установка

Задание было оформлено в виде python пакета, поэтому его установка крайне проста:

$ git clone https://github.com/droppoint/ngenix-demo-task.git
$ cd ngenix-demo-task
$ python setup.py install

Использование

Проект оснащен интерфейсом командной строки. Для получения справки достаточно выполнить команду:

$ ndt --help

Доступны три команды: generate, parse и cycle для выполнения задач №1, №2, №1 и №2 одновременно соответственно. Справку по команде можно получить следующим образом:

$ ndt generate --help

Тестирование

Проект содержит в себе тесты и поддерживает фреймворк тестирования tox. Для запуска тестирования и синтаксической проверки достаточно выполнить команду:

$ tox

About

Тестовое задание для компании Ngenix

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages