def test_order_delete(cdek_client: CDEKClient, delivery_request): send_orders = cdek_client.create_orders(delivery_request) assert send_orders assert len(send_orders) == 1 order = send_orders[0] assert 'DispatchNumber' in order assert 'Number' in order dispatch_number = order['DispatchNumber'] statuses = cdek_client.get_orders_statuses([dispatch_number]) assert statuses assert len(statuses) == 1 status_info = statuses[0] assert status_info['DispatchNumber'] == dispatch_number assert status_info['Status']['Code'] == '1' # Создан assert 'ActNumber' in status_info act_number = status_info['ActNumber'] delete_requests = cdek_client.delete_orders( act_number=act_number, dispatch_numbers=[dispatch_number], ) assert delete_requests assert len(delete_requests) == 1 deleted_order = delete_requests[0] assert 'DispatchNumber' in deleted_order assert deleted_order['DispatchNumber'] == dispatch_number
def test_courier_call(cdek_client: CDEKClient, delivery_request): send_orders = cdek_client.create_orders(delivery_request) assert send_orders assert len(send_orders) == 1 order = send_orders[0] assert 'DispatchNumber' in order assert 'Number' in order dispatch_number = order['DispatchNumber'] next_day = datetime.date.today() + datetime.timedelta(days=1) call_courier = CallCourier() call_request = call_courier.add_call( date=next_day, dispatch_number=dispatch_number, sender_phone='+79999999999', time_begin=datetime.time(hour=10), time_end=datetime.time(hour=17), ) call_courier.add_address( call_element=call_request, address_street='Пушкина', address_house='50', address_flat='1', ) call = cdek_client.call_courier(call_courier) assert call assert 'Number' in call
def test_print_barcode(cdek_client: CDEKClient, delivery_request): send_orders = cdek_client.create_orders(delivery_request) assert send_orders assert len(send_orders) == 1 order = send_orders[0] assert 'DispatchNumber' in order assert 'Number' in order dispatch_number = order['DispatchNumber'] barcode_print = cdek_client.get_barcode_print([dispatch_number]) assert barcode_print is not None
def test_shipping_cost_calculator(cdek_client: CDEKClient, tariff: Dict, expectation): with expectation: shipping_costs = cdek_client.get_shipping_cost( sender_city_id=270, receiver_city_id=44, goods=[ { 'weight': 0.3, 'length': 10, 'width': 7, 'height': 5 }, { 'weight': 0.1, 'volume': 0.1 }, ], **tariff, ) assert shipping_costs assert 'error' not in shipping_costs assert 'result' in shipping_costs result = shipping_costs['result'] assert result['tariffId'] == 3
def cdek_client(): return CDEKClient( account='z9GRRu7FxmO53CQ9cFfI6qiy32wpfTkd', secure_password='******', api_url='http://integration.edu.cdek.ru', test=True, )
def test_order_info(cdek_client: CDEKClient, delivery_request): send_orders = cdek_client.create_orders(delivery_request) assert send_orders assert len(send_orders) == 1 order = send_orders[0] assert 'DispatchNumber' in order assert 'Number' in order dispatch_number = order['DispatchNumber'] info = cdek_client.get_orders_info([dispatch_number]) assert info assert len(info) == 1 order_info = info[0] assert order_info['DispatchNumber'] == dispatch_number
def test_order_creation(cdek_client: CDEKClient, delivery_request): send_orders = cdek_client.create_orders(delivery_request) assert send_orders assert len(send_orders) == 1 order = send_orders[0] assert 'DispatchNumber' in order assert 'Number' in order
def test_get_pvz_list(cdek_client: CDEKClient): response = cdek_client.get_delivery_points(city_post_code=680000) assert response assert 'pvz' in response pvz_list = response['pvz'] assert pvz_list assert pvz_list[0]['city'] == 'Хабаровск'
def test_order_status_info(cdek_client: CDEKClient, delivery_request): send_orders = cdek_client.create_orders(delivery_request) assert send_orders assert len(send_orders) == 1 order = send_orders[0] assert 'DispatchNumber' in order assert 'Number' in order dispatch_number = order['DispatchNumber'] statuses = cdek_client.get_orders_statuses([dispatch_number]) assert statuses assert len(statuses) == 1 status_info = statuses[0] assert status_info['DispatchNumber'] == dispatch_number assert status_info['Status']['Code'] == '1' # Создан
def test_shipping_cost_with_auth_data(cdek_client: CDEKClient): cdek_client._test = False shipping_costs = cdek_client.get_shipping_cost( sender_city_id=270, receiver_city_id=44, goods=[ { 'weight': 0.3, 'length': 10, 'width': 7, 'height': 5 }, { 'weight': 0.1, 'volume': 0.1 }, ], tariff_id=136, # Для тарифов ИМ требуются валидные данные входа ИМ ) assert 'error' in shipping_costs
def test_create_prealerts(cdek_client: CDEKClient, delivery_request): send_orders = cdek_client.create_orders(delivery_request) assert send_orders assert len(send_orders) == 1 order = send_orders[0] assert 'DispatchNumber' in order assert 'Number' in order dispatch_number = order['DispatchNumber'] next_day = datetime.date.today() + datetime.timedelta(days=1) pre_alert_element = PreAlert(planned_meeting_date=next_day, pvz_code='XAB1') pre_alert_element.add_order(dispatch_number=dispatch_number) pre_alerts = cdek_client.create_prealerts(pre_alert_element) assert pre_alerts assert len(pre_alerts) == 1 assert 'ErrorCode' in pre_alerts[0] # Проверить метод можно только на валидных данных авторизации assert pre_alerts[0]['ErrorCode'] == 'W_PA_17'
def test_get_cities(cdek_client: CDEKClient): cities = cdek_client.get_cities(region_code_ext=27) assert cities assert cities[0]['countryCode'] == 'RU' assert cities[0]['region'] == 'Хабаровский'
def test_get_regions(cdek_client: CDEKClient): regions = cdek_client.get_regions(region_code_ext=27) assert regions assert regions[0]['countryCode'] == 'RU' assert regions[0]['regionName'] == 'Хабаровский'