Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2016 11:19:35

dron4ik86
Зарегистрирован: 2016-10-28
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка файла csv с переменой

Привет всем,
Я хочу сделать проверку данных которые находятся в csv и переменой. Я использую для этого unittest. Проверка получается, но есть проблема что если данные не совпадают я не могу знать где проблема, а именно в csv или в переменой. Как можно получить информацию в каком месте есть ошибка?

 tb_row = [u'120 dev 15.61', u'126 kor 12.96', u'128 itsw 20.58'] 
        for i, x in enumerate(tb_row):
            tb_row[i] = x
        rows = []
        with open('/home/andrey/Desktop/test.csv', 'rb', ) as csvfile:  
            the_file = csv.reader(csvfile, delimiter=',')
            for row in the_file:
                rows.extend([x.decode('utf8') for x in row])
        q = u' '.join(tb_row).split()
        w = u' '.join(rows).split()
        for index, value in enumerate(q):  # comparing csv with web
            self.assertEqual(w[index], value)

Отредактировано dron4ik86 (Ноя. 3, 2016 11:20:30)

Офлайн

#2 Ноя. 3, 2016 12:37:13

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Проверка файла csv с переменой

Тесты должны быть простыми настолько, чтобы их самих не нужно было тестировать. То есть максимальная простота, где ошибки не возникнет. А ты тут что-то наворотил.



Офлайн

#3 Ноя. 3, 2016 12:41:24

dron4ik86
Зарегистрирован: 2016-10-28
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка файла csv с переменой

py.user.next
Тесты должны быть простыми настолько, чтобы их самих не нужно было тестировать. То есть максимальная простота, где ошибки не возникнет. А ты тут что-то наворотил.
А что я здесь натворил не так?

Офлайн

#4 Ноя. 3, 2016 12:44:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Проверка файла csv с переменой

dron4ik86
А что я здесь натворил не так?
Ну, ты толи сложный тест написал, толи используешь unittest не по назначению. Если второе, то ты делаешь не то. Если первое, то тест надо упростить.

dron4ik86
Я использую для этого unittest.
В общем, вопрос - с чего ты решил использовать unittest?



Отредактировано py.user.next (Ноя. 3, 2016 12:44:56)

Офлайн

#5 Ноя. 3, 2016 12:48:33

dron4ik86
Зарегистрирован: 2016-10-28
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка файла csv с переменой

py.user.next
Использую unittest для авто тестов Selenium+Python. Я получаю элементы и сравниваю их с csv, не вижу здесь какой то проблемы, просто хочу знать от, куда приходит ошибка, с сайта или с файла

Офлайн

#6 Ноя. 3, 2016 13:13:52

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Проверка файла csv с переменой

dron4ik86
Я получаю элементы и сравниваю их с csv, не вижу здесь какой то проблемы
Почитай что-нибудь по тестированию, потому что это слишком сложные тесты, в которых запросто может быть какая-нибудь ошибка, из-за которой тест будет выдавать неправильный результат (неправильно тестировать) и ты даже об этом не узнаешь. Будешь думать, что он тестирует, а он нифига не тестирует. Если для теста нужно писать тест, то это плохой тест.



Офлайн

#7 Ноя. 4, 2016 13:05:22

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Проверка файла csv с переменой

первые три строки ничего полезного не делают:

 tb_row = [u'120 dev 15.61', u'126 kor 12.96', u'128 itsw 20.58']
tb_row_copy = list(tb_row)
for i, x in enumerate(tb_row):
    tb_row[i] = x
if(tb_row == tb_row_copy):
    print('useless')

почему Вы csv в бинарном пытаетесь читать? прикрепите пример файла

вместо:
 u' '.join(rows).split()
лучше:
 chain.from_iterable(x.split() for x in tb_row])
может чуть больше кода, но на мой взгляд более внятно и оптимально при большом количестве строк


и именно здесь тестирование проще всего выполнить доктестом - меньше кода и более наглядно



Отредактировано izekia (Ноя. 4, 2016 13:06:24)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version