Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Функция для проверки идентичности двух таблиц в Behave

behave
python
Теги: #<Tag:0x00007f7b698504f8> #<Tag:0x00007f7b6985ff98>

(rmerkushin) #1

Всем доброго времени суток!

Я тут “наговнокодил” на коленке функцию для сравнения двух таблиц в #behave, возможно это еще кому-то пригодиться :smile:

Пример “выхлопа” #behave (кликабельно):
postimage

По умолчанию таблица рисуется в ASCII виде для логирования и поддержки отображения в отчете PyCharm. Чтобы получить красивую табличку в консоли, нужно передать #behave аргумент ttest_out=console через ключ -D. Для выводимых таблиц можно указать заголовок и имя через аргументы функции. Функция не проверяет сортировку таблиц, по этому таблицы нужно подавать на вход в уже отсортированном виде и с одинаковым количеством столбцов. Таблицы должны быть в формате list of lists, где каждый список внутри списка это строка таблицы. Так же есть возможность сравнивать текущее время в таблицах, например таймстемп создания записи в БД. Для этого необходимо выставить аргумент datetime=True, в таблицу которая будет считаться эталонной вставить время в таком формате: $dt=<timestamp>, например: $dt=2016-12-28 12:18:43.675448 и указать максимальную дельта, при значении выше которой, проверка будет считаться неуспешной. По умолчанию дельта - это 60 секунд разницы.

P.S.: Проверялась функция только на Python 3, но по идее должно взлететь и на Python 2.7 (возможно с небольшими правками). Так же, думаю не составит большого труда допилить это все для использования вместе c #pytest
P.P.S.: Буду рад конструктивной критике и разумным предложениям :slight_smile: