Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
26 kB
1
Indexable
Never
/Users/anproskuryakova/PycharmProjects/autotests/ex_backend_autotests/venv/bin/python /Applications/PyCharm CE.app/Contents/plugins/python-ce/helpers/pycharm/_jb_pytest_runner.py --target test_robot_selection.py::test_selection 
Testing started at 20:06 ...
Launching pytest with arguments test_robot_selection.py::test_selection --no-header --no-summary -q in /Users/anproskuryakova/PycharmProjects/autotests/ex_backend_autotests/tests/selection

/Users/anproskuryakova/PycharmProjects/autotests/ex_backend_autotests/venv/lib/python3.8/site-packages/pluggy/_callers.py:39: ResourceWarning: unclosed <ssl.SSLSocket fd=13, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('10.220.133.72', 57935), raddr=('10.114.1.193', 8200)>
  res = hook_impl.function(*args)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
============================= test session starts ==============================
collecting ... collected 1 item

test_robot_selection.py::test_selection  в фикстуре определили бт юзера bt_user_id = Decimal('491720')
FAILED                           [100%]в самом начале 0
начало здесь store_task_id = 171958445
здесь все bt_user_id = Decimal('491720')
:
 Data(posting_batch_id=Decimal('85315241'), physical_store_id=Decimal('96695'), consig_id=None, storage_area_id=Decimal('470'))
данные для теста -  Data(posting_batch_id=Decimal('85315241'), physical_store_id=Decimal('96695'), consig_id=None, storage_area_id=Decimal('470'))
None # Берем задание в работу
{'IsMegaKassaStoreTask': 0} # 1.0.1 Является ли задание для процесса Мегакасса
1
1 # 1.0.2. Включена ли упаковка
[{'ID': Decimal('171958445'), 'Number': 1, 'StoreTaskTypeID': 1, 'StoreTaskStatusID': 2, 'PostingBatchID': Decimal('85315241'), 'BTUserID': Decimal('496419'), 'ConsigID': None, 'StorageAreaID': Decimal('470'), 'StatusMoment': datetime.datetime(2023, 10, 11, 16, 36, 40, 120000), 'BoxingID': None, 'SerialNumber': None, 'StatusUserName': 'OZON\\ipoltavtsev', 'ProcessingRate': None, 'ParentID': None, 'CrossQty': None, 'ExtraQty': None, 'CargoID': None, 'PLKStoreName': '', 'CargoPriemUser': '', 'SortPlaceID': None, 'StoreTaskNumber': '85315241-1', 'StoreTaskTypeAndNumber': 'Подбор №85315241-1', 'StoreTaskShortName': 'ПТ №85315241-1', 'StoreTaskStatus': 'Передано в подбор', 'StartStatus': 0, 'FinishStatus': 0, 'StoreTaskType': 'Подбор товара', 'BTUser': 'rezon_employee_lname_496419 rezon_employee_name_496419', 'StorageArea': 'Зона Д Мытищи FRESH', 'ShowTransporterBranch': 0, 'Consig': None, 'Qty': 9, 'Boxing': None, 'transfer': None, 'TransferID': None, 'ObjectPropertyUpdatable': 0, 'BrakQty': 0, 'Cargo': None, 'ConsolidationFloor': 'ФРЕШ ДЕНЬ В ДЕНЬ', 'SortMethod': 'ФРЕШ ДЕНЬ В ДЕНЬ', 'ZoneD': 0, 'SortPlaceName': '', 'StoragePlaceCellName': None, 'StoragePlaceCellID': None, 'RequireBoxing': 0, 'RequireLargeBoxing': 0, 'BoxingQtyEst': Decimal('1'), 'BoxingQtyReq': None, 'BoxingQtyFact': 0, 'StoreTaskBoxingQtyFact': 0, 'SerialNumberRequired': 0, 'StoreTaskFresh': 1, 'SortPlaceIsFreshID': None, 'TerminalComment': None, 'Comp': None, 'Inventory': None, 'InventoryID': None, 'RequirePickupDropLocation': 0, 'EnabledTransferPoint': 0, 'TareTypeID': None, 'EntryAll': 0, 'ExistEAN': 0, 'TransferBoxingReqQty': 0, 'TransferBoxingFactQty': None, 'PhysicalStoreBrief': None, 'NameForBarOzon': '', 'UseBoxing': None, 'PackUsingTerminal': 0, 'MaxPostingInBatchQty': 1, 'MaxItemQtyInPosting': 1000, 'ForMarking': 0, 'RevisionID': None, 'Revision': None, 'CreateTransfer': 0, 'ConsolidationCellID': Decimal('0'), 'AddressStorageBoxingID': None, 'BoxingNotRequired': 0, 'StoreTaskBoxingAdd': 0, 'PhysicalStoreType': 1, 'PhysicalStoreID': Decimal('96695'), 'RegionDstPhysicalStore': None, 'HaveDataMatrix': 0}] # 1.1.1 Получаем данные по заданию
0
0  1.1.2. Проверка на моно задание
По данному store_task_id = 171958445 больше нет работы
3.1.1 posting_data = {'ID': Decimal('85315241'), 'Date': datetime.datetime(2023, 10, 8, 0, 0), 'SortPlaceID': None, 'PostingBatchStatusID': 6, 'SortMethodID': Decimal('369'), 'ConsolidationCellID': None, 'StatusMoment': datetime.datetime(2023, 10, 11, 14, 17, 5, 900000), 'FinishApprovedUserName': None, 'FinishApprovedMoment': None, 'ExpectedFinishMoment': None, 'Priority': 2, 'Comment': None, 'PostingBatchStatus': 'Обработка завершена', 'StartStatus': 0, 'FinishStatus': 1, 'SortMethod': 'ФРЕШ ДЕНЬ В ДЕНЬ', 'SortPlace': None, 'ConsolidationCell': None, 'ConsigID': None, 'Consig': None, 'SortedQty': 9, 'NotSortedQty': 0, 'ConsigIDNotFound': None, 'ConsigNotFound': None, 'ConsolidationCellForSorting': 'FRESH D2D 1', 'SortPriority': 2, 'SortPlaceTypeID': None, 'CutOffTime': datetime.datetime(2023, 10, 8, 9, 20), 'StoreTaskQty': 1, 'BoxingQty': 0, 'HasEAN': 1, 'ControlByQty': 0}
pbatch =  85315241
res_3_1_2 = "3.1.2 Error - (50000, b'\\xd0\\x9e\\xd0\\xbf\\xd0\\xb5\\xd1\\x80\\xd0\\xb0\\xd1\\x86\\xd0\\xb8\\xd1\\x8f \\xd0\\xbe\\xd1\\x82\\xd0\\xbc\\xd0\\xb5\\xd0\\xbd\\xd0\\xb5\\xd0\\xbd\\xd0\\xb0. \\xd0\\xa1\\xd1\\x82\\xd0\\xb0\\xd1\\x82\\xd1\\x83\\xd1\\x81 \\xd0\\xbf\\xd0\\xb0\\xd0\\xba\\xd0\\xb5\\xd1\\x82\\xd0\\xb0 \\xd0\\xbe\\xd1\\x82\\xd0\\xbf\\xd1\\x80\\xd0\\xb0\\xd0\\xb2\\xd0\\xbb\\xd0\\xb5\\xd0\\xbd\\xd0\\xb8\\xd0\\xb9 (@ID=85315241) \\xd0\\xbd\\xd0\\xb5 \\xd0\\xb4\\xd0\\xbe\\xd0\\xbf\\xd1\\x83\\xd1\\x81\\xd0\\xba\\xd0\\xb0\\xd0\\xb5\\xd1\\x82 \\xd0\\xbf\\xd0\\xb5\\xd1\\x80\\xd0\\xb5\\xd0\\xb4\\xd0\\xb0\\xd1\\x87\\xd1\\x83 \\xd0\\xbd\\xd0\\xb0 \\xd0\\xba\\xd0\\xbe\\xd0\\xbd\\xd1\\x81\\xd0\\xbe\\xd0\\xbb\\xd0\\xb8\\xd0\\xb4\\xd0\\xb0\\xd1\\x86\\xd0\\xb8\\xd1\\x8e\\r\\n-= PostingBatchUpdConsolidationCellID =-DB-Lib error message 20018, severity 16:\\nGeneral SQL Server error: Check messages from the SQL Server\\n')"
res_3_1_3 = 'Введёный ID 171958445не является консолидированным заданием'
res_3_1_4 = [{'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('1288460918'), 'SerialNumber': '2175074273', 'ItemID': Decimal('142401224'), 'Name': 'J7 натуральный апельсиновый сок с мякотью J7 0,97л', 'Qty': '1/1', 'ItemPicture': 'audio_cd_covers\\c200\\https://cdn1.ozone.ru/s3/multimedia-c/6002868348.jpg'}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('977734317'), 'SerialNumber': '2239738179', 'ItemID': Decimal('136019109'), 'Name': 'Оливки Iberica с анчоусом, жестяная банка, 300 г', 'Qty': '2/2', 'ItemPicture': 'audio_cd_covers\\c200\\https://cdn1.ozone.ru/multimedia/1014601736.jpg'}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('1282580354'), 'SerialNumber': '2489731509', 'ItemID': Decimal('636785673'), 'Name': 'Смузи Яблоко-Ананас-Банан-Киви-Манго J7 Полезный Перекус со злаками 0,3л', 'Qty': '1/1', 'ItemPicture': None}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('1252467847'), 'SerialNumber': '2573334542', 'ItemID': Decimal('142401199'), 'Name': 'Сок Я Грейпфрут с мякотью, без сахара, 0,97 л', 'Qty': '1/1', 'ItemPicture': 'audio_cd_covers\\c200\\https://cdn1.ozone.ru/s3/multimedia-t/6002868113.jpg'}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('1282009162'), 'SerialNumber': '2573369081', 'ItemID': Decimal('32933691'), 'Name': 'Кофе молотый Lavazza Qualita Oro, 250 г', 'Qty': '1/1', 'ItemPicture': 'audio_cd_covers\\c200\\https://cdn1.ozone.ru/s3/multimedia-b/6087637799.jpg'}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('1278735763'), 'SerialNumber': '2574414072', 'ItemID': Decimal('933542789'), 'Name': 'Напиток газированный безалкогольный Фрустайл (Frustyle) со вкусом Апельсин, лимонад в бутылке 1,5л', 'Qty': '1/1', 'ItemPicture': None}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('977758681'), 'SerialNumber': '2775036331', 'ItemID': Decimal('136019109'), 'Name': 'Оливки Iberica с анчоусом, жестяная банка, 300 г', 'Qty': '2/2', 'ItemPicture': 'audio_cd_covers\\c200\\https://cdn1.ozone.ru/multimedia/1014601736.jpg'}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('1265071658'), 'SerialNumber': 'EAN_83992958', 'ItemID': Decimal('519413018'), 'Name': 'Пакет-майка OZON fresh', 'Qty': '1/1', 'ItemPicture': None}, {'CellID': Decimal('2853998'), 'CellName': 'ЭксМТЩ', 'ExemplarID': Decimal('1194942537'), 'SerialNumber': 'ii5100693090', 'ItemID': Decimal('976586258'), 'Name': 'Нектар Сады Придонья Exclusive манговый с мякотью, 1 л', 'Qty': '1/1', 'ItemPicture': None}]
res_3_1_5 = {'Enabled': 1}
res_3_1_6_1 = []
res_3_1_6_2 = {'Enabled': 1}
res_3_1_7 = {'Enabled': 0}
res_3_1_8 = {'IsMono': 0, 'StoreTaskCount': 0, 'SortMethod': ''}
res_3_1_9 = [{'ID': Decimal('2530745322'), 'Value': '1', 'ObjectID': Decimal('171958445'), 'SysName': 'StoreTaskSplitPosting'}]
3.2.1.1 num_posting = 1
[Decimal('21599391733')]
3.2.1.2 posting_results = [Decimal('21599391733')]
3.3.1: Постинги существуют
21599391733 0 -й

tests/selection/test_robot_selection.py:0 (test_selection)
selection = <tests.selection.test_podbor.TestSelection object at 0x12ce2dac0>
db = <ozon_ex_clients_lib.db.DBFacade object at 0x12ce2d2b0>
bt_user_id = Decimal('491720')

    def test_selection(selection, db, bt_user_id):
        for i in range(1):
            print('в самом начале', i)
            # store_task_id = selection.test_get_store_task_id(db=db,bt_user_id=bt_user_id)
    
            store_task_id = 171958445
    
            print(f'начало здесь {store_task_id = }')
            print(f'здесь все {bt_user_id = }')
    
            # Получаем данные для использования в скрипте
            prepare_data = selection.test_prepare_data(db=db, store_task_id=store_task_id)
            print('данные для теста - ', prepare_data)
    
            # Берем задание в работу
            a = selection.test_get_task_to_work(db=db, store_task_id=store_task_id, bt_user_id=bt_user_id)
            print(a, '# Берем задание в работу')
    
            # Формируем табл и резервируем серийные номера
            # a = selection.test_form_table_and_reserve_ean(db=db, store_task_id=store_task_id)
            # print(a, '# Формируем табл и резервируем серийные номера')
    
            # 1.0.1 Является ли задание для процесса Мегакасса
            a = selection.test_is_megakassa(db=db, store_task_id=store_task_id)
            print(a, '# 1.0.1 Является ли задание для процесса Мегакасса')
    
            # 1.0.2. Включена ли упаковка
            a = selection.test_is_pack_included(db=db, prepare_data=prepare_data)
            print(a, '# 1.0.2. Включена ли упаковка')
    
            # 1.1.1 Получаем данные по заданию
            a = selection.test_get_data_on_task(db=db, store_task_id=store_task_id)
            print(a, '# 1.1.1 Получаем данные по заданию')
    
            # 1.1.2. Проверка на моно задание
            a = selection.test_is_mono_task(db=db, store_task_id=store_task_id)
            print(a, ' 1.1.2. Проверка на моно задание')
    
            # 1.1.3. Получаем кол-во по заданию
            last_qty = selection.test_get_qty_on_task(db=db, store_task_id=store_task_id)
            if last_qty:
                print(f'{last_qty = }')
                # Откуда брать данные через апи или напрямую из БД Резон
                a = selection.test_take_data_from_api_or_db(db=db, prepare_data=prepare_data)
                print(a, 'Откуда брать данные через апи или напрямую из БД Резон')
    
                # 1.1.4 Легаси по обработке шкафов сортировки
                selection.test_check_legacy_sort_process(db=db, store_task_id=store_task_id)
    
                # 1.1.5 Повторяются запросы с 1.1.1 по 1.1.3
                selection.test_get_data_on_task(db=db, store_task_id=store_task_id)
                selection.test_is_mono_task(db=db, store_task_id=store_task_id)
                selection.test_get_qty_on_task(db=db, store_task_id=store_task_id)
    
                # 2.1.1 Получаем ячейку для подбора
                cell_id = selection.test_get_cell_for_select(db=db, store_task_id=store_task_id)
                if cell_id:
                    print(f'2.1.1 {cell_id = }')
    
                    # 2.1.2 Получаем список товаров
                    item_id = selection.test_get_item_id(db=db, store_task_id=store_task_id, cell_id=cell_id)
                    print(f'2.1.2 {item_id = }')
    
                    # 2.1.3. Получаем список товаров
                    a = selection.test_get_products_items(db=db, store_task_id=store_task_id)
                    print(f'2.1.3 Получили список товаров {a}')
    
                    # 2.1.4  Включен ли признак ЧЗ, т.е. идем ли по флоу кизов
                    a = selection.test_is_kiz_on(db=db, prepare_data=prepare_data)
                    print(f'2.1.4 Включен ли признак ЧЗ {a}')
    
                    # 2.1.5 отобразить информацию на тсд
                    selection.test_show_information_on_screen_tsd(db=db, item_id=item_id)
                    print(f'2.1.5 отобразить информацию на тсд {item_id = }', )
    
                    # 2.1.6. Похоже на легаси. Проверка не занял ли комплект в других процессах
                    selection.test_is_set_in_other_process(db=db, store_task_id=store_task_id)
                    print('2.1.6 - легаси')
    
                    # 2.1.7. Отображать ли время до отгрузки на ТСД по заданию на подбор
                    selection.test_is_display_time_on_tsd(db=db, store_task_id=store_task_id)
                    print('2.1.7 - Отображать ли время')
    
                    # 2.1.8. Получение времени до отгрузки. Видимо, зависит от значения из 2.1.7
                    selection.test_get_cut_off_time(db=db, store_task_id=store_task_id)
                    print('2.1.8 - Получение времени до отгрузки')
    
                    # 2.1.9  Включен ли признак ЧЗ, т.е. идем ли по флоу кизов
                    selection.test_is_kiz_on(db=db, prepare_data=prepare_data)
                    print('2.1.9 - Включен ли признак ЧЗ')
    
                    # 2.1.10 = 2.1.5
                    a = selection.test_show_information_on_screen_tsd(db=db, item_id=item_id)
                    print(f'2.1.10 отобразить информацию на тсд {item_id = }{a=}', )
    
                    # 2.1.11. Получаем Id пользователя по заданию(BT_user_id)
                    selection.test_get_user_id_on_task(db=db, store_task_id=store_task_id)
                    print(f"2.1.11 {bt_user_id = }")
                    # Data
                    print('store_task_id = ', store_task_id)
                    print('cell_id = ', cell_id)
                    print('item_id = ', item_id)
                    print('prepare_data = ', prepare_data)
                    print('consig = ', prepare_data.consig_id)
    
                    print('Начало цикла')
                    for _ in range(last_qty):
                        print(f'Начало {_ + 1}й итерации цикла')
    
                        item_id = selection.test_get_item_id(db=db,
                                                             store_task_id=store_task_id,
                                                             cell_id=cell_id)
                        print(f"{item_id = }")
                        if not item_id:
                            break
    
                        # 2.2.1.1 Поиск экземпляра и серийного номера для эмуляции подбора
                        res_2_2_1_1 = selection.test_get_exemplar_id_and_serial_number(db=db,
                                                                                       store_task_id=store_task_id,
                                                                                       item_id=item_id,
                                                                                       cell_id=cell_id)
    
                        serial_number = res_2_2_1_1[0]
                        exemplar_id = res_2_2_1_1[1]
    
                        print(f"{serial_number = }")
                        print(f"{exemplar_id = }")
                        # print(f"2.2.1.1 {res_2_2_1_1 = }")
                        # # 2.2.2.0 Эмуляция скана ШК экземпляра
                        res_2_2_2_0 = selection.test_barcode_scan_emulation(db=db,
                                                                            prepare_data=prepare_data,
                                                                            store_task_id=store_task_id,
                                                                            item_id=item_id,
                                                                            cell_id=cell_id,
                                                                            bt_user_id=bt_user_id,
                                                                            serial_number=serial_number)
                        print(f"{res_2_2_2_0 = }")
    
                        # 2.2.2.1 Эмуляция скана ШК экземпляра, подобрали
                        selection.test_pick_up_sku(db=db,
                                                   store_task_id=store_task_id,
                                                   exemplar_id=exemplar_id)
                        print(f"2.2.2.1 Подобрали")
    
                        # 2.2.3 Проверяем, нужно ли еще что-то подбирать в этой ячейке
                        cell_data = selection.test_check_selection(db=db,
                                                                   store_task_id=store_task_id,
                                                                   item_id=item_id,
                                                                   cell_id=cell_id)
                        print(f"2.2.3 {cell_data = }")
    
                        # 2.2.4 Включен ли признак ЧЗ, т.е. идем ли по флоу кизов
                        res_2_2_4 = selection.test_is_kiz_on(db=db, prepare_data=prepare_data)
                        print(f"{res_2_2_4 = }")
    
                        # 2.2.5 # 2.1.10 = 2.1.5
                        res_2_2_5 = selection.test_item_more_zero(db=db, item_id=item_id)
                        print(f"{res_2_2_5 = }")
    
                        # Если в пункте 2.2.3 вернулась инфа, значит в той же ячейке есть что подобрать и пункт
                        # 2.2.6 не нужно выполнять
                        if cell_data:
                            continue
    
                        # 2.2.6 Получаем ячейку для подбора.
                        cell_id = selection.test_get_cell_for_next_selection(db=db, store_task_id=store_task_id,
                                                                             cell_id=cell_id)
                        print(f"2.2.6 {cell_id = }")
                        if cell_id is None:
                            break
                    # Окончание цикла
                else:
                    print('вышли с пункта 2.1.1 тк нет ячейки для подбора', cell_id)
    
            else:
                print(f"По данному {store_task_id = } больше нет работы")
    
            # 3.1.1. Получаем данные по PostingBatchId
            posting_data = selection.test_get_data_on_postingbath(db=db, prepare_data=prepare_data)
            print(f"3.1.1 {posting_data = }")
            print('pbatch = ', prepare_data.posting_batch_id)
    
            # 3.1.2. Консолидируем задание
            res_3_1_2 = selection.test_consolidate_task(db=db, store_task_id=store_task_id, prepare_data=prepare_data)
            print(f"{res_3_1_2 = }")
    
            # 3.1.3. Консолидируем, если моно (запускается даже, если это не моно-задание???)
            res_3_1_3 = selection.test_consolidating_if_mono(db, store_task_id=store_task_id)
            print(f"{res_3_1_3 = }")
    
            # 3.1.4. Список подобранных экземпляров
            res_3_1_4 = selection.test_sku_selection_list(db=db, prepare_data=prepare_data)
            print(f"{res_3_1_4 = }")
    
            # 3.1.5. Определяем флоу для отказа от упаковки
            res_3_1_5 = selection.test_check_flow_for_refuse_of_packing(db=db, store_task_id=store_task_id)
            print(f"{res_3_1_5 = }")
    
            # 3.1.6.1 Обновляем статус задания
            res_3_1_6_1 = selection.test_update_task_status(db=db, store_task_id=store_task_id, bt_user_id=bt_user_id)
            print(f"{res_3_1_6_1 = }")
    
            # 3.1.6.2 Определяем флоу для отказа от упаковки
            res_3_1_6_2 = selection.test_check_flow_for_refuse_of_packing(db=db, store_task_id=store_task_id)
            print(f"{res_3_1_6_2 = }")
    
            # 3.1.7. Определяем флоу для отказа от упаковки
            res_3_1_7 = selection.test_check_flow_for_refuse_of_packing_2(db=db, store_task_id=store_task_id)
            print(f"{res_3_1_7 = }")
    
            # 3.1.8. Проверка на моно-задание
            res_3_1_8 = selection.test_check_mono_task(db=db, store_task_id=store_task_id)
            print(f"{res_3_1_8 = }")
    
            # 3.1.9. Проверка было ли сплитование постинга
            res_3_1_9 = selection.test_is_split_posting(db=db, store_task_id=store_task_id)
            print(f"{res_3_1_9 = }")
    
            # 3.2.1.1 Получить кол-во пакетов
            num_posting = selection.test_get_num_bags(db=db, store_task_id=store_task_id)
            print(f"3.2.1.1 {num_posting = }")
    
            # 3.2.1.2 Вызываем сплитование постинга на кол-во пакетов. Если пакетов 0, то передаем 1.
            posting_results = selection.test_split_posting_by_num_packages(db=db,
                                                                           store_task_id=store_task_id,
                                                                           posting_count=num_posting)
            # if posting_results is None:
            #     raise AssertionError("Постинг не создан")
            print(f"3.2.1.2 {posting_results = }")
    
            # 3.3.1. Переводим постинг в статус Упакован
            if posting_results:
                print('3.3.1: Постинги существуют')
                for posting in range(len(posting_results)):
                    selection.test_change_posting_status(db=db, posting_id=posting_results[posting])
                    print(posting_results[posting], posting, '-й')
    
                # 3.4.1 Подтверждение принтера
>               selection.test_find_printer_and_apply(db=db)

test_robot_selection.py:239: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.selection.test_podbor.TestSelection object at 0x12ce2dac0>
db = <ozon_ex_clients_lib.db.DBFacade object at 0x12ce2d2b0>

    def test_find_printer_and_apply(self, db):
        try:
            printer_id = db.rezon.find_printer()[0]['ID']
>           db.rezon.confirm_printer(printer_id)
E           TypeError: confirm_printer() takes 1 positional argument but 2 were given

test_podbor.py:311: TypeError






============================== 1 failed in 15.16s ==============================

Process finished with exit code 1