Skip to content

Instantly share code, notes, and snippets.

@thedrow
Created April 14, 2022 12:15
Show Gist options
  • Save thedrow/caa5ff0598a3a06456f9742187307b2d to your computer and use it in GitHub Desktop.
Save thedrow/caa5ff0598a3a06456f9742187307b2d to your computer and use it in GitHub Desktop.
nogil celery unit tests
============================= test session starts ==============================
platform darwin -- Python 3.10.3, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /Users/okatz6/.pyenv/versions/3.10.3/bin/python3.10
cachedir: .pytest_cache
rootdir: /Users/okatz6/Documents/celery, configfile: pyproject.toml
plugins: subtests-0.6.0, ddtrace-0.46.0, timeout-1.4.2, cov-3.0.0, celery-0.0.0
collecting ... collected 2645 items / 2 skipped / 2643 selected
t/unit/test_canvas.py::test_Canvas::test_freeze_reply_to PASSED [ 0%]
t/unit/app/test_amqp.py::test_TaskConsumer::test_accept_content PASSED [ 0%]
t/unit/app/test_amqp.py::test_ProducerPool::test_setup_nolimit PASSED [ 0%]
t/unit/app/test_amqp.py::test_ProducerPool::test_setup PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_queues_format PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_with_defaults PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_add PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_setitem_adds_default_exchange PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_select_add PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_deselect PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_add_default_exchange PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_alias PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_with_max_priority[queues_kwargs0-foo-foo-expected0] PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_with_max_priority[queues_kwargs1-xyz-q1-expected1] PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_with_max_priority[queues_kwargs2-moo-q2-expected2] PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_with_max_priority[queues_kwargs3-foo2-foo2-None] PASSED [ 0%]
t/unit/app/test_amqp.py::test_Queues::test_with_max_priority[queues_kwargs4-xyx3-q4-expected4] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_queues::test_setting_default_queue[default-None-None] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_queues::test_setting_default_queue[default-exchange-None] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_queues::test_setting_default_queue[default-exchange-routing_key] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_queues::test_setting_default_queue[default-None-routing_key] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_exchange::test_setting_default_exchange[default-foo-None] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_exchange::test_setting_default_exchange[default-foo-routing_key] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_exchange::test_setting_default_exchange_type[default-direct-None] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_exchange::test_setting_default_exchange_type[default-direct-routing_key] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_exchange::test_setting_default_exchange_type[default-topic-None] PASSED [ 0%]
t/unit/app/test_amqp.py::test_default_exchange::test_setting_default_exchange_type[default-topic-routing_key] PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP_proto1::test_kwargs_must_be_mapping PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP_proto1::test_args_must_be_list PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP_proto1::test_countdown_negative PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP_proto1::test_as_task_message_without_utc PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_kwargs_must_be_mapping PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_args_must_be_list PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_countdown_negative PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_Queues__with_max_priority PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_task_message__no_kwargs PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_task_message__properties PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_task_message__headers PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_task_message__queue_string PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_task_message__broadcast_without_exchange PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_event_exchange_direct_with_exchange PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_event_exchange_direct_with_routing_key PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_event_exchange_string PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_task_message__with_delivery_mode PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_send_task_message__with_receivers PASSED [ 1%]
t/unit/app/test_amqp.py::test_AMQP::test_routes PASSED [ 1%]
t/unit/app/test_amqp.py::test_as_task_v2::test_raises_if_args_is_not_tuple PASSED [ 1%]
t/unit/app/test_amqp.py::test_as_task_v2::test_raises_if_kwargs_is_not_mapping PASSED [ 1%]
t/unit/app/test_amqp.py::test_as_task_v2::test_countdown_to_eta PASSED [ 1%]
t/unit/app/test_amqp.py::test_as_task_v2::test_expires_to_datetime PASSED [ 1%]
t/unit/app/test_amqp.py::test_as_task_v2::test_eta_to_datetime PASSED [ 1%]
t/unit/app/test_amqp.py::test_as_task_v2::test_callbacks_errbacks_chord PASSED [ 1%]
t/unit/app/test_annotations.py::test_MapAnnotation::test_annotate PASSED [ 2%]
t/unit/app/test_annotations.py::test_MapAnnotation::test_annotate_any PASSED [ 2%]
t/unit/app/test_annotations.py::test_prepare::test_dict_to_MapAnnotation PASSED [ 2%]
t/unit/app/test_annotations.py::test_prepare::test_returns_list PASSED [ 2%]
t/unit/app/test_annotations.py::test_prepare::test_evalutes_qualnames PASSED [ 2%]
t/unit/app/test_app.py::test_module::test_default_app PASSED [ 2%]
t/unit/app/test_app.py::test_module::test_bugreport PASSED [ 2%]
t/unit/app/test_app.py::test_task_join_will_block::test_task_join_will_block PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_now PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_set_default PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_setup_security FAILED [ 2%]
t/unit/app/test_app.py::test_App::test_task_autofinalize_disabled PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_registry_autofinalize_disabled PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_task PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_task_too_many_args PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_with_config_source PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_task_windows_execv PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_task_takes_no_args PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_add_defaults PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_connection_or_acquire PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_using_v1_reduce PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_autodiscover_tasks_force_fixup_fallback PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_autodiscover_tasks_force PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_autodiscover_tasks_lazy PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_autodiscover_tasks__no_packages PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_with_broker PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_pending_configuration_non_true__kwargs PASSED [ 2%]
t/unit/app/test_app.py::test_App::test_pending_configuration__kwargs PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__setattr PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__update PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__compat_settings PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__compat_settings_mixing PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__django_settings PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__compat_settings_mixing_new PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__compat_settings_mixing_alt PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__setdefault PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__iter PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__raises_ImproperlyConfigured PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pending_configuration__ssl_settings PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_repr PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_custom_task_registry PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_include_argument PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_set_as_current PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_current_task PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_task_not_shared PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_task_compat_with_filter PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_task_with_filter PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_task_sets_main_name_MP_MAIN_FILE PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_can_get_type_hints_for_tasks PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_annotate_decorator PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_apply_async_adds_children PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_pickle_app PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_worker_main PASSED [ 3%]
t/unit/app/test_app.py::test_App::test_config_from_envvar PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__lazy PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__force PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__compat PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__supports_old_names PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__namespace_uppercase PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__namespace_lowercase PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__mixing_new_and_old PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_object__mixing_old_and_new PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_cmdline PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_setting__broker_transport_options PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_Windows_log_color_disabled PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_WorkController PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_Worker PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_AsyncResult PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_get_active_apps PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_config_from_envvar_more PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_start PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_amqp_get_broker_info[pyamqp://-expected_fields0] PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_amqp_get_broker_info[pyamqp://:1978/foo-expected_fields1] PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_amqp_get_broker_info[pyamqp:////value-expected_fields2] PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_amqp_failover_strategy_selection PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_after_fork PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_global_after_fork PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_after_fork_cleanup_app__raises PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_ensure_after_fork__no_multiprocessing PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_canvas PASSED [ 4%]
t/unit/app/test_app.py::test_App::test_signature PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_timezone__none_set PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_uses_utc_timezone PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_compat_on_configure PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_add_periodic_task PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_pool_no_multiprocessing PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_bugreport PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_send_task__connection_provided PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_send_task_sent_event PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_select_queues PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_Beat PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_registry_cls PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_oid PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_global_oid PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_thread_oid PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_backend PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_thread_backend PASSED [ 5%]
t/unit/app/test_app.py::test_App::test_thread_oid_is_local PASSED [ 5%]
t/unit/app/test_app.py::test_defaults::test_strtobool PASSED [ 5%]
t/unit/app/test_app.py::test_debugging_utils::test_enable_disable_trace PASSED [ 5%]
t/unit/app/test_app.py::test_pyimplementation::test_platform_python_implementation PASSED [ 5%]
t/unit/app/test_app.py::test_pyimplementation::test_platform_jython PASSED [ 5%]
t/unit/app/test_app.py::test_pyimplementation::test_platform_pypy PASSED [ 5%]
t/unit/app/test_app.py::test_pyimplementation::test_platform_fallback PASSED [ 5%]
t/unit/app/test_app.py::test_shared_task::test_registers_to_all_apps PASSED [ 5%]
t/unit/app/test_backends.py::test_backends::test_get_backend_aliases[cache+memory://-CacheBackend] PASSED [ 5%]
t/unit/app/test_backends.py::test_backends::test_unknown_backend PASSED [ 6%]
t/unit/app/test_backends.py::test_backends::test_backend_by_url PASSED [ 6%]
t/unit/app/test_backends.py::test_backends::test_sym_raises_ValuError PASSED [ 6%]
t/unit/app/test_backends.py::test_backends::test_backend_can_not_be_module PASSED [ 6%]
t/unit/app/test_backends.py::test_backends::test_backend_thread_safety PASSED [ 6%]
t/unit/app/test_beat.py::test_BeatLazyFunc::test_beat_lazy_func PASSED [ 6%]
t/unit/app/test_beat.py::test_ScheduleEntry::test_next PASSED [ 6%]
t/unit/app/test_beat.py::test_ScheduleEntry::test_is_due PASSED [ 6%]
t/unit/app/test_beat.py::test_ScheduleEntry::test_repr PASSED [ 6%]
t/unit/app/test_beat.py::test_ScheduleEntry::test_reduce PASSED [ 6%]
t/unit/app/test_beat.py::test_ScheduleEntry::test_lt PASSED [ 6%]
t/unit/app/test_beat.py::test_ScheduleEntry::test_update PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_custom_schedule_dict PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_apply_async_uses_registered_task_instances PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_apply_async_with_null_args PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_apply_async_with_null_args_set_to_none PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_apply_async_without_null_args PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_should_sync PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_should_sync_increments_sync_every_counter PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_sync_task_counter_resets_on_do_sync PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_send_task PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_info PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_maybe_entry PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_set_schedule PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_ensure_connection_error_handler PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_install_default_entries PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_due_tick PASSED [ 6%]
t/unit/app/test_beat.py::test_Scheduler::test_due_tick_SchedulingError PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_pending_tick PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_pending_left_10_milliseconds_tick FAILED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_honors_max_interval PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_ticks PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_ticks_microseconds PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_ticks_schedule_change PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_no_remain PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_interface PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_merge_inplace PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_when PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_populate_heap PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_schedule_vs_schedule_success PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_schedule_vs_schedule_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_crontab_vs_crontab_success PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_crontab_vs_crontab_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_crontab_vs_schedule_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_different_key_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_args_vs_args_success PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_args_vs_args_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_kwargs_vs_kwargs_success PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_kwargs_vs_kwargs_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_options_vs_options_success PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_options_vs_options_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_task_vs_task_success PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_task_vs_task_fail PASSED [ 7%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_none_entry_vs_entry PASSED [ 8%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_entry_vs_none_entry PASSED [ 8%]
t/unit/app/test_beat.py::test_Scheduler::test_schedule_equal_none_entry_vs_none_entry PASSED [ 8%]
t/unit/app/test_beat.py::test_PersistentScheduler::test_remove_db PASSED [ 8%]
t/unit/app/test_beat.py::test_PersistentScheduler::test_setup_schedule PASSED [ 8%]
t/unit/app/test_beat.py::test_PersistentScheduler::test_get_schedule PASSED [ 8%]
t/unit/app/test_beat.py::test_PersistentScheduler::test_run_all_due_tasks_after_restart PASSED [ 8%]
t/unit/app/test_beat.py::test_Service::test_pickleable PASSED [ 8%]
t/unit/app/test_beat.py::test_Service::test_start PASSED [ 8%]
t/unit/app/test_beat.py::test_Service::test_start_embedded_process PASSED [ 8%]
t/unit/app/test_beat.py::test_Service::test_start_thread PASSED [ 8%]
t/unit/app/test_beat.py::test_Service::test_start_tick_raises_exit_error PASSED [ 8%]
t/unit/app/test_beat.py::test_Service::test_start_manages_one_tick_before_shutdown PASSED [ 8%]
t/unit/app/test_beat.py::test_EmbeddedService::test_start_stop_threaded PASSED [ 8%]
t/unit/app/test_beat.py::test_schedule::test_maybe_make_aware PASSED [ 8%]
t/unit/app/test_beat.py::test_schedule::test_to_local PASSED [ 8%]
t/unit/app/test_builtins.py::test_backend_cleanup::test_run PASSED [ 8%]
t/unit/app/test_builtins.py::test_accumulate::test_with_index PASSED [ 8%]
t/unit/app/test_builtins.py::test_accumulate::test_no_index PASSED [ 8%]
t/unit/app/test_builtins.py::test_map::test_run PASSED [ 8%]
t/unit/app/test_builtins.py::test_starmap::test_run PASSED [ 8%]
t/unit/app/test_builtins.py::test_chunks::test_run PASSED [ 8%]
t/unit/app/test_builtins.py::test_group::test_apply_async_eager PASSED [ 8%]
t/unit/app/test_builtins.py::test_group::test_task PASSED [ 8%]
t/unit/app/test_builtins.py::test_group::test_task__disable_add_to_parent PASSED [ 8%]
t/unit/app/test_builtins.py::test_chain::test_not_implemented PASSED [ 8%]
t/unit/app/test_builtins.py::test_chord::test_apply_async PASSED [ 8%]
t/unit/app/test_builtins.py::test_chord::test_run_header_not_group PASSED [ 9%]
t/unit/app/test_builtins.py::test_chord::test_forward_options PASSED [ 9%]
t/unit/app/test_builtins.py::test_chord::test_apply_eager PASSED [ 9%]
t/unit/app/test_builtins.py::test_chord::test_apply_eager_with_arguments PASSED [ 9%]
t/unit/app/test_celery.py::test_version PASSED [ 9%]
t/unit/app/test_celery.py::test_meta[__author__] PASSED [ 9%]
t/unit/app/test_celery.py::test_meta[__contact__] PASSED [ 9%]
t/unit/app/test_celery.py::test_meta[__homepage__] PASSED [ 9%]
t/unit/app/test_celery.py::test_meta[__docformat__] PASSED [ 9%]
t/unit/app/test_control.py::test_client_implements_all_commands PASSED [ 9%]
t/unit/app/test_control.py::test_inspect_implements_all_commands PASSED [ 9%]
t/unit/app/test_control.py::test_flatten_reply::test_flatten_reply PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_prepare_reply PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_active PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_active_safe PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_clock PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_conf PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_conf__with_defaults PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_hello PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_hello__with_revoked PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_memsample PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_memdump PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_memdump__samples_specified PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_objgraph PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_scheduled PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_reserved PASSED [ 9%]
t/unit/app/test_control.py::test_inspect::test_stats PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_revoked PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_registered PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_registered__taskinfoitems PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_ping PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_ping_matcher_pattern PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_active_queues PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_query_task PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_query_task__compat_single_list_argument PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_query_task__scalar PASSED [ 10%]
t/unit/app/test_control.py::test_inspect::test_report PASSED [ 10%]
t/unit/app/test_control.py::test_Control_broadcast::test_broadcast PASSED [ 10%]
t/unit/app/test_control.py::test_Control_broadcast::test_broadcast_limit PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_serializer PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_purge PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_rate_limit PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_rate_limit__with_destination PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_time_limit PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_time_limit__with_destination PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_add_consumer PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_add_consumer__with_options_and_dest PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_cancel_consumer PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_cancel_consumer__with_destination PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_shutdown PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_shutdown__with_destination PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_heartbeat PASSED [ 10%]
t/unit/app/test_control.py::test_Control::test_heartbeat__with_destination PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_pool_restart PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_terminate PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_enable_events PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_enable_events_with_destination PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_disable_events PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_disable_events_with_destination PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_ping PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_ping_with_destination PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_revoke PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_revoke__with_options PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_election PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_autoscale PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_autoscale__with_options PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_pool_grow PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_pool_grow__with_options PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_pool_shrink PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_pool_shrink__with_options PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_revoke_from_result PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_revoke_from_resultset PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_after_fork_clears_mailbox_pool PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_control_exchange__default PASSED [ 11%]
t/unit/app/test_control.py::test_Control::test_control_exchange__setting PASSED [ 11%]
t/unit/app/test_defaults.py::test_defaults::test_option_repr PASSED [ 11%]
t/unit/app/test_defaults.py::test_defaults::test_any PASSED [ 11%]
t/unit/app/test_defaults.py::test_defaults::test_compat_indices PASSED [ 11%]
t/unit/app/test_defaults.py::test_defaults::test_find PASSED [ 11%]
t/unit/app/test_exceptions.py::test_Retry::test_when_datetime PASSED [ 12%]
t/unit/app/test_exceptions.py::test_Retry::test_pickleable PASSED [ 12%]
t/unit/app/test_exceptions.py::test_Reject::test_attrs PASSED [ 12%]
t/unit/app/test_exceptions.py::test_Reject::test_repr PASSED [ 12%]
t/unit/app/test_exceptions.py::test_Reject::test_pickleable PASSED [ 12%]
t/unit/app/test_loaders.py::test_loaders::test_get_loader_cls PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_handlers_pass PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_now PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_read_configuration_no_env PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_autodiscovery PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_import_task_module PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_init_worker_process PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_config_from_object_module PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_conf_property PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_import_default_modules PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_import_default_modules_with_exception PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_import_from_cwd_custom_imp PASSED [ 12%]
t/unit/app/test_loaders.py::test_LoaderBase::test_cmdline_config_ValueError PASSED [ 12%]
t/unit/app/test_loaders.py::test_DefaultLoader::test_read_configuration_not_a_package PASSED [ 12%]
t/unit/app/test_loaders.py::test_DefaultLoader::test_read_configuration_py_in_name PASSED [ 12%]
t/unit/app/test_loaders.py::test_DefaultLoader::test_read_configuration_importerror PASSED [ 12%]
t/unit/app/test_loaders.py::test_DefaultLoader::test_read_configuration PASSED [ 12%]
t/unit/app/test_loaders.py::test_DefaultLoader::test_read_configuration_ImportError PASSED [ 12%]
t/unit/app/test_loaders.py::test_DefaultLoader::test_import_from_cwd PASSED [ 12%]
t/unit/app/test_loaders.py::test_DefaultLoader::test_unconfigured_settings PASSED [ 12%]
t/unit/app/test_loaders.py::test_AppLoader::test_on_worker_init PASSED [ 12%]
t/unit/app/test_loaders.py::test_autodiscovery::test_autodiscover_tasks PASSED [ 13%]
t/unit/app/test_loaders.py::test_autodiscovery::test_find_related_module PASSED [ 13%]
t/unit/app/test_log.py::test_TaskFormatter::test_no_task PASSED [ 13%]
t/unit/app/test_log.py::test_logger_isa::test_isa PASSED [ 13%]
t/unit/app/test_log.py::test_logger_isa::test_recursive PASSED [ 13%]
t/unit/app/test_log.py::test_ColorFormatter::test_formatException_not_string PASSED [ 13%]
t/unit/app/test_log.py::test_ColorFormatter::test_formatException_bytes PASSED [ 13%]
t/unit/app/test_log.py::test_ColorFormatter::test_format_object PASSED [ 13%]
t/unit/app/test_log.py::test_ColorFormatter::test_format_raises PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_get_logger_sets_parent PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_get_logger_root PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_setup_logging_subsystem_misc PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_setup_logging_subsystem_misc2 PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_get_default_logger PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_configure_logger PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_setup_logging_subsystem_colorize PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_setup_logging_subsystem_no_mputil PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_setup_logger PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_setup_logger_no_handlers_stream PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_setup_logger_no_handlers_file PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_redirect_stdouts PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_logging_proxy PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_logging_proxy_bytes PASSED [ 13%]
t/unit/app/test_log.py::test_default_logger::test_logging_proxy_recurse_protection PASSED [ 13%]
t/unit/app/test_log.py::test_task_logger::test_get_logger_sets_parent PASSED [ 13%]
t/unit/app/test_log.py::test_task_logger::test_get_logger_root PASSED [ 13%]
t/unit/app/test_log.py::test_task_logger::test_setup_logging_subsystem_misc PASSED [ 13%]
t/unit/app/test_log.py::test_task_logger::test_setup_logging_subsystem_misc2 PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_get_default_logger PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_configure_logger PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_setup_logging_subsystem_colorize PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_setup_logging_subsystem_no_mputil PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_setup_logger PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_setup_logger_no_handlers_stream PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_setup_logger_no_handlers_file PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_redirect_stdouts PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_logging_proxy PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_logging_proxy_bytes PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_logging_proxy_recurse_protection PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_renaming_base_logger PASSED [ 14%]
t/unit/app/test_log.py::test_task_logger::test_renaming_task_logger PASSED [ 14%]
t/unit/app/test_registry.py::test_unpickle_task::test_unpickle_v1 PASSED [ 14%]
t/unit/app/test_registry.py::test_unpickle_task::test_unpickle_v2 PASSED [ 14%]
t/unit/app/test_registry.py::test_TaskRegistry::test_NotRegistered_str PASSED [ 14%]
t/unit/app/test_registry.py::test_TaskRegistry::test_task_registry PASSED [ 14%]
t/unit/app/test_registry.py::test_TaskRegistry::test_compat PASSED [ 14%]
t/unit/app/test_routes.py::test_MapRoute::test_route_for_task_expanded_route PASSED [ 14%]
t/unit/app/test_routes.py::test_MapRoute::test_route_for_task PASSED [ 14%]
t/unit/app/test_routes.py::test_MapRoute::test_route_for_task__glob PASSED [ 14%]
t/unit/app/test_routes.py::test_MapRoute::test_expand_route_not_found PASSED [ 14%]
t/unit/app/test_routes.py::test_lookup_route::test_init_queues PASSED [ 14%]
t/unit/app/test_routes.py::test_lookup_route::test_lookup_takes_first PASSED [ 14%]
t/unit/app/test_routes.py::test_lookup_route::test_expands_queue_in_options PASSED [ 14%]
t/unit/app/test_routes.py::test_lookup_route::test_expand_destination_string PASSED [ 15%]
t/unit/app/test_routes.py::test_lookup_route::test_expand_destination__Queue PASSED [ 15%]
t/unit/app/test_routes.py::test_lookup_route::test_lookup_paths_traversed PASSED [ 15%]
t/unit/app/test_routes.py::test_lookup_route::test_compat_router_class PASSED [ 15%]
t/unit/app/test_routes.py::test_lookup_route::test_router_fun__called_with PASSED [ 15%]
t/unit/app/test_routes.py::test_lookup_route::test_compat_router_classes__called_with PASSED [ 15%]
t/unit/app/test_routes.py::test_prepare::test_prepare PASSED [ 15%]
t/unit/app/test_routes.py::test_prepare::test_prepare_item_is_dict PASSED [ 15%]
t/unit/app/test_schedules.py::test_solar::test_reduce SKIPPED (could...) [ 15%]
t/unit/app/test_schedules.py::test_solar::test_eq SKIPPED (could not...) [ 15%]
t/unit/app/test_schedules.py::test_solar::test_repr SKIPPED (could n...) [ 15%]
t/unit/app/test_schedules.py::test_solar::test_is_due SKIPPED (could...) [ 15%]
t/unit/app/test_schedules.py::test_solar::test_is_due__not_due SKIPPED [ 15%]
t/unit/app/test_schedules.py::test_solar::test_remaining_estimate SKIPPED [ 15%]
t/unit/app/test_schedules.py::test_solar::test_coordinates SKIPPED (...) [ 15%]
t/unit/app/test_schedules.py::test_solar::test_invalid_event SKIPPED [ 15%]
t/unit/app/test_schedules.py::test_solar::test_event_uses_center SKIPPED [ 15%]
t/unit/app/test_schedules.py::test_schedule::test_ne PASSED [ 15%]
t/unit/app/test_schedules.py::test_schedule::test_pickle PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_crontab_reduce PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_range_steps_not_enough PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_star PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_range PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_range_wraps PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_groups PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_steps PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_composite PASSED [ 15%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_errors_on_empty_string PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_errors_on_empty_group PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_errors_on_empty_steps PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_errors_on_negative_number PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_errors_on_lt_min PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_parse_errors_on_gt_max PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_expand_cronspec_eats_iterables PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_expand_cronspec_invalid_type PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_repr PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_parser::test_eq PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_next_minute PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_next_minute PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_this_hour PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_this_hour PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_today PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_today PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_weekday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_weekday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_monthday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_monthday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_weekday_monthday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_monthday_not_weekday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_weekday_not_monthday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_weekday_not_monthday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_leapday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_leapday PASSED [ 16%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_weekmonthdayyear PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_monthdayyear_not_week PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_weekdaymonthyear_not_monthday PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_weekmonthday_not_monthyear PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_weekday_not_monthdayyear PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_monthday_not_weekdaymonthyear PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_monthyear_not_weekmonthday PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_not_weekmonthdayyear PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_invalid_specification PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_leapyear PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_day_after_dst_end PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_remaining_estimate::test_day_after_dst_start PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_default_crontab_spec PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_simple_crontab_spec PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_minute_formats[30-expected0] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_minute_formats[30-expected1] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_minute_formats[minute2-expected2] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_minute_formats[minute3-expected3] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_minute[60] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_minute[0-100] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_hour_formats[6-expected0] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_hour_formats[5-expected1] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_hour_formats[hour2-expected2] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_hour[24] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_hour[0-30] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dow_formats[5-expected0] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dow_formats[5-expected1] PASSED [ 17%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dow_formats[fri-expected2] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dow_formats[tuesday,sunday,fri-expected3] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dow_formats[mon-fri-expected4] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dow_formats[*/2-expected5] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dow[fooday-barday] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dow[1,4,foo] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dow[7] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dow[12] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dom_formats[5-expected0] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dom_formats[5-expected1] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dom_formats[2,4,6-expected2] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_dom_formats[*/5-expected3] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dom[0] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dom[0-10] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dom[32] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_dom[31,32] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_moy_formats[1-expected0] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_moy_formats[1-expected1] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_moy_formats[2,4,6-expected2] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_moy_formats[*/2-expected3] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_moy_formats[2-12/2-expected4] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_moy[0] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_moy[0-5] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_moy[13] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_crontab_spec_invalid_moy[12,13] PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_every_minute_execution_is_due PASSED [ 18%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_every_minute_execution_is_not_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_execution_is_due_on_saturday PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_execution_is_due_on_sunday PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_execution_is_due_on_monday PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_every_hour_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_every_hour_execution_is_not_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_first_quarter_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_second_quarter_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_first_quarter_execution_is_not_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_second_quarter_execution_is_not_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_daily_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_daily_execution_is_not_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_weekly_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_weekly_execution_is_not_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_monthly_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_monthly_execution_is_not_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_monthly_moy_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_monthly_moy_execution_is_not_due SKIPPED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_monthly_moy_execution_is_due2 PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_monthly_moy_execution_is_not_due2 PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_yearly_execution_is_due PASSED [ 19%]
t/unit/app/test_schedules.py::test_crontab_is_due::test_yearly_execution_is_not_due PASSED [ 19%]
t/unit/app/test_utils.py::test_Settings::test_is_mapping PASSED [ 19%]
t/unit/app/test_utils.py::test_Settings::test_is_mutable_mapping PASSED [ 19%]
t/unit/app/test_utils.py::test_Settings::test_find PASSED [ 19%]
t/unit/app/test_utils.py::test_Settings::test_get_by_parts PASSED [ 19%]
t/unit/app/test_utils.py::test_Settings::test_find_value_for_key PASSED [ 20%]
t/unit/app/test_utils.py::test_Settings::test_table PASSED [ 20%]
t/unit/app/test_utils.py::test_filter_hidden_settings::test_handles_non_string_keys PASSED [ 20%]
t/unit/app/test_utils.py::test_bugreport::test_no_conn_driver_info PASSED [ 20%]
t/unit/apps/test_multi.py::test_functions::test_parse_ns_range PASSED [ 20%]
t/unit/apps/test_multi.py::test_functions::test_format_opt PASSED [ 20%]
t/unit/apps/test_multi.py::test_NamespacedOptionParser::test_parse PASSED [ 20%]
t/unit/apps/test_multi.py::test_multi_args::test_parse PASSED [ 20%]
t/unit/apps/test_multi.py::test_multi_args::test_optmerge PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_from_kwargs PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_send PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_send__ESRCH PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_send__error PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_alive PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_start PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_waitexec PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_handle_process_exit PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_handle_process_exit__failure PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_handle_process_exit__signalled PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_logfile PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_pidfile_default PASSED [ 20%]
t/unit/apps/test_multi.py::test_Node::test_pidfile_custom PASSED [ 20%]
t/unit/apps/test_multi.py::test_Cluster::test_len PASSED [ 20%]
t/unit/apps/test_multi.py::test_Cluster::test_getitem PASSED [ 20%]
t/unit/apps/test_multi.py::test_Cluster::test_start PASSED [ 20%]
t/unit/apps/test_multi.py::test_Cluster::test_start_node PASSED [ 20%]
t/unit/apps/test_multi.py::test_Cluster::test__start_node PASSED [ 20%]
t/unit/apps/test_multi.py::test_Cluster::test_send_all PASSED [ 21%]
t/unit/apps/test_multi.py::test_Cluster::test_kill PASSED [ 21%]
t/unit/apps/test_multi.py::test_Cluster::test_getpids PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_init_no_arangodb PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_init_no_settings PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_init_settings_is_None PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_get_connection_connection_exists PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_get PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_delete PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_config_params PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_backend_by_url PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_backend_params_by_url PASSED [ 21%]
t/unit/backends/test_arangodb.py::test_ArangoDbBackend::test_backend_cleanup PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_missing_third_party_sdk PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_bad_connection_url PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_create_client PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_configure_client PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_get[] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_get[my_folder/] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_get_missing PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_set[] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_set[my_folder/] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_mget[] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_mget[my_folder/] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_delete[] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_delete[my_folder/] PASSED [ 21%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_base_path_conf[] PASSED [ 22%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_base_path_conf[my_folder/] PASSED [ 22%]
t/unit/backends/test_azureblockblob.py::test_AzureBlockBlobBackend::test_base_path_conf_default PASSED [ 22%]
t/unit/backends/test_azureblockblob.py::test_as_uri::test_as_uri_include_password PASSED [ 22%]
t/unit/backends/test_azureblockblob.py::test_as_uri::test_as_uri_exclude_password PASSED [ 22%]
t/unit/backends/test_base.py::test_nulldict::test_nulldict PASSED [ 22%]
t/unit/backends/test_base.py::test_serialization::test_create_exception_cls PASSED [ 22%]
t/unit/backends/test_base.py::test_Backend_interface::test_accept_precedence PASSED [ 22%]
t/unit/backends/test_base.py::test_Backend_interface::test_get_result_meta PASSED [ 22%]
t/unit/backends/test_base.py::test_Backend_interface::test_get_result_meta_encoded PASSED [ 22%]
t/unit/backends/test_base.py::test_Backend_interface::test_get_result_meta_with_none PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_interface::test__forget PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_interface::test_forget PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_interface::test_on_chord_part_return PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_interface::test_apply_chord PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_interface::test_chord_unlock_queue PASSED [ 22%]
t/unit/backends/test_base.py::test_exception_pickle::test_BaseException PASSED [ 22%]
t/unit/backends/test_base.py::test_exception_pickle::test_get_pickleable_exception PASSED [ 22%]
t/unit/backends/test_base.py::test_exception_pickle::test_unpickleable PASSED [ 22%]
t/unit/backends/test_base.py::test_prepare_exception::test_unpickleable PASSED [ 22%]
t/unit/backends/test_base.py::test_prepare_exception::test_json_exception_arguments PASSED [ 22%]
t/unit/backends/test_base.py::test_prepare_exception::test_json_exception_nested PASSED [ 22%]
t/unit/backends/test_base.py::test_prepare_exception::test_impossible PASSED [ 22%]
t/unit/backends/test_base.py::test_prepare_exception::test_regular PASSED [ 22%]
t/unit/backends/test_base.py::test_prepare_exception::test_unicode_message PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_delete_group PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_prepare_exception_json PASSED [ 22%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_save_group PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_add_to_chord_interface PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_forget_interface PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_restore_group PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_reload_group_result PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_reload_task_result PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_fail_from_current_stack PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_prepare_value_serializes_group_result PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_is_cached PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_mark_as_done__chord PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_mark_as_failure__bound_errback_eager PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_mark_as_failure__bound_errback PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_mark_as_failure__errback PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_class_based_task_can_be_used_as_error_callback PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_unregistered_task_can_be_used_as_error_callback PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_mark_as_failure__chord PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_mark_as_revoked__chord PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_chord_error_from_stack_raises PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_exception_to_python_when_None PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_not_an_actual_exc_info PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_not_an_exception_but_a_callable PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_not_an_exception_but_another_object PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_exception_to_python_when_attribute_exception PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_exception_to_python_when_type_error PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_wait_for__on_interval PASSED [ 23%]
t/unit/backends/test_base.py::test_BaseBackend_dict::test_get_children PASSED [ 23%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_on_chord_part_return PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_get_store_delete_result PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_store_result_parent_id[json] PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_store_result_parent_id[pickle] PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_store_result_parent_id[yaml] PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_store_result_parent_id[msgpack] PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_store_result_group_id PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_store_result_race_second_write_should_ignore_if_previous_success PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_strip_prefix PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_get_many PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_get_many_times_out PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_get_many_passes_ready_states PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_no_gid PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_restore_raises PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_restore_empty PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_filter_ready PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_timeout PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_propagate_set PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_propagate_default PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_join_raises_internal PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_part_return_join_raises_task PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_restore_group_from_json PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_restore_group_from_pickle PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_chord_apply_fallback PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_get_missing_meta PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_save_restore_delete_group PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend::test_restore_missing_group PASSED [ 24%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend_interface::test_get PASSED [ 25%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend_interface::test_set PASSED [ 25%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend_interface::test_incr PASSED [ 25%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend_interface::test_cleanup PASSED [ 25%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend_interface::test_delete PASSED [ 25%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend_interface::test_mget PASSED [ 25%]
t/unit/backends/test_base.py::test_KeyValueStoreBackend_interface::test_forget PASSED [ 25%]
t/unit/backends/test_base.py::test_DisabledBackend::test_store_result PASSED [ 25%]
t/unit/backends/test_base.py::test_DisabledBackend::test_is_disabled PASSED [ 25%]
t/unit/backends/test_base.py::test_DisabledBackend::test_as_uri PASSED [ 25%]
t/unit/backends/test_base.py::test_DisabledBackend::test_chord_raises_error PASSED [ 25%]
t/unit/backends/test_base.py::test_DisabledBackend::test_chain_with_chord_raises_error PASSED [ 25%]
t/unit/backends/test_base.py::test_as_uri::test_as_uri_include_password PASSED [ 25%]
t/unit/backends/test_base.py::test_as_uri::test_as_uri_exclude_password PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_should_retry_exception PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_get_failed_never_retries PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_get_with_retries PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_get_reaching_max_retries PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_get_unsafe_exception PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_store_result_never_retries PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_store_result_with_retries PASSED [ 25%]
t/unit/backends/test_base.py::test_backend_retries::test_store_result_reaching_max_retries PASSED [ 25%]
t/unit/backends/test_cache.py::test_CacheBackend::test_no_backend PASSED [ 25%]
t/unit/backends/test_cache.py::test_CacheBackend::test_memory_client_is_shared PASSED [ 25%]
t/unit/backends/test_cache.py::test_CacheBackend::test_mark_as_done PASSED [ 25%]
t/unit/backends/test_cache.py::test_CacheBackend::test_is_pickled PASSED [ 25%]
t/unit/backends/test_cache.py::test_CacheBackend::test_mark_as_failure PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_apply_chord PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_on_chord_part_return PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_mget PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_forget PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_process_cleanup PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_expires_as_int PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_unknown_backend_raises_ImproperlyConfigured PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_as_uri_no_servers PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_as_uri_one_server PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_as_uri_multiple_servers PASSED [ 26%]
t/unit/backends/test_cache.py::test_CacheBackend::test_regression_worker_startup_info SKIPPED [ 26%]
t/unit/backends/test_cache.py::test_get_best_memcache::test_pylibmc PASSED [ 26%]
t/unit/backends/test_cache.py::test_get_best_memcache::test_memcache PASSED [ 26%]
t/unit/backends/test_cache.py::test_get_best_memcache::test_no_implementations PASSED [ 26%]
t/unit/backends/test_cache.py::test_get_best_memcache::test_cached PASSED [ 26%]
t/unit/backends/test_cache.py::test_get_best_memcache::test_backends PASSED [ 26%]
t/unit/backends/test_cache.py::test_memcache_key::test_memcache_unicode_key PASSED [ 26%]
t/unit/backends/test_cache.py::test_memcache_key::test_memcache_bytes_key PASSED [ 26%]
t/unit/backends/test_cache.py::test_memcache_key::test_pylibmc_unicode_key PASSED [ 26%]
t/unit/backends/test_cache.py::test_memcache_key::test_pylibmc_bytes_key PASSED [ 26%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_init_no_cassandra PASSED [ 26%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_init_with_and_without_LOCAL_QUROM PASSED [ 26%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_reduce PASSED [ 26%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_get_task_meta_for PASSED [ 26%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_as_uri PASSED [ 26%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_store_result PASSED [ 26%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_timeouting_cluster PASSED [ 27%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_create_result_table PASSED [ 27%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_init_session PASSED [ 27%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_auth_provider PASSED [ 27%]
t/unit/backends/test_cassandra.py::test_CassandraBackend::test_options PASSED [ 27%]
t/unit/backends/test_consul.py::test_ConsulBackend::test_supports_autoexpire PASSED [ 27%]
t/unit/backends/test_consul.py::test_ConsulBackend::test_consul_consistency PASSED [ 27%]
t/unit/backends/test_consul.py::test_ConsulBackend::test_get PASSED [ 27%]
t/unit/backends/test_consul.py::test_ConsulBackend::test_set PASSED [ 27%]
t/unit/backends/test_consul.py::test_ConsulBackend::test_delete PASSED [ 27%]
t/unit/backends/test_consul.py::test_ConsulBackend::test_index_bytes_key PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_missing_third_party_sdk PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_bad_connection_url PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_default_connection_url PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_bad_partition_key PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_bad_consistency_level PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_create_client PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_get PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_get_missing PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_set PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_mget PASSED [ 27%]
t/unit/backends/test_cosmosdbsql.py::test_DocumentDBBackend::test_delete PASSED [ 27%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_init_no_couchbase PASSED [ 27%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_init_no_settings PASSED [ 27%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_init_settings_is_None PASSED [ 27%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_get_connection_connection_exists PASSED [ 27%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_get PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_set_no_expires PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_set_expires PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_delete PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_config_params PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_backend_by_url PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_backend_params_by_url PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_expires_defaults_to_config PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_expires_is_int PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_expires_is_None PASSED [ 28%]
t/unit/backends/test_couchbase.py::test_CouchbaseBackend::test_expires_is_timedelta PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_init_no_pycouchdb PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_get_container_exists PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_get PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_get_non_existent_key PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_set[1f3fab0] PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_set[1f3fab1] PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_set_with_conflict[1f3fab0] PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_set_with_conflict[1f3fab1] PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_delete PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_backend_by_url PASSED [ 28%]
t/unit/backends/test_couchdb.py::test_CouchBackend::test_backend_params_by_url PASSED [ 28%]
t/unit/backends/test_database.py::test_session_cleanup::test_context PASSED [ 28%]
t/unit/backends/test_database.py::test_session_cleanup::test_context_raises PASSED [ 28%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_retry_helper PASSED [ 28%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_missing_dburi_raises_ImproperlyConfigured PASSED [ 28%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_table_schema_config PASSED [ 28%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_table_name_config PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_missing_task_id_is_PENDING PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_missing_task_meta_is_dict_with_pending PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_mark_as_done PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_is_pickled PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_mark_as_started PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_mark_as_revoked PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_mark_as_retry PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_mark_as_failure PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_forget PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_process_cleanup PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_reduce PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_save__restore__delete_group PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_cleanup PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_Task__repr__ PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend::test_TaskSet__repr__ PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_store_result[using pickle] PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_store_result[using json] PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_store_none_result[using pickle] PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_store_none_result[using json] PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_get_result_meta[using pickle] PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_get_result_meta[using json] PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_get_result_meta_with_none[using pickle] PASSED [ 29%]
t/unit/backends/test_database.py::test_DatabaseBackend_result_extended::test_get_result_meta_with_none[using json] PASSED [ 29%]
t/unit/backends/test_database.py::test_SessionManager::test_after_fork PASSED [ 29%]
t/unit/backends/test_database.py::test_SessionManager::test_get_engine_forked PASSED [ 29%]
t/unit/backends/test_database.py::test_SessionManager::test_get_engine_kwargs PASSED [ 30%]
t/unit/backends/test_database.py::test_SessionManager::test_create_session_forked PASSED [ 30%]
t/unit/backends/test_database.py::test_SessionManager::test_coverage_madness PASSED [ 30%]
t/unit/backends/test_database.py::test_SessionManager::test_prepare_models_terminates PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_init_no_boto3 PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_init_aws_credentials PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_init_invalid_ttl_seconds_raises PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_get_client_explicit_endpoint PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_get_client_local PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_get_client_credentials PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_get_client_time_to_live_called PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_get_or_create_table_not_exists PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_get_or_create_table_already_exists PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_wait_for_table_status PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_has_ttl_none_returns_none PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_has_ttl_lt_zero_returns_false PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_has_ttl_gte_zero_returns_true PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_validate_ttl_methods_present_returns_none PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_validate_ttl_methods_missing_raise PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_table_ttl_describe_time_to_live_fails_raises PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_table_ttl_enable_when_disabled_succeeds PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_table_ttl_enable_when_enabled_with_correct_attr_succeeds PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_table_ttl_enable_when_currently_disabling_raises PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_table_ttl_enable_when_enabled_with_wrong_attr_raises PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_table_ttl_disable_when_disabled_succeeds PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_table_ttl_disable_when_currently_enabling_raises PASSED [ 30%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_prepare_get_request PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_prepare_put_request PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_prepare_put_request_with_ttl PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_item_to_dict PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_get PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_set_with_ttl PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_delete PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_backend_by_url PASSED [ 31%]
t/unit/backends/test_dynamodb.py::test_DynamoDBBackend::test_backend_params_by_url PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_init_no_elasticsearch PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_get PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_get_none PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_get_task_not_found PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_get_task_not_found_without_throw PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_delete PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_by_url PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_index_conflict PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_index_conflict_without_state PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_index_conflict_with_ready_state_on_backend_without_state PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_index_conflict_with_existing_success PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_index_conflict_with_existing_ready_state PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_concurrent_update FAILED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_index_conflicting_document_removed PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_index_conflicting_document_removed_not_throwing PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_index_corrupted_conflicting_document PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_params_by_url PASSED [ 31%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_url_no_params PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_get_server_with_auth PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_get_server_without_auth PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_index PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_index_bytes_key PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_encode_as_json PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_encode_none_as_json PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_encode_exception_as_json PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_decode_from_json PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_decode_none_from_json PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_decode_encoded_from_json PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_decode_encoded_exception_as_json PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_decode_not_dict PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_config_params PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_lazy_server_init PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_mget PASSED [ 32%]
t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_exception_safe_to_retry FAILED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_a_path_is_required PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_a_path_in_url PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_raises_meaningful_errors_for_invalid_urls[file:///non-existing-The configured path for the file-system backend does not\nwork correctly, please make sure that it exists and has\nthe correct permissions.] PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_raises_meaningful_errors_for_invalid_urls[url://non-conforming-A path for the file-system backend should conform to the file URI scheme] PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_raises_meaningful_errors_for_invalid_urls[None-You need to configure a path for the file-system backend] PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_localhost_is_removed_from_url PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_missing_task_is_PENDING PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_mark_as_done_writes_file PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_done_task_is_SUCCESS PASSED [ 32%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_correct_result PASSED [ 33%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_get_many PASSED [ 33%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_forget_deletes_file PASSED [ 33%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_pickleable PASSED [ 33%]
t/unit/backends/test_filesystem.py::test_FilesystemBackend::test_cleanup PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_no_mongodb PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_no_settings PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_settings_is_None PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_with_settings PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_mongodb_dnspython1_pymongo3_seedlist SKIPPED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_mongodb_dnspython2_pymongo3_seedlist SKIPPED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_mongodb_dnspython1_pymongo4_seedlist SKIPPED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_mongodb_dnspython2_pymongo4_seedlist PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_ensure_mongodb_uri_compliance PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_reduce PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_connection_connection_exists PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_connection_no_connection_host PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_connection_no_connection_mongodb_uri PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_connection_with_authmechanism PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_connection_with_authmechanism_no_username PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_database_no_existing PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_database_no_existing_no_auth PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_store_result PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_store_result_with_request PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_task_meta_for PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_task_meta_for_no_result PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_save_group PASSED [ 33%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_restore_group PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_delete_group PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test__forget PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_cleanup PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_prepare_client_options PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_as_uri_include_password PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_as_uri_exclude_password PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_as_uri_include_password_replica_set PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_as_uri_exclude_password_replica_set PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend::test_regression_worker_startup_info PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode[bson-int] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode[json-str] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode[pickle-Binary] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode[msgpack-Binary] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode[yaml-str] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode_decode[bson-int] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode_decode[json-str] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode_decode[pickle-Binary] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode_decode[msgpack-Binary] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_no_mock::test_encode_decode[yaml-str] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-str-A simple string] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-str-A simple string] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-str-A simple string] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[json-str-A simple string] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[msgpack-str-A simple string] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-int-100] PASSED [ 34%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-int-100] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-int-100] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[json-int-100] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[msgpack-int-100] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-float-9.2] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-float-9.2] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-float-9.2] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[json-float-9.2] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[msgpack-float-9.2] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-dict-result15] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-dict-result16] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-dict-result17] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[json-dict-result18] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[msgpack-dict-result19] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-list-result20] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-list-result21] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-list-result22] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[json-list-result23] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[msgpack-list-result24] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-bool-False] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-bool-False] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-bool-False] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[json-bool-False] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[msgpack-bool-False] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-NoneType-None] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-NoneType-None] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-NoneType-None] PASSED [ 35%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[json-NoneType-None] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[msgpack-NoneType-None] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[bson-datetime-result35] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-datetime-result36] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-datetime-result37] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-datetime-result38] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[yaml-datetime-result39] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_success_results[pickle-_MyTestClass-result40] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_chain_results[bson] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_chain_results[pickle] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_chain_results[yaml] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_chain_results[json] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_chain_results[msgpack] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_exception_error_results[bson] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_exception_error_results[pickle] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_exception_error_results[yaml] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_exception_error_results[json] PASSED [ 36%]
t/unit/backends/test_mongodb.py::test_MongoBackend_store_get_result::test_encode_exception_error_results[msgpack] PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test_on_after_fork PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test_on_state_change PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test_drain_events_before_start PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test_consume_from_connection_error PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test_cancel_for_connection_error PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test_drain_events_connection_error PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test_drain_events_connection_error_no_patch PASSED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test__reconnect_pubsub_no_subscribed FAILED [ 36%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test__reconnect_pubsub_with_state_change FAILED [ 37%]
t/unit/backends/test_redis.py::test_RedisResultConsumer::test__reconnect_pubsub_without_state_change PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_reduce PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_no_redis PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_username_password_from_redis_conf PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_url PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_timeouts_in_url_coerced PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_socket_url PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_health_check_interval_ssl PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_health_check_interval PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_health_check_interval_not_set PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_certreq_str[required] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_certreq_str[CERT_REQUIRED] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url[required] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url[CERT_REQUIRED] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url_options[none] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url_options[CERT_NONE] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url_cert_none[optional] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url_cert_none[CERT_OPTIONAL] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url_invalid[rediss://:bosco@vandelay.com:123//1?ssl_cert_reqs=CERT_KITTY_CATS] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_backend_ssl_url_invalid[rediss://:bosco@vandelay.com:123//1] PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_conf_raises_KeyError PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_on_connection_error PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_retry_policy_conf PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_incr PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_expire PASSED [ 37%]
t/unit/backends/test_redis.py::test_RedisBackend::test_apply_chord PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_unpack_chord_result PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_on_chord_part_return_no_gid_or_tid PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_ConnectionPool PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_expires_defaults_to_config PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_expires_is_int PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_add_to_chord PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_set_chord_size PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_expires_is_None PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_expires_is_timedelta PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_mget PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_set_no_expire PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_process_cleanup PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_get_set_forget PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_set_expires PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend::test_set_raises_error_on_large_value PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__unordered PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__ordered PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return_no_expiry PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return_expire_set_to_zero PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return_no_expiry__unordered PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return_no_expiry__ordered PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__success PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__success__unordered PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__success__ordered PASSED [ 38%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__callback_raises PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__callback_raises__unordered PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__callback_raises__ordered PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__ChordError PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__ChordError__unordered PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__ChordError__ordered PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__other_error PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__other_error__unordered PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_simple::test_on_chord_part_return__other_error__ordered PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_apply_chord_complex_header[results0-False] PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_apply_chord_complex_header[results1-False] PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_apply_chord_complex_header[results2-False] PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_apply_chord_complex_header[results3-True] PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_apply_chord_complex_header[results4-True] PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_apply_chord_complex_header[results5-True] PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_on_chord_part_return_timeout PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_on_chord_part_return[True] PASSED [ 39%]
t/unit/backends/test_redis.py::test_RedisBackend_chords_complex::test_on_chord_part_return[False] PASSED [ 39%]
t/unit/backends/test_redis.py::test_SentinelBackend::test_reduce PASSED [ 39%]
t/unit/backends/test_redis.py::test_SentinelBackend::test_no_redis PASSED [ 39%]
t/unit/backends/test_redis.py::test_SentinelBackend::test_url PASSED [ 39%]
t/unit/backends/test_redis.py::test_SentinelBackend::test_get_sentinel_instance PASSED [ 39%]
t/unit/backends/test_redis.py::test_SentinelBackend::test_get_pool PASSED [ 39%]
t/unit/backends/test_redis.py::test_SentinelBackend::test_backend_ssl PASSED [ 39%]
t/unit/backends/test_rpc.py::test_RPCResultConsumer::test_drain_events_before_start PASSED [ 39%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_oid PASSED [ 39%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_oid_threads PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_interface PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_ensure_chords_allowed PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_apply_chord PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_chord_raises_error PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_chain_with_chord_raises_error PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_destination_for PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_binding PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_create_binding PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_on_task_call PASSED [ 40%]
t/unit/backends/test_rpc.py::test_RPCBackend::test_create_exchange PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_with_missing_aws_credentials PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_with_no_credentials_in_config_attempts_to_load_credentials PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_with_credentials_in_config_does_not_search_for_credentials PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_with_no_given_bucket PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_it_creates_an_aws_s3_connection[No given aws region] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_it_creates_an_aws_s3_connection[Specific aws region] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_it_creates_an_aws_s3_resource[No given endpoint url] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_it_creates_an_aws_s3_resource[Custom endpoint url] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_set_and_get_a_key[uuid0] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_set_and_get_a_key[uuid1] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_set_and_get_a_result PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_get_a_missing_key PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_with_error_while_getting_key PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_delete_a_key[uuid0] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_delete_a_key[uuid1] PASSED [ 40%]
t/unit/backends/test_s3.py::test_S3Backend::test_with_a_non_existing_bucket PASSED [ 40%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_apply_target PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_apply_target__propagate PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_apply_target__raises PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_apply_target__raises_WorkerShutdown PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_apply_target__raises_WorkerTerminate PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_apply_target__raises_BaseException PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_apply_target__raises_BaseException_raises_else PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_does_not_debug PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_num_processes PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_on_start PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_on_stop PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_on_apply PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_info PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_flush PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_active PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_restart PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_on_terminate PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_terminate_job PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_did_start_ok PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_register_with_event_loop PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_on_soft_timeout PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_on_hard_timeout PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_close PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_BasePool::test_interface_no_close PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_get_available_pool_names::test_no_concurrent_futures__returns_no_threads_pool_name PASSED [ 41%]
t/unit/concurrency/test_concurrency.py::test_get_available_pool_names::test_concurrent_futures__returns_threads_pool_name PASSED [ 41%]
t/unit/concurrency/test_gevent.py::test_gevent_patch::test_is_patched PASSED [ 42%]
t/unit/concurrency/test_gevent.py::test_Timer::test_sched PASSED [ 42%]
t/unit/concurrency/test_gevent.py::test_TaskPool::test_pool PASSED [ 42%]
t/unit/concurrency/test_gevent.py::test_apply_timeout::test_apply_timeout PASSED [ 42%]
t/unit/concurrency/test_pool.py::test_TaskPool::test_attrs PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_process_initializer::test_process_initializer PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_process_initializer::test_pdeath_sig PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_process_destructor::test_process_destructor PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_gen_not_started PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_select PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_promise PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_Worker PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_iterate_file_descriptors_safely_source_data_list PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_iterate_file_descriptors_safely_source_data_set PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_iterate_file_descriptors_safely_source_data_dict PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_AsynPool::test_register_with_event_loop__no_on_tick_dupes PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_ResultHandler::test_process_result PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_start PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_restart PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_did_start_ok PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_register_with_event_loop PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_on_close PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_on_close__pool_not_running PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_apply_async PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_grow_shrink PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_info PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_num_processes PASSED [ 42%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_on_start_proc_alive_timeout_default PASSED [ 43%]
t/unit/concurrency/test_prefork.py::test_TaskPool::test_on_start_proc_alive_timeout_custom PASSED [ 43%]
t/unit/concurrency/test_solo.py::test_solo_TaskPool::test_on_start PASSED [ 43%]
t/unit/concurrency/test_solo.py::test_solo_TaskPool::test_on_apply PASSED [ 43%]
t/unit/concurrency/test_solo.py::test_solo_TaskPool::test_info PASSED [ 43%]
t/unit/concurrency/test_solo.py::test_solo_TaskPool::test_on_worker_process_init_called PASSED [ 43%]
t/unit/concurrency/test_thread.py::test_thread_TaskPool::test_on_apply PASSED [ 43%]
t/unit/concurrency/test_thread.py::test_thread_TaskPool::test_info PASSED [ 43%]
t/unit/concurrency/test_thread.py::test_thread_TaskPool::test_on_stop PASSED [ 43%]
t/unit/contrib/test_abortable.py::test_AbortableTask::test_async_result_is_abortable PASSED [ 43%]
t/unit/contrib/test_abortable.py::test_AbortableTask::test_is_not_aborted PASSED [ 43%]
t/unit/contrib/test_abortable.py::test_AbortableTask::test_is_aborted_not_abort_result PASSED [ 43%]
t/unit/contrib/test_abortable.py::test_AbortableTask::test_abort_yields_aborted PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_State::test_strtotal PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_State::test_repr PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_move::test_move PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_move::test_move_transform PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_move::test_limit PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_move::test_callback PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_start_filter::test_start PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_filter_callback::test_filter PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_task_id_in PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_task_id_eq PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_expand_dest PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_maybe_queue PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_filter_status PASSED [ 43%]
t/unit/contrib/test_migrate.py::test_move_by_taskmap PASSED [ 44%]
t/unit/contrib/test_migrate.py::test_move_by_idmap PASSED [ 44%]
t/unit/contrib/test_migrate.py::test_move_task_by_id PASSED [ 44%]
t/unit/contrib/test_migrate.py::test_migrate_task::test_removes_compression_header PASSED [ 44%]
t/unit/contrib/test_migrate.py::test_migrate_tasks::test_migrate PASSED [ 44%]
t/unit/contrib/test_pytest.py::test_pytest_celery_marker_registration PASSED [ 44%]
t/unit/contrib/test_rdb.py::test_Rdb::test_debugger PASSED [ 44%]
t/unit/contrib/test_rdb.py::test_Rdb::test_set_trace PASSED [ 44%]
t/unit/contrib/test_rdb.py::test_Rdb::test_rdb PASSED [ 44%]
t/unit/contrib/test_rdb.py::test_Rdb::test_get_avail_port PASSED [ 44%]
t/unit/contrib/test_sphinx.py::test_sphinx SKIPPED (Sphinx is not in...) [ 44%]
t/unit/events/test_cursesmon.py::test_CursesDisplay::test_format_row_with_default_widths PASSED [ 44%]
t/unit/events/test_cursesmon.py::test_CursesDisplay::test_format_row_with_truncated_uuid PASSED [ 44%]
t/unit/events/test_cursesmon.py::test_CursesDisplay::test_format_title_row PASSED [ 44%]
t/unit/events/test_cursesmon.py::test_CursesDisplay::test_format_row_for_wide_screen_with_short_uuid PASSED [ 44%]
t/unit/events/test_events.py::test_Event PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_redis_uses_fanout_exchange PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_others_use_topic_exchange PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_takes_channel_connection PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_sql_transports_disabled PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_send PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_send_buffer_group PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_flush_no_groups_no_errors PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_enter_exit PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_enable_disable_callbacks PASSED [ 44%]
t/unit/events/test_events.py::test_EventDispatcher::test_enabled_disable PASSED [ 44%]
t/unit/events/test_events.py::test_EventReceiver::test_process PASSED [ 44%]
t/unit/events/test_events.py::test_EventReceiver::test_accept_argument PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_event_queue_prefix__default PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_event_queue_prefix__setting PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_event_queue_prefix__argument PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_event_exchange__default PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_event_exchange__setting PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_catch_all_event PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_itercapture PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_event_from_message_localize_disabled PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_event_from_message_clock_from_client PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_receive_multi PASSED [ 45%]
t/unit/events/test_events.py::test_EventReceiver::test_itercapture_limit PASSED [ 45%]
t/unit/events/test_events.py::test_State PASSED [ 45%]
t/unit/events/test_events.py::test_default_dispatcher PASSED [ 45%]
t/unit/events/test_snapshot.py::test_Polaroid::test_constructor PASSED [ 45%]
t/unit/events/test_snapshot.py::test_Polaroid::test_install_timers PASSED [ 45%]
t/unit/events/test_snapshot.py::test_Polaroid::test_cleanup PASSED [ 45%]
t/unit/events/test_snapshot.py::test_Polaroid::test_shutter__capture PASSED [ 45%]
t/unit/events/test_snapshot.py::test_Polaroid::test_shutter_maxrate PASSED [ 45%]
t/unit/events/test_snapshot.py::test_evcam::test_evcam PASSED [ 45%]
t/unit/events/test_snapshot.py::test_evcam::test_evcam_pidfile PASSED [ 45%]
t/unit/events/test_state.py::test_Worker::test_equality PASSED [ 45%]
t/unit/events/test_state.py::test_Worker::test_heartbeat_expires__Decimal PASSED [ 45%]
t/unit/events/test_state.py::test_Worker::test_compatible_with_Decimal PASSED [ 45%]
t/unit/events/test_state.py::test_Worker::test_eq_ne_other PASSED [ 45%]
t/unit/events/test_state.py::test_Worker::test_reduce_direct PASSED [ 45%]
t/unit/events/test_state.py::test_Worker::test_update PASSED [ 46%]
t/unit/events/test_state.py::test_Worker::test_survives_missing_timestamp PASSED [ 46%]
t/unit/events/test_state.py::test_Worker::test_repr PASSED [ 46%]
t/unit/events/test_state.py::test_Worker::test_drift_warning PASSED [ 46%]
t/unit/events/test_state.py::test_Worker::test_updates_heartbeat PASSED [ 46%]
t/unit/events/test_state.py::test_Task::test_equality PASSED [ 46%]
t/unit/events/test_state.py::test_Task::test_info PASSED [ 46%]
t/unit/events/test_state.py::test_Task::test_reduce_direct PASSED [ 46%]
t/unit/events/test_state.py::test_Task::test_ready PASSED [ 46%]
t/unit/events/test_state.py::test_Task::test_sent PASSED [ 46%]
t/unit/events/test_state.py::test_Task::test_merge PASSED [ 46%]
t/unit/events/test_state.py::test_Task::test_repr PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_repr PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_pickleable PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_task_logical_clock_ordering PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_task_descending_clock_ordering SKIPPED [ 46%]
t/unit/events/test_state.py::test_State::test_get_or_create_task PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_get_or_create_worker PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_get_or_create_worker__with_defaults PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_worker_online_offline PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_itertasks PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_worker_heartbeat_expire PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_task_states PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_task_children_set_if_received_in_wrong_order PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_freeze_while PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_clear_tasks PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_clear PASSED [ 46%]
t/unit/events/test_state.py::test_State::test_task_types PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_tasks_by_time PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_tasks_by_type PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_alive_workers PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_tasks_by_worker PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_survives_unknown_worker_event PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_survives_unknown_worker_leaving PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_on_node_join_callback PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_survives_unknown_task_event PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_limits_maxtasks PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_callback PASSED [ 47%]
t/unit/events/test_state.py::test_State::test_deepcopy PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_setting_default_app PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_worker_fixup_property PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_on_import_modules PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_autodiscover_tasks PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_fixup_no_django PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_fixup PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_maybe_close_fd PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_init PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_install PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_now PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoFixup::test_on_worker_init PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_init PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_install PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_on_worker_process_init PASSED [ 47%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_on_task_prerun PASSED [ 48%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_on_task_postrun PASSED [ 48%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_close_database PASSED [ 48%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test__close_database PASSED [ 48%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_close_cache PASSED [ 48%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_on_worker_ready PASSED [ 48%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_validate_models PASSED [ 48%]
t/unit/fixups/test_django.py::test_DjangoWorkerFixup::test_django_setup PASSED [ 48%]
t/unit/security/test_certificate.py::test_Certificate::test_valid_certificate PASSED [ 48%]
t/unit/security/test_certificate.py::test_Certificate::test_invalid_certificate PASSED [ 48%]
t/unit/security/test_certificate.py::test_Certificate::test_has_expired SKIPPED [ 48%]
t/unit/security/test_certificate.py::test_Certificate::test_has_expired_mock PASSED [ 48%]
t/unit/security/test_certificate.py::test_Certificate::test_has_not_expired_mock PASSED [ 48%]
t/unit/security/test_certificate.py::test_CertStore::test_itercerts PASSED [ 48%]
t/unit/security/test_certificate.py::test_CertStore::test_duplicate PASSED [ 48%]
t/unit/security/test_certificate.py::test_FSCertStore::test_init PASSED [ 48%]
t/unit/security/test_key.py::test_PrivateKey::test_valid_private_key PASSED [ 48%]
t/unit/security/test_key.py::test_PrivateKey::test_invalid_private_key PASSED [ 48%]
t/unit/security/test_key.py::test_PrivateKey::test_sign PASSED [ 48%]
t/unit/security/test_security.py::test_security::test_disable_insecure_serializers PASSED [ 48%]
t/unit/security/test_security.py::test_security::test_disable_untrusted_serializers PASSED [ 48%]
t/unit/security/test_security.py::test_security::test_setup_security PASSED [ 48%]
t/unit/security/test_security.py::test_security::test_setup_security_encrypted_key_file FAILED [ 48%]
t/unit/security/test_security.py::test_security::test_setup_security_disabled_serializers PASSED [ 48%]
t/unit/security/test_security.py::test_security::test_setup_security__default_app PASSED [ 48%]
t/unit/security/test_security.py::test_security::test_setup_registry_complete FAILED [ 48%]
t/unit/security/test_security.py::test_security::test_security_conf PASSED [ 48%]
t/unit/security/test_security.py::test_security::test_reraise_errors PASSED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_serialize PASSED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_deserialize PASSED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_unmatched_key_cert PASSED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_unknown_source PASSED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_self_send PASSED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_separate_ends PASSED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_register_auth FAILED [ 49%]
t/unit/security/test_serialization.py::test_secureserializer::test_lots_of_sign PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_maybe_unroll_group::test_when_no_len_and_no_length_hint PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_getitem_property_class PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_getitem_property PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_call PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_link_on_scalar PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_json PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_reduce PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_replace PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_set PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_link PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_link_error PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_flatten_links PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_OR PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_INVERT PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_merge_immutable PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_merge_options__none PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_merge_options__group_id[True] PASSED [ 49%]
t/unit/tasks/test_canvas.py::test_Signature::test_merge_options__group_id[False] PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_Signature::test_set_immutable PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_Signature::test_election PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_Signature::test_AsyncResult_when_not_registered PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_Signature::test_apply_async_when_not_registered PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_Signature::test_keeping_link_error_on_chaining PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_xmap_xstarmap::test_apply PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chunks::test_chunks PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_chain_of_chain_with_a_single_task PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_clone_preserves_state PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_repr PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_apply_async PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_splices_chains PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_from_dict_no_tasks PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_from_dict_full_subtasks PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_app_falls_back_to_default PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_handles_dicts PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_groups_in_chain_to_chord PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_group_to_chord PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_group_to_chord__protocol_2__or PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_group_to_chord__protocol_2 PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_chord_to_chain PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_chord_to_group PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_apply_options PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_apply_options_none PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_reverse PASSED [ 50%]
t/unit/tasks/test_canvas.py::test_chain::test_always_eager PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_chain_always_eager PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_apply PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_kwargs_apply PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_single_expresion PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_empty_chain_returns_none PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_call_no_tasks PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_call_with_tasks PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_from_dict_no_args__with_args PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_accepts_generator_argument PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_chord_sets_result_parent PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_append_to_empty_chain PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_chain_single_child_result PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_chain::test_chain_single_child_group_result PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_repr PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_reverse PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_cannot_link_on_group PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_cannot_link_error_on_group PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_group_with_group_argument PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_maybe_group_sig PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_apply PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_apply_async PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_prepare_with_dict PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_group_in_group PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_set_immutable PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_link PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_link_error PASSED [ 51%]
t/unit/tasks/test_canvas.py::test_group::test_apply_empty PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_async_with_parent PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_from_dict PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_from_dict_deep_deserialize PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_from_dict_deeper_deserialize PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_call_empty_group PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_skew PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_iter PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_single_task PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_kwargs_direct PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_kwargs_apply PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_kwargs_apply_async PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_kwargs_delay PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_kwargs_delay_partial PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_from_generator PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_from_generator_empty PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chord PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chords_containing_chain PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chords_containing_empty_chain XFAIL [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chords_containing_chain_with_empty_tail PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chords_containing_group PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chords_containing_empty_group XFAIL [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chords_containing_chord PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_group::test_apply_contains_chords_containing_empty_chord PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_chord::test__get_app_does_not_exhaust_generator PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_chord::test_reverse PASSED [ 52%]
t/unit/tasks/test_canvas.py::test_chord::test_clone_clones_body PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_argument_is_group PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_app_when_app PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_app_when_app_in_task PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_app_when_header_is_empty PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_app_fallback_to_current PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_simple PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_with_body PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_explicit_group_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_explicit_group_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_implicit_group_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_implicit_group_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_chain_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_chain_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_chain_chain_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_chain_chain_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_implicit_chain_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_implicit_chain_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_implicit_chain_chain_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_implicit_chain_chain_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_chord_body_simple PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_chord_body_implicit_group_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_chord_body_implicit_group_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_group_chain_group_head_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_group_chain_group_head_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_group_chain_group_mid_single PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_group_chain_group_mid_many PASSED [ 53%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_group_chain_group_tail_single PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_group_chain_group_tail_many PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_implicit_group_chain_group_tail_single PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_nested_implicit_group_chain_group_tail_many PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_deserialized_element_single PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_chord_size_deserialized_element_many PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_set_immutable PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_links_to_body PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_repr PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_freeze_tasks_body_is_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_freeze_tasks_body_is_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_freeze_tasks_body_is_group PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_freeze_tasks_is_not_group PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_chain_always_eager PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_with_body PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_group PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deeper_deserialize_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deeper_deserialize_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deeper_deserialize_group SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deeper_deserialize_group PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_chain SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_chain SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_chain SUBPASS [ 54%]
t/unit/tasks/test_canvas.py::test_chord::test_from_dict_deep_deserialize_chain PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_maybe_signature::test_is_None PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_maybe_signature::test_is_dict PASSED [ 54%]
t/unit/tasks/test_canvas.py::test_maybe_signature::test_when_sig PASSED [ 54%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_unlock_ready PASSED [ 54%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_deps_ready_fails PASSED [ 54%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_callback_fails PASSED [ 54%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_unlock_ready_failed PASSED [ 54%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_unlock_ready_failed_no_culprit PASSED [ 54%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_when_not_ready PASSED [ 55%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_when_not_ready_with_configured_chord_retry_interval PASSED [ 55%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_is_in_registry PASSED [ 55%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_unlock_join_timeout_default PASSED [ 55%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_unlock_join_timeout_custom PASSED [ 55%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_unlock_with_chord_params PASSED [ 55%]
t/unit/tasks/test_chord.py::test_unlock_chord_task::test_unlock_with_chord_params_and_task_id PASSED [ 55%]
t/unit/tasks/test_chord.py::test_chord::test_eager PASSED [ 55%]
t/unit/tasks/test_chord.py::test_chord::test_apply PASSED [ 55%]
t/unit/tasks/test_chord.py::test_chord::test_init PASSED [ 55%]
t/unit/tasks/test_chord.py::test_add_to_chord::test_add_to_chord PASSED [ 55%]
t/unit/tasks/test_chord.py::test_Chord_task::test_run PASSED [ 55%]
t/unit/tasks/test_chord.py::test_Chord_task::test_run__chord_size_set PASSED [ 55%]
t/unit/tasks/test_context.py::test_Context::test_default_context PASSED [ 55%]
t/unit/tasks/test_context.py::test_Context::test_updated_context PASSED [ 55%]
t/unit/tasks/test_context.py::test_Context::test_modified_context PASSED [ 55%]
t/unit/tasks/test_context.py::test_Context::test_cleared_context PASSED [ 55%]
t/unit/tasks/test_context.py::test_Context::test_context_get PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_forget PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_ignored_getter PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_assert_will_not_block PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get_sync_subtask_option PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_without_id PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_compat_properties PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_reduce_direct PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_children PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_propagates_for_parent PASSED [ 55%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get_children PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_build_graph_get_leaf_collect PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_iterdeps PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_eq_not_implemented PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_reduce PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_maybe_set_cache_empty PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_set_cache__children PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_successful PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_raising PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_raising_remote_tracebacks PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_str PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_repr PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_hash PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get_traceback PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get__backend_gives_None PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get_when_ignored PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_eq_ne PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_reduce_restore PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get_timeout PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get_timeout_longer PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_ready PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_del PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_get_request_meta PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_date_done[result_dict0-None] PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_date_done[result_dict1-date1] PASSED [ 56%]
t/unit/tasks/test_result.py::test_AsyncResult::test_date_done[result_dict2-date2] PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_resultset_repr PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_eq_other PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_get PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_get_sync_subtask_option PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_join_native_with_group_chain_group PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_eq_ne PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_takes_app_from_first_task PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_get_empty PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_add PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_add_discard PASSED [ 57%]
t/unit/tasks/test_result.py::test_ResultSet::test_clear PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_is_pickleable PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_reduce PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_eq_ne PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_len PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_eq_other PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_eq_with_parent PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_pickleable PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_forget PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_get_nested_without_native_join PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_getitem PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_save_restore PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_save_restore_empty PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_restore_app PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_restore_current_app_fallback PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_join_native PASSED [ 57%]
t/unit/tasks/test_result.py::test_GroupResult::test_join_native_raises PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_failed_join_report PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_repr PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_children_is_results PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_iter_native PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_join_timeout PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_iter_native_when_empty_group PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test___iter__ PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_join PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_successful PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_failed PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_maybe_throw PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_join__on_message PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_waiting PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_ready PASSED [ 58%]
t/unit/tasks/test_result.py::test_GroupResult::test_completed_count PASSED [ 58%]
t/unit/tasks/test_result.py::test_pending_AsyncResult::test_result PASSED [ 58%]
t/unit/tasks/test_result.py::test_failed_AsyncResult::test_completed_count PASSED [ 58%]
t/unit/tasks/test_result.py::test_failed_AsyncResult::test_join PASSED [ 58%]
t/unit/tasks/test_result.py::test_failed_AsyncResult::test_successful PASSED [ 58%]
t/unit/tasks/test_result.py::test_failed_AsyncResult::test_failed PASSED [ 58%]
t/unit/tasks/test_result.py::test_pending_Group::test_completed_count PASSED [ 58%]
t/unit/tasks/test_result.py::test_pending_Group::test_ready PASSED [ 58%]
t/unit/tasks/test_result.py::test_pending_Group::test_waiting PASSED [ 58%]
t/unit/tasks/test_result.py::test_pending_Group::test_join PASSED [ 58%]
t/unit/tasks/test_result.py::test_pending_Group::test_join_longer PASSED [ 58%]
t/unit/tasks/test_result.py::test_EagerResult::test_wait_raises PASSED [ 59%]
t/unit/tasks/test_result.py::test_EagerResult::test_wait PASSED [ 59%]
t/unit/tasks/test_result.py::test_EagerResult::test_forget PASSED [ 59%]
t/unit/tasks/test_result.py::test_EagerResult::test_revoke PASSED [ 59%]
t/unit/tasks/test_result.py::test_EagerResult::test_get_sync_subtask_option PASSED [ 59%]
t/unit/tasks/test_result.py::test_tuples::test_AsyncResult PASSED [ 59%]
t/unit/tasks/test_result.py::test_tuples::test_with_parent PASSED [ 59%]
t/unit/tasks/test_result.py::test_tuples::test_compat PASSED [ 59%]
t/unit/tasks/test_result.py::test_tuples::test_as_list PASSED [ 59%]
t/unit/tasks/test_result.py::test_tuples::test_GroupResult PASSED [ 59%]
t/unit/tasks/test_result.py::test_tuples::test_GroupResult_with_parent PASSED [ 59%]
t/unit/tasks/test_result.py::test_tuples::test_GroupResult_as_tuple PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_gt[SUCCESS-PENDING] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_gt[FAILURE-RECEIVED] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_gt[REVOKED-STARTED] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_gt[SUCCESS-CRASHED] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_gt[FAILURE-CRASHED] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_gte[CRASHED-REVOKED] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_lt[PENDING-SUCCESS] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_lt[RECEIVED-FAILURE] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_lt[STARTED-REVOKED] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_lt[CRASHED-SUCCESS] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_lt[CRASHED-FAILURE] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_lt[REVOKED-CRASHED] PASSED [ 59%]
t/unit/tasks/test_states.py::test_state_precedence::test_lte[REVOKED-CRASHED] PASSED [ 59%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry PASSED [ 59%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_priority PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_no_args PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_signature_from_request__passes_headers PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_signature_from_request__delivery_info PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_signature_from_request__shadow_name PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_kwargs_can_be_empty PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_without_throw_eager PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_raise_without_throw_eager PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_return_with_throw_eager PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_eager_retry_with_single_new_params PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_eager_retry_with_new_params PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_eager_retry_with_autoretry_for_exception PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_task_max_retries_override PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_task_explicit_exception PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_eager_should_return_value PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_not_eager PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_with_kwargs PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_with_custom_exception PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_max_retries_exceeded PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_max_retries_exceeded_task_args PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_autoretry_no_kwargs PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_autoretry PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_autoretry_backoff PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_autoretry_backoff_jitter PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_autoretry_for_from_base PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_override_autoretry_for_from_base PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_kwargs_from_base PASSED [ 60%]
t/unit/tasks/test_tasks.py::test_task_retries::test_override_retry_kwargs_from_base PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_backoff_from_base PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_override_retry_backoff_from_base PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_backoff_max_from_base PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_override_retry_backoff_max_from_base PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_backoff_jitter_from_base PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_override_backoff_jitter_from_base PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_retry_wrong_eta_when_not_enable_utc PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_task_retries::test_autoretry_class_based_task PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_canvas_utils::test_si PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_canvas_utils::test_chunks PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_canvas_utils::test_map PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_canvas_utils::test_starmap PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_canvas_utils::test_on_success PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_typing PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_shadow_name PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_inherit_parent_priority_child_task PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_typing__disabled PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_typing__disabled_by_app PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_unpickle_task PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_bind__no_app PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_reprtask__no_fmt PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_AsyncResult PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_incomplete_task_cls PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_task_kwargs_must_be_dictionary PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_task_args_must_be_list PASSED [ 61%]
t/unit/tasks/test_tasks.py::test_tasks::test_regular_task PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_send_event PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace_with_chord PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace_callback PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace_group PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace_run PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace_run_with_autoretry PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace_delay PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_replace_apply PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_add_trail__no_trail PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_repr_v2_compat PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_context_get PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_annotate PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_after_return PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_update_state PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_update_state_passes_request_to_backend PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_repr PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_has___name__ PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_tasks::test_default_priority PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_task::test_apply_throw PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_task::test_apply_with_task_eager_propagates PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_task::test_apply_request_context_is_ok PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_task::test_apply PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_task::test_apply_simulates_delivery_info PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_async::test_eager_serialization_failure PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_async::test_eager_serialization_uses_task_serializer_setting PASSED [ 62%]
t/unit/tasks/test_tasks.py::test_apply_async::test_always_eager_with_task_serializer_option PASSED [ 63%]
t/unit/tasks/test_tasks.py::test_apply_async::test_always_eager_uses_task_serializer_setting PASSED [ 63%]
t/unit/tasks/test_tasks.py::test_apply_async::test_task_with_ignored_result PASSED [ 63%]
t/unit/tasks/test_tasks.py::test_apply_async::test_task_with_result PASSED [ 63%]
t/unit/tasks/test_tasks.py::test_apply_async::test_task_with_result_ignoring_on_call PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_trace_successful PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_trace_before_start PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_trace_on_success PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_get_log_policy PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_get_task_name PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_trace_after_return PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_with_prerun_receivers PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_with_postrun_receivers PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_with_success_receivers PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_when_chord_part PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_when_backend_cleanup_raises PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_eager_task_does_not_store_result_even_if_not_ignore_result PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_eager_task_does_not_call_store_result PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_eager_task_will_store_result_if_proper_setting_is_set PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_eager_task_with_setting_will_call_store_result PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_when_backend_raises_exception PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_traceback_clear PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_when_Ignore PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_when_Reject PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_backend_cleanup_raises PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_callbacks__scalar PASSED [ 63%]
t/unit/tasks/test_trace.py::test_trace::test_chain_proto2 PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_chain_inherit_parent_priority PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_callbacks__EncodeError PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_callbacks__sigs PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_callbacks__only_groups PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_trace_SystemExit PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_trace_Retry PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_trace_exception PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_trace_task_ret__no_content_type PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_fast_trace_task__no_content_type PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_trace_exception_propagate PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_outside_body_error PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_backend_error_should_report_failure PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_deduplicate_successful_tasks__deduplication PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_deduplicate_successful_tasks__no_deduplication PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_deduplicate_successful_tasks__result_not_found PASSED [ 64%]
t/unit/tasks/test_trace.py::test_trace::test_deduplicate_successful_tasks__cached_request PASSED [ 64%]
t/unit/tasks/test_trace.py::test_TraceInfo::test_handle_error_state PASSED [ 64%]
t/unit/tasks/test_trace.py::test_TraceInfo::test_handle_error_state_for_eager_task PASSED [ 64%]
t/unit/tasks/test_trace.py::test_TraceInfo::test_handle_error_for_eager_saved_to_backend PASSED [ 64%]
t/unit/tasks/test_trace.py::test_TraceInfo::test_handle_reject PASSED [ 64%]
t/unit/tasks/test_trace.py::test_stackprotection::test_stackprotection PASSED [ 64%]
t/unit/utils/test_collections.py::test_DictAttribute::test_get_set_keys_values_items PASSED [ 64%]
t/unit/utils/test_collections.py::test_DictAttribute::test_setdefault PASSED [ 64%]
t/unit/utils/test_collections.py::test_DictAttribute::test_contains PASSED [ 64%]
t/unit/utils/test_collections.py::test_DictAttribute::test_items PASSED [ 64%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_setdefault PASSED [ 64%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_get PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_update PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_contains PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_repr PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_iter PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_add_defaults_dict PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_add_defaults_object PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_clear PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_bool PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_len PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_isa_mapping PASSED [ 65%]
t/unit/utils/test_collections.py::test_ConfigurationView::test_isa_mutable_mapping PASSED [ 65%]
t/unit/utils/test_collections.py::test_ExceptionInfo::test_exception_info PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_add PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_purge PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_pickleable PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_iter PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_repr PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_discard PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_clear PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_update PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_iterable_and_ordering PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_pop_and_ordering_again PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_as_dict PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_add_removes_duplicate_from_small_heap PASSED [ 65%]
t/unit/utils/test_collections.py::test_LimitedSet::test_add_removes_duplicate_from_big_heap PASSED [ 65%]
t/unit/utils/test_collections.py::test_AttributeDict::test_getattr__setattr PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_append_limited PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_append_unlimited PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_extend_limited PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_extend_unlimited PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_extend_eviction_time_limited PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_pop_empty_with_default PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_pop_empty_no_default PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_repr PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_iter PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_contains PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_reversed PASSED [ 66%]
t/unit/utils/test_collections.py::test_Messagebuffer::test_getitem PASSED [ 66%]
t/unit/utils/test_collections.py::test_BufferMap::test_append_limited PASSED [ 66%]
t/unit/utils/test_collections.py::test_BufferMap::test_append_unlimited PASSED [ 66%]
t/unit/utils/test_collections.py::test_BufferMap::test_extend_limited PASSED [ 66%]
t/unit/utils/test_collections.py::test_BufferMap::test_extend_unlimited PASSED [ 66%]
t/unit/utils/test_collections.py::test_BufferMap::test_pop_empty_with_default PASSED [ 66%]
t/unit/utils/test_collections.py::test_BufferMap::test_pop_empty_no_default PASSED [ 66%]
t/unit/utils/test_collections.py::test_BufferMap::test_repr PASSED [ 66%]
t/unit/utils/test_debug.py::test_on_blocking PASSED [ 66%]
t/unit/utils/test_debug.py::test_blockdetection PASSED [ 66%]
t/unit/utils/test_debug.py::test_sample_mem PASSED [ 66%]
t/unit/utils/test_debug.py::test_sample PASSED [ 66%]
t/unit/utils/test_debug.py::test_hfloat[10-5-10] PASSED [ 66%]
t/unit/utils/test_debug.py::test_hfloat[10.45645234234-5-10.456] PASSED [ 66%]
t/unit/utils/test_debug.py::test_humanbytes[1048576-1MB] PASSED [ 66%]
t/unit/utils/test_debug.py::test_humanbytes[4194304-4MB] PASSED [ 67%]
t/unit/utils/test_debug.py::test_humanbytes[65536-64KB0] PASSED [ 67%]
t/unit/utils/test_debug.py::test_humanbytes[65536-64KB1] PASSED [ 67%]
t/unit/utils/test_debug.py::test_humanbytes[256-256b] PASSED [ 67%]
t/unit/utils/test_debug.py::test_mem_rss PASSED [ 67%]
t/unit/utils/test_debug.py::test_ps PASSED [ 67%]
t/unit/utils/test_deprecated.py::test_deprecated_property::test_deprecated PASSED [ 67%]
t/unit/utils/test_deprecated.py::test_deprecated_property::test_deprecated_no_setter_or_deleter PASSED [ 67%]
t/unit/utils/test_deprecated.py::test_warn::test_warn_deprecated PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_exact PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_ignored_sender PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_garbage_collected PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_multiple_registration PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_uid_registration PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_robust PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_disconnection PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_retry PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_retry_with_dispatch_uid PASSED [ 67%]
t/unit/utils/test_dispatcher.py::test_Signal::test_boundmethod PASSED [ 67%]
t/unit/utils/test_functional.py::test_DummyContext PASSED [ 67%]
t/unit/utils/test_functional.py::test_padlist[items0-3-None-expected0] PASSED [ 67%]
t/unit/utils/test_functional.py::test_padlist[items1-3-None-expected1] PASSED [ 67%]
t/unit/utils/test_functional.py::test_padlist[items2-4-Earth-expected2] PASSED [ 67%]
t/unit/utils/test_functional.py::test_firstmethod::test_AttributeError PASSED [ 67%]
t/unit/utils/test_functional.py::test_firstmethod::test_handles_lazy PASSED [ 67%]
t/unit/utils/test_functional.py::test_first PASSED [ 67%]
t/unit/utils/test_functional.py::test_lookahead PASSED [ 68%]
t/unit/utils/test_functional.py::test_maybe_list PASSED [ 68%]
t/unit/utils/test_functional.py::test_mlazy PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_list PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_gen PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_gen__index_2 PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_gen__index_error PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_gen__negative_index PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_nonzero__does_not_consume_more_than_first_item PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_nonzero__empty_iter PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_deque PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_repr PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_partial_reconcretisation XFAIL [ 68%]
t/unit/utils/test_functional.py::test_regen::test_length_hint_passthrough PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_getitem_repeated PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_done_does_not_lag PASSED [ 68%]
t/unit/utils/test_functional.py::test_regen::test_lookahead_consume SUBPASS [ 68%]
t/unit/utils/test_functional.py::test_regen::test_lookahead_consume SUBPASS [ 68%]
t/unit/utils/test_functional.py::test_regen::test_lookahead_consume SUBPASS [ 68%]
t/unit/utils/test_functional.py::test_regen::test_lookahead_consume SUBPASS [ 68%]
t/unit/utils/test_functional.py::test_regen::test_lookahead_consume SUBPASS [ 68%]
t/unit/utils/test_functional.py::test_regen::test_lookahead_consume SUBPASS [ 68%]
t/unit/utils/test_functional.py::test_regen::test_lookahead_consume PASSED [ 68%]
t/unit/utils/test_functional.py::test_head_from_fun::test_from_cls PASSED [ 68%]
t/unit/utils/test_functional.py::test_head_from_fun::test_from_fun PASSED [ 68%]
t/unit/utils/test_functional.py::test_head_from_fun::test_regression_3678 PASSED [ 68%]
t/unit/utils/test_functional.py::test_head_from_fun::test_from_fun_with_hints PASSED [ 68%]
t/unit/utils/test_functional.py::test_head_from_fun::test_from_fun_forced_kwargs PASSED [ 68%]
t/unit/utils/test_functional.py::test_head_from_fun::test_classmethod PASSED [ 68%]
t/unit/utils/test_functional.py::test_head_from_fun::test_kwonly_required_args PASSED [ 68%]
t/unit/utils/test_functional.py::test_fun_takes_argument::test_starkwargs PASSED [ 68%]
t/unit/utils/test_functional.py::test_fun_takes_argument::test_named PASSED [ 68%]
t/unit/utils/test_functional.py::test_fun_takes_argument::test_starargs PASSED [ 68%]
t/unit/utils/test_functional.py::test_fun_takes_argument::test_does_not PASSED [ 69%]
t/unit/utils/test_functional.py::test_seq_concat_seq[a0-b0-expected0] PASSED [ 69%]
t/unit/utils/test_functional.py::test_seq_concat_seq[a1-b1-expected1] PASSED [ 69%]
t/unit/utils/test_functional.py::test_seq_concat_seq[a2-b2-expected2] PASSED [ 69%]
t/unit/utils/test_functional.py::test_seq_concat_seq[a3-b3-expected3] PASSED [ 69%]
t/unit/utils/test_functional.py::test_seq_concat_item[a0-4-expected0] PASSED [ 69%]
t/unit/utils/test_functional.py::test_seq_concat_item[a1-4-expected1] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_accepts[<lambda>0] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_accepts[<lambda>1] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_accepts[<lambda>2] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_accepts[fun3] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_accepts[fun4] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_accepts[fun5] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_rejects[<lambda>0] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_rejects[<lambda>1] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_rejects[<lambda>2] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_rejects[<lambda>3] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_rejects[fun4] PASSED [ 69%]
t/unit/utils/test_functional.py::test_fun_accepts_kwargs::test_rejects[fun5] PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_repr PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_topsort PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_edges PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_connect PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_valency_of_when_missing PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_format PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_items PASSED [ 69%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_repr_node PASSED [ 70%]
t/unit/utils/test_graph.py::test_DependencyGraph::test_to_dot PASSED [ 70%]
t/unit/utils/test_imports.py::test_find_module PASSED [ 70%]
t/unit/utils/test_imports.py::test_find_module_legacy_namespace_package PASSED [ 70%]
t/unit/utils/test_imports.py::test_find_module_pep420_namespace_package PASSED [ 70%]
t/unit/utils/test_imports.py::test_qualname PASSED [ 70%]
t/unit/utils/test_imports.py::test_reload_from_cwd PASSED [ 70%]
t/unit/utils/test_imports.py::test_reload_from_cwd_custom_reloader PASSED [ 70%]
t/unit/utils/test_imports.py::test_module_file PASSED [ 70%]
t/unit/utils/test_imports.py::test_gen_task_name::test_no_module PASSED [ 70%]
t/unit/utils/test_local.py::test_try_import::test_imports PASSED [ 70%]
t/unit/utils/test_local.py::test_try_import::test_when_default PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_std_class_attributes PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_doc PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_name PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_get_current_local PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_bool PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_slots PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_dir PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_getsetdel_attr PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_dictproxy PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_listproxy PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_complex_cast PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_index PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_coerce PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_int PASSED [ 70%]
t/unit/utils/test_local.py::test_Proxy::test_hash PASSED [ 71%]
t/unit/utils/test_local.py::test_Proxy::test_call PASSED [ 71%]
t/unit/utils/test_local.py::test_Proxy::test_context PASSED [ 71%]
t/unit/utils/test_local.py::test_Proxy::test_reduce PASSED [ 71%]
t/unit/utils/test_local.py::test_PromiseProxy::test_only_evaluated_once PASSED [ 71%]
t/unit/utils/test_local.py::test_PromiseProxy::test_callbacks PASSED [ 71%]
t/unit/utils/test_local.py::test_PromiseProxy::test_maybe_evaluate PASSED [ 71%]
t/unit/utils/test_nodenames.py::test_worker_direct::test_returns_if_queue PASSED [ 71%]
t/unit/utils/test_objects.py::test_Bunch::test PASSED [ 71%]
t/unit/utils/test_pickle.py::test_Pickle::test_pickle_regular_exception PASSED [ 71%]
t/unit/utils/test_pickle.py::test_Pickle::test_pickle_arg_override_exception PASSED [ 71%]
t/unit/utils/test_platforms.py::test_isatty PASSED [ 71%]
t/unit/utils/test_platforms.py::test_find_option_with_arg::test_long_opt PASSED [ 71%]
t/unit/utils/test_platforms.py::test_find_option_with_arg::test_short_opt PASSED [ 71%]
t/unit/utils/test_platforms.py::test_fd_by_path PASSED [ 71%]
t/unit/utils/test_platforms.py::test_close_open_fds PASSED [ 71%]
t/unit/utils/test_platforms.py::test_ignore_errno::test_raises_EBADF PASSED [ 71%]
t/unit/utils/test_platforms.py::test_ignore_errno::test_otherwise PASSED [ 71%]
t/unit/utils/test_platforms.py::test_set_process_title::test_no_setps PASSED [ 71%]
t/unit/utils/test_platforms.py::test_set_process_title::test_mp_no_hostname PASSED [ 71%]
t/unit/utils/test_platforms.py::test_set_process_title::test_mp_hostname PASSED [ 71%]
t/unit/utils/test_platforms.py::test_Signals::test_getitem PASSED [ 71%]
t/unit/utils/test_platforms.py::test_Signals::test_supported PASSED [ 71%]
t/unit/utils/test_platforms.py::test_Signals::test_reset_alarm PASSED [ 71%]
t/unit/utils/test_platforms.py::test_Signals::test_arm_alarm PASSED [ 71%]
t/unit/utils/test_platforms.py::test_Signals::test_signum PASSED [ 71%]
t/unit/utils/test_platforms.py::test_Signals::test_ignore PASSED [ 71%]
t/unit/utils/test_platforms.py::test_Signals::test_reset PASSED [ 72%]
t/unit/utils/test_platforms.py::test_Signals::test_setitem PASSED [ 72%]
t/unit/utils/test_platforms.py::test_Signals::test_setitem_raises PASSED [ 72%]
t/unit/utils/test_platforms.py::test_set_pdeathsig::test_call PASSED [ 72%]
t/unit/utils/test_platforms.py::test_set_pdeathsig::test_call_with_correct_parameter PASSED [ 72%]
t/unit/utils/test_platforms.py::test_get_fdmax::test_when_infinity PASSED [ 72%]
t/unit/utils/test_platforms.py::test_get_fdmax::test_when_actual PASSED [ 72%]
t/unit/utils/test_platforms.py::test_maybe_drop_privileges::test_on_windows PASSED [ 72%]
t/unit/utils/test_platforms.py::test_maybe_drop_privileges::test_with_uid PASSED [ 72%]
t/unit/utils/test_platforms.py::test_maybe_drop_privileges::test_with_guid PASSED [ 72%]
t/unit/utils/test_platforms.py::test_maybe_drop_privileges::test_only_gid PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_setuid PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_setgid PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_parse_uid_when_int PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_parse_uid_when_existing_name PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_parse_uid_when_nonexisting_name PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_parse_gid_when_int PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_parse_gid_when_existing_name PASSED [ 72%]
t/unit/utils/test_platforms.py::test_setget_uid_gid::test_parse_gid_when_nonexisting_name PASSED [ 72%]
t/unit/utils/test_platforms.py::test_initgroups::test_with_initgroups PASSED [ 72%]
t/unit/utils/test_platforms.py::test_initgroups::test_without_initgroups PASSED [ 72%]
t/unit/utils/test_platforms.py::test_detached::test_without_resource PASSED [ 72%]
t/unit/utils/test_platforms.py::test_detached::test_default PASSED [ 72%]
t/unit/utils/test_platforms.py::test_DaemonContext::test_open PASSED [ 72%]
t/unit/utils/test_platforms.py::test_Pidfile::test_create_pidlock PASSED [ 72%]
t/unit/utils/test_platforms.py::test_Pidfile::test_context PASSED [ 72%]
t/unit/utils/test_platforms.py::test_Pidfile::test_acquire_raises_LockFailed PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_is_locked PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_read_pid PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_read_pid_partially_written PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_read_pid_raises_ENOENT PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_read_pid_raises_IOError PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_read_pid_bogus_pidfile PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_ENOENT PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_EACCES PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_OSError PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_if_stale_process_alive PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_if_stale_process_dead PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_if_stale_broken_pid PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_if_stale_unprivileged_user PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_remove_if_stale_no_pidfile PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_write_pid PASSED [ 73%]
t/unit/utils/test_platforms.py::test_Pidfile::test_write_reread_fails PASSED [ 73%]
t/unit/utils/test_platforms.py::test_setgroups::test_setgroups_hack_ValueError PASSED [ 73%]
t/unit/utils/test_platforms.py::test_setgroups::test_setgroups_hack_OSError PASSED [ 73%]
t/unit/utils/test_platforms.py::test_setgroups::test_setgroups PASSED [ 73%]
t/unit/utils/test_platforms.py::test_setgroups::test_setgroups_sysconf_raises PASSED [ 73%]
t/unit/utils/test_platforms.py::test_setgroups::test_setgroups_raises_ESRCH PASSED [ 73%]
t/unit/utils/test_platforms.py::test_setgroups::test_setgroups_raises_EPERM PASSED [ 73%]
t/unit/utils/test_platforms.py::test_check_privileges_suspicious_platform[accept_content0] PASSED [ 73%]
t/unit/utils/test_platforms.py::test_check_privileges_suspicious_platform[accept_content1] PASSED [ 73%]
t/unit/utils/test_platforms.py::test_check_privileges_suspicious_platform[accept_content2] PASSED [ 73%]
t/unit/utils/test_platforms.py::test_check_privileges[accept_content0] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges[accept_content1] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges[accept_content2] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_no_fchown[accept_content0] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_no_fchown[accept_content1] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_no_fchown[accept_content2] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root[accept_content0] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root[accept_content1] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root[accept_content2] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root[accept_content0] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root[accept_content1] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root[accept_content2] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_with_suspicious_group[accept_content0-sudo] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_with_suspicious_group[accept_content1-sudo] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_with_suspicious_group[accept_content2-sudo] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_with_suspicious_group[accept_content3-wheel] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_with_suspicious_group[accept_content4-wheel] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_with_suspicious_group[accept_content5-wheel] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_with_suspicious_group[accept_content0-sudo] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_with_suspicious_group[accept_content1-sudo] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_with_suspicious_group[accept_content2-sudo] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_with_suspicious_group[accept_content3-wheel] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_with_suspicious_group[accept_content4-wheel] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_with_suspicious_group[accept_content5-wheel] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_no_group_entry[accept_content0] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_no_group_entry[accept_content1] PASSED [ 74%]
t/unit/utils/test_platforms.py::test_check_privileges_with_c_force_root_and_no_group_entry[accept_content2] PASSED [ 75%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_no_group_entry[accept_content0] PASSED [ 75%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_no_group_entry[accept_content1] PASSED [ 75%]
t/unit/utils/test_platforms.py::test_check_privileges_without_c_force_root_and_no_group_entry[accept_content2] PASSED [ 75%]
t/unit/utils/test_platforms.py::test_skip_checking_privileges_when_grp_is_unavailable PASSED [ 75%]
t/unit/utils/test_platforms.py::test_skip_checking_privileges_when_pwd_is_unavailable PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_safe_types[1] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_safe_types[1.3] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_safe_types[value2] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_safe_types[4] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_safe_types[value4] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_numbers_dict PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_numbers_list PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_numbers_keys PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_text PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_text_maxlen PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_maxlevels PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_recursion PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[00] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[01] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value2] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[0.0] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[0] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[1] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value6] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value7] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value8] PASSED [ 75%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value9] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value10] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value11] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value12] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value13] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value14] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value15] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value16] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value17] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value18] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value19] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value20] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[test_recursion] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[pprint] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[-60] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[-61] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value25] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[-1.5] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[x0] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[x1] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value29] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value30] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value31] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value32] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value33] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value34] PASSED [ 76%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value35] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value36] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value37] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value38] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value39] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value40] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value41] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value42] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value43] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value44] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value45] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value46] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value47] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value48] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value49] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_same_as_repr[value50] PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_single_quote PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_unicode_bytes PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_unicode_bytes__long PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_binary_bytes PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_binary_bytes__long PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_repr_raises PASSED [ 77%]
t/unit/utils/test_saferepr.py::test_saferepr::test_bytes_with_unicode_py2_and_3 PASSED [ 77%]
t/unit/utils/test_serialization.py::test_AAPickle::test_no_cpickle PASSED [ 77%]
t/unit/utils/test_serialization.py::test_ensure_serializable::test_json_py3 PASSED [ 77%]
t/unit/utils/test_serialization.py::test_ensure_serializable::test_pickle PASSED [ 77%]
t/unit/utils/test_serialization.py::test_UnpickleExceptionWrapper::test_init PASSED [ 77%]
t/unit/utils/test_serialization.py::test_get_pickleable_etype::test_get_pickleable_etype PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj0] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj1] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj2] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj3] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj4] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj5] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj6] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj7] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj8] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[obj9] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[10] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[10.3] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_simple[hello] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_jsonify::test_unknown_type_filter PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[false-False] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[no-False] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[0-False] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[true-True] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[yes-True] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[1-True] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[on-True] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_default_table[off-False] PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_unknown_value PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_no_op PASSED [ 78%]
t/unit/utils/test_serialization.py::test_strtobool::test_custom_table PASSED [ 78%]
t/unit/utils/test_sysinfo.py::test_load_average PASSED [ 79%]
t/unit/utils/test_sysinfo.py::test_df PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[black-0] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[red-1] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[green-2] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[yellow-3] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[blue-4] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[magenta-5] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[cyan-6] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_colors[white-7] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[bold] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[underline] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[blink] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[reverse] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[bright] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[ired] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[igreen] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[iyellow] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[iblue] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[imagenta] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[icyan] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[iwhite] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_modifiers[reset] PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_unicode PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_repr PASSED [ 79%]
t/unit/utils/test_term.py::test_colored::test_more_unicode PASSED [ 79%]
t/unit/utils/test_text.py::test_Info::test_textindent PASSED [ 80%]
t/unit/utils/test_text.py::test_Info::test_format_queues PASSED [ 80%]
t/unit/utils/test_text.py::test_Info::test_ensure_newlines PASSED [ 80%]
t/unit/utils/test_text.py::test_truncate_text[ABCDEFGHI-3-ABC...] PASSED [ 80%]
t/unit/utils/test_text.py::test_truncate_text[ABCDEFGHI-10-ABCDEFGHI] PASSED [ 80%]
t/unit/utils/test_text.py::test_abbr[args0-???] PASSED [ 80%]
t/unit/utils/test_text.py::test_abbr[args1-ABC...] PASSED [ 80%]
t/unit/utils/test_text.py::test_abbr[args2-ABCDEFGHI] PASSED [ 80%]
t/unit/utils/test_text.py::test_abbr[args3-ABCDEF] PASSED [ 80%]
t/unit/utils/test_text.py::test_abbrtask[None-3-???] PASSED [ 80%]
t/unit/utils/test_text.py::test_abbrtask[feeds.tasks.refresh-10-[.]refresh] PASSED [ 80%]
t/unit/utils/test_text.py::test_abbrtask[feeds.tasks.refresh-30-feeds.tasks.refresh] PASSED [ 80%]
t/unit/utils/test_text.py::test_pretty PASSED [ 80%]
t/unit/utils/test_threads.py::test_bgThread::test_crash PASSED [ 80%]
t/unit/utils/test_threads.py::test_bgThread::test_interface PASSED [ 80%]
t/unit/utils/test_threads.py::test_Local::test_iter PASSED [ 80%]
t/unit/utils/test_threads.py::test_LocalStack::test_stack PASSED [ 80%]
t/unit/utils/test_threads.py::test_FastLocalStack::test_stack PASSED [ 80%]
t/unit/utils/test_threads.py::test_LocalManager::test_init PASSED [ 80%]
t/unit/utils/test_time.py::test_LocalTimezone::test_daylight PASSED [ 80%]
t/unit/utils/test_time.py::test_iso8601::test_parse_with_timezone PASSED [ 80%]
t/unit/utils/test_time.py::test_delta_resolution[delta0-expected0] PASSED [ 80%]
t/unit/utils/test_time.py::test_delta_resolution[delta1-expected1] PASSED [ 80%]
t/unit/utils/test_time.py::test_delta_resolution[delta2-expected2] PASSED [ 80%]
t/unit/utils/test_time.py::test_delta_resolution[delta3-None] PASSED [ 80%]
t/unit/utils/test_time.py::test_humanize_seconds[345600-4.00 days] PASSED [ 80%]
t/unit/utils/test_time.py::test_humanize_seconds[86400-1.00 day] PASSED [ 80%]
t/unit/utils/test_time.py::test_humanize_seconds[14400-4.00 hours] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds[3600-1.00 hour] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds[240-4.00 minutes] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds[60-1.00 minute] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds[4-4.00 seconds] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds[1-1.00 second] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds[4.3567631221-4.36 seconds] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds[0-now] PASSED [ 81%]
t/unit/utils/test_time.py::test_humanize_seconds__prefix PASSED [ 81%]
t/unit/utils/test_time.py::test_maybe_iso8601_datetime PASSED [ 81%]
t/unit/utils/test_time.py::test_maybe_timedelta[30-expected0] PASSED [ 81%]
t/unit/utils/test_time.py::test_maybe_timedelta[30.6-expected1] PASSED [ 81%]
t/unit/utils/test_time.py::test_maybe_timedelta[arg2-expected2] PASSED [ 81%]
t/unit/utils/test_time.py::test_remaining PASSED [ 81%]
t/unit/utils/test_time.py::test_timezone::test_get_timezone_with_pytz PASSED [ 81%]
t/unit/utils/test_time.py::test_timezone::test_tz_or_local PASSED [ 81%]
t/unit/utils/test_time.py::test_timezone::test_to_local PASSED [ 81%]
t/unit/utils/test_time.py::test_timezone::test_to_local_fallback PASSED [ 81%]
t/unit/utils/test_time.py::test_make_aware::test_tz_without_localize PASSED [ 81%]
t/unit/utils/test_time.py::test_make_aware::test_when_has_localize PASSED [ 81%]
t/unit/utils/test_time.py::test_make_aware::test_maybe_make_aware PASSED [ 81%]
t/unit/utils/test_time.py::test_localize::test_tz_without_normalize PASSED [ 81%]
t/unit/utils/test_time.py::test_localize::test_when_has_normalize PASSED [ 81%]
t/unit/utils/test_time.py::test_localize::test_localize_changes_utc_dt PASSED [ 81%]
t/unit/utils/test_time.py::test_localize::test_localize_aware_dt_idempotent PASSED [ 81%]
t/unit/utils/test_time.py::test_rate_limit_string[999-999] PASSED [ 81%]
t/unit/utils/test_time.py::test_rate_limit_string[7.5-7.5] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[2.5/s-2.5] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[1456/s-1456] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[100/m-1.6666666666666667] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[10/h-0.0027777777777777775] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[0-0] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[None-0] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[0/m-0] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[0/h-0] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[0/s-0] PASSED [ 82%]
t/unit/utils/test_time.py::test_rate_limit_string[0.0/s-0] PASSED [ 82%]
t/unit/utils/test_time.py::test_ffwd::test_repr PASSED [ 82%]
t/unit/utils/test_time.py::test_ffwd::test_radd_with_unknown_gives_NotImplemented PASSED [ 82%]
t/unit/utils/test_time.py::test_utcoffset::test_utcoffset PASSED [ 82%]
t/unit/utils/test_time.py::test_get_exponential_backoff_interval::test_with_jitter PASSED [ 82%]
t/unit/utils/test_time.py::test_get_exponential_backoff_interval::test_without_jitter PASSED [ 82%]
t/unit/utils/test_time.py::test_get_exponential_backoff_interval::test_bound_by_maximum PASSED [ 82%]
t/unit/utils/test_time.py::test_get_exponential_backoff_interval::test_negative_values PASSED [ 82%]
t/unit/utils/test_time.py::test_get_exponential_backoff_interval::test_valid_random_range PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_enter_after PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_exit_after PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_ensure_started_not_started PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_on_tick PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_thread_crash PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_gc_race_lost PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_test_enter PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_test_enter_after PASSED [ 82%]
t/unit/utils/test_timer2.py::test_Timer::test_cancel PASSED [ 83%]
t/unit/utils/test_utils.py::test_chunks[items0-2-expected0] PASSED [ 83%]
t/unit/utils/test_utils.py::test_chunks[items1-3-expected1] PASSED [ 83%]
t/unit/utils/test_utils.py::test_chunks[items2-2-expected2] PASSED [ 83%]
t/unit/utils/test_utils.py::test_cached_property PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_WorkerComponent::test_register_with_event_loop PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_WorkerComponent::test_info_without_event_loop PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_stop PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_body PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_run PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_shrink_raises_exception PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_shrink_raises_ValueError PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_update PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_prefetch_count_on_updates PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_prefetch_count_on_updates_prefetch_multiplier_gt_one PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_info PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_thread_crash PASSED [ 83%]
t/unit/worker/test_autoscale.py::test_Autoscaler::test_no_negative_scale PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_StepFormatter::test_get_prefix PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_StepFormatter::test_node PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_StepFormatter::test_edge PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_Step::test_blueprint_name PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_Step::test_init PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_Step::test_create PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_Step::test_include_if PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_Step::test_instantiate PASSED [ 83%]
t/unit/worker/test_bootsteps.py::test_Step::test_include_when_enabled PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Step::test_include_when_disabled PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Step::test_repr PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_ConsumerStep::test_interface PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_ConsumerStep::test_start_stop_shutdown PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_ConsumerStep::test_start_no_consumers PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_ConsumerStep::test_close_no_consumer_channel PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_StartStopStep::test_start__stop PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_StartStopStep::test_terminate__no_obj PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_StartStopStep::test_include_when_disabled PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_StartStopStep::test_terminate PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_steps_added_to_unclaimed PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_init PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_close__on_close_is_None PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_send_all_with_None_steps PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_send_all_raises PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_stop_state_in_TERMINATE PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_join_raises_IGNORE_ERRORS PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_connect_with PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_topsort_raises_KeyError PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_apply PASSED [ 84%]
t/unit/worker/test_bootsteps.py::test_Blueprint::test_find_last_but_no_steps PASSED [ 84%]
t/unit/worker/test_components.py::test_Timer::test_create__eventloop PASSED [ 84%]
t/unit/worker/test_components.py::test_Hub::test_create PASSED [ 84%]
t/unit/worker/test_components.py::test_Hub::test_start PASSED [ 84%]
t/unit/worker/test_components.py::test_Hub::test_stop PASSED [ 84%]
t/unit/worker/test_components.py::test_Hub::test_terminate PASSED [ 84%]
t/unit/worker/test_components.py::test_Pool::test_close_terminate PASSED [ 85%]
t/unit/worker/test_components.py::test_Pool::test_create_when_eventloop PASSED [ 85%]
t/unit/worker/test_components.py::test_Pool::test_create_calls_instantiate_with_max_memory PASSED [ 85%]
t/unit/worker/test_components.py::test_Beat::test_create__green PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_repr PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_taskbuckets_defaultdict PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_sets_heartbeat PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_gevent_bug_disables_connection_timeout PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_limit_moved_to_pool PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_update_prefetch_count PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_flush_events PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_on_send_event_buffered PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_schedule_bucket_request PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_limit_task PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_post_eta PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_max_restarts_exceeded PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_do_not_restart_when_closed PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_do_not_restart_when_terminated PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_too_many_open_files_raises_error FAILED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_blueprint_restart_when_state_not_in_stop_conditions[True] PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_blueprint_restart_when_state_not_in_stop_conditions[False] FAILED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_collects_at_restart PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_register_with_event_loop PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_on_close_clears_semaphore_timer_and_reqs PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_connect_error_handler PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_connect_error_handler_progress PASSED [ 85%]
t/unit/worker/test_consumer.py::test_Consumer::test_cancel_long_running_tasks_on_connection_loss PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_cancel_long_running_tasks_on_connection_loss__warning PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[None-True] SUBFAIL [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[None-True] PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[None-False] SUBFAIL [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[None-False] SUBPASS [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[None-False] PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[False-True] PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[False-False] SUBPASS [ 86%]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[False-False] PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup] SUBFAIL [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup] FAILED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined] SUBFAIL [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined] FAILED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false] SUBFAIL [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false] FAILED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined] SUBFAIL [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined] FAILED [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true] SUBFAIL [ 86%]
t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true] FAILED [ 86%]
t/unit/worker/test_consumer.py::test_Heart::test_start PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Heart::test_start_heartbeat_interval PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Tasks::test_stop PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Tasks::test_stop_already_stopped PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Agent::test_start PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Mingle::test_start_no_replies PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Mingle::test_start PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_init PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_callbacks PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_election PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_call_task PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_elect PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_elect_ack_win PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_elect_ack_lose PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_elect_ack_win_but_no_action PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_node_join PASSED [ 86%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_node_leave PASSED [ 87%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_node_lost PASSED [ 87%]
t/unit/worker/test_consumer.py::test_Gossip::test_register_timer PASSED [ 87%]
t/unit/worker/test_consumer.py::test_Gossip::test_periodic PASSED [ 87%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_message__task PASSED [ 87%]
t/unit/worker/test_consumer.py::test_Gossip::test_on_message PASSED [ 87%]
t/unit/worker/test_control.py::test_Pidbox::test_shutdown PASSED [ 87%]
t/unit/worker/test_control.py::test_Pidbox_green::test_stop PASSED [ 87%]
t/unit/worker/test_control.py::test_Pidbox_green::test_resets PASSED [ 87%]
t/unit/worker/test_control.py::test_Pidbox_green::test_loop PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_enable_events PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_disable_events PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_clock PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_hello PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_hello_does_not_send_expired_revoked_items PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_conf PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_election PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_election__no_gossip PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_heartbeat PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_time_limit PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_active_queues PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_active_queues__empty PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_dump_tasks PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_dump_tasks2 PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_stats PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_report PASSED [ 87%]
t/unit/worker/test_control.py::test_ControlPanel::test_active PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_active_safe PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_pool_grow PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_add__cancel_consumer PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_revoked PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_dump_schedule PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_dump_reserved PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_rate_limit_invalid_rate_limit_string PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_rate_limit PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_rate_limit_nonexistant_task PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_unexposed_command PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_revoke_with_name PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_revoke_with_name_not_in_registry PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_revoke PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_revoke_terminate PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_autoscale PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_ping PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_shutdown PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_panel_reply PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_pool_restart PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_pool_restart_import_modules PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_pool_restart_reload_modules PASSED [ 88%]
t/unit/worker/test_control.py::test_ControlPanel::test_query_task PASSED [ 88%]
t/unit/worker/test_heartbeat.py::test_Heart::test_start_stop PASSED [ 88%]
t/unit/worker/test_heartbeat.py::test_Heart::test_send_sends_signal PASSED [ 88%]
t/unit/worker/test_heartbeat.py::test_Heart::test_start_when_disabled PASSED [ 88%]
t/unit/worker/test_heartbeat.py::test_Heart::test_stop_when_disabled PASSED [ 88%]
t/unit/worker/test_heartbeat.py::test_Heart::test_message_retries PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_drain_after_consume PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_pool_did_not_start_at_startup PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_setup_heartbeat PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_on_task_received PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_on_task_received_executes_on_task_message PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_on_task_message_missing_name PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_on_task_pool_raises PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_on_task_InvalidTaskError PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_on_task_DecodeError PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_should_terminate[None] PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_should_terminate[False] PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_should_terminate[True] PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_should_terminate[0] PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_should_terminate_hub_close_raises PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_should_stop PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_updates_qos PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_empty PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_readable PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_readable_raises_Empty PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_writable PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_writable_none_registered PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_unknown_event PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_keep_draining_disabled PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_err_writable PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_write_generator PASSED [ 89%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_write_generator_stopped PASSED [ 90%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_write_generator_raises PASSED [ 90%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_err_readable PASSED [ 90%]
t/unit/worker/test_loops.py::test_asynloop::test_poll_raises_ValueError PASSED [ 90%]
t/unit/worker/test_loops.py::test_asynloop::test_heartbeat_error PASSED [ 90%]
t/unit/worker/test_loops.py::test_asynloop::test_no_heartbeat_support PASSED [ 90%]
t/unit/worker/test_loops.py::test_synloop::test_timeout_ignored PASSED [ 90%]
t/unit/worker/test_loops.py::test_synloop::test_updates_qos_when_changed PASSED [ 90%]
t/unit/worker/test_loops.py::test_synloop::test_ignores_socket_errors_when_closed PASSED [ 90%]
t/unit/worker/test_loops.py::test_synloop::test_no_connection PASSED [ 90%]
t/unit/worker/test_loops.py::test_synloop::test_heartbeat_error PASSED [ 90%]
t/unit/worker/test_loops.py::test_synloop::test_no_heartbeat_support PASSED [ 90%]
t/unit/worker/test_loops.py::test_quick_drain::test_drain PASSED [ 90%]
t/unit/worker/test_loops.py::test_quick_drain::test_drain_error PASSED [ 90%]
t/unit/worker/test_loops.py::test_quick_drain::test_drain_error_EAGAIN PASSED [ 90%]
t/unit/worker/test_request.py::test_mro_lookup::test_order PASSED [ 90%]
t/unit/worker/test_request.py::test_Retry::test_retry_semipredicate PASSED [ 90%]
t/unit/worker/test_request.py::test_trace_task::test_process_cleanup_fails PASSED [ 90%]
t/unit/worker/test_request.py::test_trace_task::test_process_cleanup_BaseException PASSED [ 90%]
t/unit/worker/test_request.py::test_trace_task::test_execute_jail_success PASSED [ 90%]
t/unit/worker/test_request.py::test_trace_task::test_marked_as_started PASSED [ 90%]
t/unit/worker/test_request.py::test_trace_task::test_execute_jail_failure PASSED [ 90%]
t/unit/worker/test_request.py::test_trace_task::test_execute_task_ignore_result PASSED [ 90%]
t/unit/worker/test_request.py::test_trace_task::test_execute_request_ignore_result PASSED [ 90%]
t/unit/worker/test_request.py::test_Request::test_shadow PASSED [ 90%]
t/unit/worker/test_request.py::test_Request::test_args PASSED [ 90%]
t/unit/worker/test_request.py::test_Request::test_kwargs PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_info_function PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_no_shadow_header PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_invalid_eta_raises_InvalidTaskError PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_invalid_expires_raises_InvalidTaskError PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_valid_expires_with_utc_makes_aware PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_maybe_expire_when_expires_is_None PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_retry_acks_if_late PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_Terminated PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_propagates_MemoryError PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_Ignore_acknowledges PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_Reject_rejects PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_Reject_rejects_with_requeue PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_WorkerLostError_rejects_with_requeue PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_WorkerLostError_redelivered_None PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_failure_WorkerLostError_redelivered_True PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_tzlocal_is_cached PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_task_wrapper_repr PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_sets_store_errors PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_send_event PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_send_events__disabled_at_task_level PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_on_retry PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_compat_properties PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_terminate__pool_ref PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_terminate__task_started PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_cancel__pool_ref PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_terminate__task_reserved PASSED [ 91%]
t/unit/worker/test_request.py::test_Request::test_cancel__task_started PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_cancel__task_reserved PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_revoked_expires_expired PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_revoked_expires_not_expired PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_revoked_expires_ignore_result PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_already_revoked PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_revoked PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_execute_does_not_execute_revoked PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_execute_acks_late PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_execute_using_pool_does_not_execute_revoked PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_accepted_acks_early PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_accepted_acks_late PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_accepted_terminates PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_accepted_time_start PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_success_acks_early PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_success_BaseException PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_success_eventer PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_success_when_failure PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_success_acks_late PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_WorkerLostError PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_acks_late_reject_on_worker_lost_enabled PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_acks_late PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_acks_on_failure_or_timeout_disabled_for_task PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_acks_on_failure_or_timeout_enabled_for_task PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_acks_on_failure_or_timeout_disabled PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_acks_on_failure_or_timeout_enabled PASSED [ 92%]
t/unit/worker/test_request.py::test_Request::test_on_failure_task_cancelled PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_from_message_invalid_kwargs PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_hard_timeout_acks_late PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_hard_timeout_acks_on_failure_or_timeout PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_soft_timeout PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_fast_trace_task PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_trace_task_ret PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_trace_task_ret__no_trace PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_trace_catches_exception PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_worker_task_trace_handle_retry PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_worker_task_trace_handle_failure PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_from_message PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_from_message_empty_args PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_from_message_missing_required_fields PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_from_message_nonexistant_task PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_execute PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_execute_backend_error_acks_late PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_execute_success_no_kwargs PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_execute_ack PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_execute_fail PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_execute_using_pool PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_execute_using_pool_fast_trace_task PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_failure PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_failure__unicode_exception PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_failure__utf8_exception PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_failure__WorkerLostError PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_on_failure__return_ok PASSED [ 93%]
t/unit/worker/test_request.py::test_Request::test_reject PASSED [ 94%]
t/unit/worker/test_request.py::test_Request::test_group PASSED [ 94%]
t/unit/worker/test_request.py::test_Request::test_group_index PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_on_success PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_on_success__SystemExit PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_on_success__calls_failure PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_on_success__acks_late_enabled PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_on_success__acks_late_disabled PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_on_success__no_events PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_on_success__with_events PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_execute_using_pool__revoked PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_execute_using_pool__expired PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_execute_using_pool PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_execute_using_pool_with_use_fast_trace_task PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_execute_using_pool_with_none_timelimit_header PASSED [ 94%]
t/unit/worker/test_request.py::test_create_request_class::test_execute_using_pool__defaults_of_hybrid_to_proto2 PASSED [ 94%]
t/unit/worker/test_revoke.py::test_revoked::test_is_working PASSED [ 94%]
t/unit/worker/test_state.py::test_maybe_shutdown::test_should_stop PASSED [ 94%]
t/unit/worker/test_state.py::test_maybe_shutdown::test_should_terminate[None] PASSED [ 94%]
t/unit/worker/test_state.py::test_maybe_shutdown::test_should_terminate[False] PASSED [ 94%]
t/unit/worker/test_state.py::test_maybe_shutdown::test_should_terminate[True] PASSED [ 94%]
t/unit/worker/test_state.py::test_maybe_shutdown::test_should_terminate[0] PASSED [ 94%]
t/unit/worker/test_state.py::test_Persistent::test_close_twice PASSED [ 94%]
t/unit/worker/test_state.py::test_Persistent::test_constructor PASSED [ 94%]
t/unit/worker/test_state.py::test_Persistent::test_save PASSED [ 94%]
t/unit/worker/test_state.py::test_Persistent::test_merge PASSED [ 94%]
t/unit/worker/test_state.py::test_Persistent::test_merge_dict PASSED [ 95%]
t/unit/worker/test_state.py::test_Persistent::test_sync_clock_and_purge PASSED [ 95%]
t/unit/worker/test_state.py::test_Persistent::test_sync PASSED [ 95%]
t/unit/worker/test_state.py::test_state::test_accepted PASSED [ 95%]
t/unit/worker/test_state.py::test_state::test_ready PASSED [ 95%]
t/unit/worker/test_strategy.py::test_proto1_to_proto2::test_message_without_args PASSED [ 95%]
t/unit/worker/test_strategy.py::test_proto1_to_proto2::test_message_without_kwargs PASSED [ 95%]
t/unit/worker/test_strategy.py::test_proto1_to_proto2::test_message_kwargs_not_mapping PASSED [ 95%]
t/unit/worker/test_strategy.py::test_proto1_to_proto2::test_message_no_taskset_id PASSED [ 95%]
t/unit/worker/test_strategy.py::test_proto1_to_proto2::test_message PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_when_logging_disabled PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_task_strategy PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_callbacks PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_log_task_received PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_log_task_received_custom PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_signal_task_received PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_when_events_disabled PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_eta_task PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_eta_task_utc_disabled PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_when_rate_limited PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_when_rate_limited_with_eta PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_when_rate_limited__limits_disabled PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto2::test_when_revoked PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_when_logging_disabled PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_task_strategy PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_callbacks PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_log_task_received PASSED [ 95%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_log_task_received_custom PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_signal_task_received PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_when_events_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_eta_task PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_eta_task_utc_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_when_rate_limited PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_when_rate_limited_with_eta PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_when_rate_limited__limits_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1::test_when_revoked PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_when_logging_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_task_strategy PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_callbacks PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_log_task_received PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_log_task_received_custom PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_signal_task_received PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_when_events_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_eta_task PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_eta_task_utc_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_when_rate_limited PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_when_rate_limited_with_eta PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_when_rate_limited__limits_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_default_strategy_proto1__no_utc::test_when_revoked PASSED [ 96%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_when_logging_disabled PASSED [ 96%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_task_strategy PASSED [ 96%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_callbacks PASSED [ 96%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_log_task_received PASSED [ 96%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_log_task_received_custom PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_signal_task_received PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_when_events_disabled PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_eta_task PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_eta_task_utc_disabled PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_when_rate_limited PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_when_rate_limited_with_eta PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_when_rate_limited__limits_disabled PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_when_revoked PASSED [ 97%]
t/unit/worker/test_strategy.py::test_custom_request_for_default_strategy::test_custom_request_gets_instantiated PASSED [ 97%]
t/unit/worker/test_strategy.py::test_hybrid_to_proto2::test_retries_default_value PASSED [ 97%]
t/unit/worker/test_strategy.py::test_hybrid_to_proto2::test_retries_custom_value PASSED [ 97%]
t/unit/worker/test_strategy.py::test_hybrid_to_proto2::test_custom_headers PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_info PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_start_when_closed PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_connection PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_close_connection PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_close_connection__heart_shutdown PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_receive_message_unknown PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_receive_message_eta_OverflowError PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_receive_message_InvalidTaskError PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_on_decode_error PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_receieve_message PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_start_channel_error PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_start_connection_error PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_loop_ignores_socket_timeout PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_loop_when_socket_error PASSED [ 97%]
t/unit/worker/test_worker.py::test_Consumer::test_loop PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_ignore_errors PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_apply_eta_task PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_receieve_message_eta_isoformat PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_pidbox_callback PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_revoke PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_receieve_message_not_registered PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_receieve_message_ack_raises PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_receive_message_eta PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_reset_pidbox_node PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_reset_pidbox_node_green PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_green_pidbox_node PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_connect_errback PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_stop_pidbox_node PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_start__loop PASSED [ 98%]
t/unit/worker/test_worker.py::test_Consumer::test_reset_connection_with_no_node PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_on_consumer_ready PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_setup_queues_worker_direct PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_setup_queues__missing_queue PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_send_worker_shutdown PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_process_shutdown_on_worker_shutdown SKIPPED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_process_task_revoked_release_semaphore PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_shutdown_no_blueprint PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_use_pidfile PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_attrs PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_with_embedded_beat PASSED [ 98%]
t/unit/worker/test_worker.py::test_WorkController::test_with_autoscaler PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_with_autoscaler_file_descriptor_safety PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_with_file_descriptor_safety PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_dont_stop_or_terminate PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_on_timer_error PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_on_timer_tick PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_process_task PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_process_task_raise_base PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_process_task_raise_WorkerTerminate PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_process_task_raise_regular PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_start_catches_base_exceptions PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_statedb PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_process_task_sem PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_signal_consumer_close PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_rusage__no_resource PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_repr PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_str PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_start__stop PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_start__KeyboardInterrupt PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_register_with_event_loop PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_step_raises PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_state PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_start__terminate PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_Hub_create PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_Pool_create_threaded PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_Pool_pool_no_sem PASSED [ 99%]
t/unit/worker/test_worker.py::test_WorkController::test_Pool_create PASSED [100%]
=================================== FAILURES ===================================
_________________________ test_App.test_setup_security _________________________
self = <t.unit.app.test_app.test_App object at 0x108ac3460>
setup_security = <MagicMock name='setup_security' id='4440684768'>
@patch('celery.security.setup_security')
def test_setup_security(self, setup_security):
> self.app.setup_security(
{'json'}, 'key', None, 'cert', 'store', 'digest', 'serializer')
E TypeError: Celery.setup_security() takes from 1 to 7 positional arguments but 8 were given
t/unit/app/test_app.py:115: TypeError
____________ test_Scheduler.test_pending_left_10_milliseconds_tick _____________
self = <t.unit.app.test_beat.test_Scheduler object at 0x109408640>
def test_pending_left_10_milliseconds_tick(self):
scheduler = mScheduler(app=self.app)
scheduler.add(name='test_pending_left_10_milliseconds_tick',
schedule=always_pending_left_10_milliseconds)
> assert scheduler.tick() == 0.010 - 0.010
E assert 300 == 0.0
E +300
E -0.0
t/unit/app/test_beat.py:362: AssertionError
___________ test_ElasticsearchBackend.test_backend_concurrent_update ___________
self = <celery.backends.elasticsearch.ElasticsearchBackend object at 0x10a969f00>
key = b'celery-task-meta-sentinel.task_id'
value = '{"status": "SUCCESS", "result": "sentinel.result", "traceback": null, "children": null, "date_done": "2020-06-01T18:45:34.654321", "task_id": "sentinel.task_id"}'
state = 'SUCCESS'
def _set_with_state(self, key, value, state):
body = {
'result': value,
'@timestamp': '{}Z'.format(
datetime.utcnow().isoformat()[:-3]
),
}
try:
> self._index(
id=key,
body=body,
)
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/backends/elasticsearch.py:125:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <celery.backends.elasticsearch.ElasticsearchBackend object at 0x10a969f00>
id = b'celery-task-meta-sentinel.task_id'
body = {'@timestamp': '2020-06-01T18:43:24.123Z', 'result': '{"status": "SUCCESS", "result": "sentinel.result", "traceback": null, "children": null, "date_done": "2020-06-01T18:45:34.654321", "task_id": "sentinel.task_id"}'}
kwargs = {}
def _index(self, id, body, **kwargs):
body = {bytes_to_str(k): v for k, v in body.items()}
> return self.server.index(
id=bytes_to_str(id),
index=self.index,
doc_type=self.doc_type,
body=body,
params={'op_type': 'create'},
**kwargs
)
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/backends/elasticsearch.py:138:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='mock.index' id='4472610944'>, args = ()
kwargs = {'body': {'@timestamp': '2020-06-01T18:43:24.123Z', 'result': '{"status": "SUCCESS", "result": "sentinel.result", "tra...k_id": "sentinel.task_id"}'}, 'doc_type': 'backend', 'id': 'celery-task-meta-sentinel.task_id', 'index': 'celery', ...}
def __call__(self, /, *args, **kwargs):
# can't use self in-case a function / method we are mocking uses self
# in the signature
self._mock_check_sig(*args, **kwargs)
self._increment_mock_call(*args, **kwargs)
> return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='mock.index' id='4472610944'>, args = ()
kwargs = {'body': {'@timestamp': '2020-06-01T18:43:24.123Z', 'result': '{"status": "SUCCESS", "result": "sentinel.result", "tra...k_id": "sentinel.task_id"}'}, 'doc_type': 'backend', 'id': 'celery-task-meta-sentinel.task_id', 'index': 'celery', ...}
def _mock_call(self, /, *args, **kwargs):
> return self._execute_mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='mock.index' id='4472610944'>, args = ()
kwargs = {'body': {'@timestamp': '2020-06-01T18:43:24.123Z', 'result': '{"status": "SUCCESS", "result": "sentinel.result", "tra...k_id": "sentinel.task_id"}'}, 'doc_type': 'backend', 'id': 'celery-task-meta-sentinel.task_id', 'index': 'celery', ...}
effect = ConflictError(409, meta='concurrent update', body={})
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E elasticsearch.ConflictError: <unprintable ConflictError object>
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: ConflictError
During handling of the above exception, another exception occurred:
self = <t.unit.backends.test_elasticsearch.test_ElasticsearchBackend object at 0x10a925d20>
base_datetime_mock = <MagicMock name='datetime' id='4472512112'>
es_datetime_mock = <MagicMock name='datetime' id='4472570736'>
@patch('celery.backends.elasticsearch.datetime')
@patch('celery.backends.base.datetime')
def test_backend_concurrent_update(self, base_datetime_mock, es_datetime_mock):
expected_dt = datetime.datetime(2020, 6, 1, 18, 43, 24, 123456, None)
es_datetime_mock.utcnow.return_value = expected_dt
expected_done_dt = datetime.datetime(2020, 6, 1, 18, 45, 34, 654321, None)
base_datetime_mock.utcnow.return_value = expected_done_dt
self.app.conf.result_backend_always_retry, prev = True, self.app.conf.result_backend_always_retry
x_server_get_side_effect = [
{
'found': True,
'_source': {'result': _RESULT_RETRY},
'_seq_no': 2,
'_primary_term': 1,
},
{
'found': True,
'_source': {'result': _RESULT_RETRY},
'_seq_no': 2,
'_primary_term': 1,
},
{
'found': True,
'_source': {'result': _RESULT_FAILURE},
'_seq_no': 3,
'_primary_term': 1,
},
{
'found': True,
'_source': {'result': _RESULT_FAILURE},
'_seq_no': 3,
'_primary_term': 1,
},
]
try:
x = ElasticsearchBackend(app=self.app)
task_id = str(sentinel.task_id)
encoded_task_id = bytes_to_str(x.get_key_for_task(task_id))
result = str(sentinel.result)
sleep_mock = Mock()
x._sleep = sleep_mock
x._server = Mock()
x._server.index.side_effect = exceptions.ConflictError(409, "concurrent update", {})
x._server.get.side_effect = x_server_get_side_effect
x._server.update.side_effect = [
{'result': 'noop'},
{'result': 'updated'}
]
result_meta = x._get_result_meta(result, states.SUCCESS, None, None)
result_meta['task_id'] = bytes_to_str(task_id)
expected_result = x.encode(result_meta)
> x.store_result(task_id, result, states.SUCCESS)
t/unit/backends/test_elasticsearch.py:368:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/backends/base.py:528: in store_result
self._store_result(task_id, result, state, traceback,
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/backends/base.py:962: in _store_result
self._set_with_state(self.get_key_for_task(task_id), self.encode(meta), state)
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/backends/elasticsearch.py:131: in _set_with_state
self._update(key, body, state)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <celery.backends.elasticsearch.ElasticsearchBackend object at 0x10a969f00>
id = b'celery-task-meta-sentinel.task_id'
body = {'@timestamp': '2020-06-01T18:43:24.123Z', 'result': '{"status": "SUCCESS", "result": "sentinel.result", "traceback": null, "children": null, "date_done": "2020-06-01T18:45:34.654321", "task_id": "sentinel.task_id"}'}
state = 'SUCCESS', kwargs = {}
res_get = {'_primary_term': 1, '_seq_no': 2, '_source': {'result': '{"status":"RETRY","result":{"exc_type":"Exception","exc_message":["failed"],"exc_module":"builtins"}}'}, 'found': True}
meta_present_on_backend = {'result': Exception('failed'), 'status': 'RETRY'}
seq_no = 2, prim_term = 1, res = {'result': 'noop'}
def _update(self, id, body, state, **kwargs):
"""Update state in a conflict free manner.
If state is defined (not None), this will not update ES server if either:
* existing state is success
* existing state is a ready state and current state in not a ready state
This way, a Retry state cannot override a Success or Failure, and chord_unlock
will not retry indefinitely.
"""
body = {bytes_to_str(k): v for k, v in body.items()}
try:
res_get = self._get(key=id)
if not res_get.get('found'):
return self._index(id, body, **kwargs)
# document disappeared between index and get calls.
except elasticsearch.exceptions.NotFoundError:
return self._index(id, body, **kwargs)
try:
meta_present_on_backend = self.decode_result(res_get['_source']['result'])
except (TypeError, KeyError):
pass
else:
if meta_present_on_backend['status'] == states.SUCCESS:
# if stored state is already in success, do nothing
return {'result': 'noop'}
elif meta_present_on_backend['status'] in states.READY_STATES and state in states.UNREADY_STATES:
# if stored state is in ready state and current not, do nothing
return {'result': 'noop'}
# get current sequence number and primary term
# https://www.elastic.co/guide/en/elasticsearch/reference/current/optimistic-concurrency-control.html
seq_no = res_get.get('_seq_no', 1)
prim_term = res_get.get('_primary_term', 1)
# try to update document with current seq_no and primary_term
res = self.server.update(
id=bytes_to_str(id),
index=self.index,
doc_type=self.doc_type,
body={'doc': body},
params={'if_primary_term': prim_term, 'if_seq_no': seq_no},
**kwargs
)
# result is elastic search update query result
# noop = query did not update any document
# updated = at least one document got updated
if res['result'] == 'noop':
> raise elasticsearch.exceptions.ConflictError(409, 'conflicting update occurred concurrently', {})
E elasticsearch.ConflictError: <unprintable ConflictError object>
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/backends/elasticsearch.py:197: ConflictError
____________ test_ElasticsearchBackend.test_exception_safe_to_retry ____________
self = <t.unit.backends.test_elasticsearch.test_ElasticsearchBackend object at 0x10997a500>
def test_exception_safe_to_retry(self):
x = ElasticsearchBackend(app=self.app)
assert not x.exception_safe_to_retry(Exception("failed"))
assert not x.exception_safe_to_retry(BaseException("failed"))
> assert x.exception_safe_to_retry(exceptions.ConflictError(409, "concurrent update", {}))
E AssertionError: assert False
E + where False = <bound method ElasticsearchBackend.exception_safe_to_retry of <celery.backends.elasticsearch.ElasticsearchBackend object at 0x109979c00>>(ConflictError(409, meta='concurrent update', body={}))
E + where <bound method ElasticsearchBackend.exception_safe_to_retry of <celery.backends.elasticsearch.ElasticsearchBackend object at 0x109979c00>> = <celery.backends.elasticsearch.ElasticsearchBackend object at 0x109979c00>.exception_safe_to_retry
E + and ConflictError(409, meta='concurrent update', body={}) = <class 'elasticsearch.ConflictError'>(409, 'concurrent update', {})
E + where <class 'elasticsearch.ConflictError'> = exceptions.ConflictError
t/unit/backends/test_elasticsearch.py:865: AssertionError
________ test_RedisResultConsumer.test__reconnect_pubsub_no_subscribed _________
self = <t.unit.backends.test_redis.test_RedisResultConsumer object at 0x10adeeaa0>
def test__reconnect_pubsub_no_subscribed(self):
consumer = self.get_consumer()
consumer.start('initial')
consumer.subscribed_to = set()
consumer._reconnect_pubsub()
> consumer.backend.client.mget.assert_not_called()
t/unit/backends/test_redis.py:293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='Redis.mget' id='4477349760'>
def assert_not_called(self):
"""assert that the mock was never called.
"""
if self.call_count != 0:
msg = ("Expected '%s' to not have been called. Called %s times.%s"
% (self._mock_name or 'mock',
self.call_count,
self._calls_repr()))
> raise AssertionError(msg)
E AssertionError: Expected 'mget' to not have been called. Called 1 times.
E Calls: [call(set())].
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:880: AssertionError
______ test_RedisResultConsumer.test__reconnect_pubsub_with_state_change _______
self = <t.unit.backends.test_redis.test_RedisResultConsumer object at 0x10aaf7b20>
def test__reconnect_pubsub_with_state_change(self):
meta = {'task_id': 'initial', 'status': states.SUCCESS}
consumer = self.get_consumer()
consumer.start('initial')
consumer.backend._set_with_state(b'celery-task-meta-initial', json.dumps(meta), states.SUCCESS)
consumer._reconnect_pubsub()
consumer.backend.client.mget.assert_called_once()
consumer._pubsub.subscribe.assert_not_called()
> consumer._pubsub.connection.register_connect_callback.assert_called_once()
t/unit/backends/test_redis.py:305:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='PubSub.connection.register_connect_callback' id='4473844208'>
def assert_called_once(self):
"""assert that the mock was called only once.
"""
if not self.call_count == 1:
msg = ("Expected '%s' to have been called once. Called %s times.%s"
% (self._mock_name or 'mock',
self.call_count,
self._calls_repr()))
> raise AssertionError(msg)
E AssertionError: Expected 'register_connect_callback' to have been called once. Called 0 times.
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:898: AssertionError
_____________ test_security.test_setup_security_encrypted_key_file _____________
self = <t.unit.security.test_security.test_security object at 0x10b88e530>
def test_setup_security_encrypted_key_file(self):
with tempfile.NamedTemporaryFile(mode='w', delete=False) as tmp_key1:
tmp_key1.write(ENCKEY1)
with tempfile.NamedTemporaryFile(mode='w', delete=False) as tmp_cert1:
tmp_cert1.write(CERT1)
self.app.conf.update(
task_serializer='auth',
accept_content=['auth'],
security_key=tmp_key1.name,
security_key_password=KEYPASSWORD,
security_certificate=tmp_cert1.name,
security_cert_store='*.pem',
)
> self.app.setup_security()
t/unit/security/test_security.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/base.py:637: in setup_security
return setup_security(allowed_serializers, key, cert,
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/security/__init__.py:69: in setup_security
register_auth(kf.read(), cf.read(), store, digest, serializer)
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/security/serialization.py:95: in register_auth
s = SecureSerializer(key and PrivateKey(key),
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/security/key.py:19: in __init__
self._key = serialization.load_pem_private_key(
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/cryptography/hazmat/primitives/serialization/base.py:22: in load_pem_private_key
return ossl.load_pem_private_key(data, password)
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/cryptography/hazmat/backends/openssl/backend.py:823: in load_pem_private_key
???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <OpenSSLBackend(version: OpenSSL 1.1.1n 15 Mar 2022, FIPS: False)>
openssl_read_func = <built-in method PEM_read_bio_PrivateKey of _cffi_backend.Lib object at 0x10d06b6a0>
convert_func = <bound method Backend._evp_pkey_to_private_key of <OpenSSLBackend(version: OpenSSL 1.1.1n 15 Mar 2022, FIPS: False)>>
data = b'-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIC3TBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIfSuXbPVZsP8CAggA\nMAwGCCqGSIb...lJjODOyaygt0wwzEght02lZmGhL88S35hfWpyskcWzGfbYkGqJVxY5E\ni8wow1MqvPUQdKWNPgPGd04=\n-----END ENCRYPTED PRIVATE KEY-----'
password = None
> ???
E TypeError: Password was not given but private key is encrypted
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/cryptography/hazmat/backends/openssl/backend.py:1060: TypeError
__________________ test_security.test_setup_registry_complete __________________
self = <t.unit.security.test_security.test_security object at 0x10c4dda50>
dis = <MagicMock name='_disable_insecure_serializers' id='4488712048'>
reg = <MagicMock name='register_auth' id='4513733968'>, key = 'KEY'
cert = 'CERT'
@patch('celery.security.register_auth')
@patch('celery.security._disable_insecure_serializers')
def test_setup_registry_complete(self, dis, reg, key='KEY', cert='CERT'):
calls = [0]
def effect(*args):
try:
m = Mock()
m.read.return_value = 'B' if calls[0] else 'A'
return m
finally:
calls[0] += 1
self.app.conf.task_serializer = 'auth'
self.app.conf.accept_content = ['auth']
with conftest.open(side_effect=effect):
with patch('celery.security.registry') as registry:
store = Mock()
> self.app.setup_security(['json'], key, None, cert, store)
t/unit/security/test_security.py:145:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/base.py:637: in setup_security
return setup_security(allowed_serializers, key, cert,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
allowed_serializers = ['json'], key = 'KEY', cert = None, store = 'CERT'
digest = <Mock id='4514079280'>, serializer = 'json'
app = <Celery celery.tests at 0x10c4dce50>
def setup_security(allowed_serializers=None, key=None, cert=None, store=None,
digest=None, serializer='json', app=None):
"""See :meth:`@Celery.setup_security`."""
if app is None:
from celery import current_app
app = current_app._get_current_object()
_disable_insecure_serializers(allowed_serializers)
# check conf for sane security settings
conf = app.conf
if conf.task_serializer != 'auth' or conf.accept_content != ['auth']:
raise ImproperlyConfigured(SETTING_MISSING)
key = key or conf.security_key
cert = cert or conf.security_certificate
store = store or conf.security_cert_store
digest = digest or conf.security_digest
if not (key and cert and store):
> raise ImproperlyConfigured(SECURITY_SETTING_MISSING)
E celery.exceptions.ImproperlyConfigured: Sorry, but you have to configure the
E * security_key
E * security_certificate, and the
E * security_cert_store
E configuration settings to use the auth serializer.
E
E Please see the configuration reference for more information.
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/security/__init__.py:65: ImproperlyConfigured
___________________ test_secureserializer.test_register_auth ___________________
self = <t.unit.security.test_serialization.test_secureserializer object at 0x10bf9f2e0>
def test_register_auth(self):
> register_auth(KEY1, None, CERT1, '')
t/unit/security/test_serialization.py:58:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/security/serialization.py:95: in register_auth
s = SecureSerializer(key and PrivateKey(key),
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/security/serialization.py:23: in __init__
self._digest = get_digest_algorithm(digest)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
digest = ''
def get_digest_algorithm(digest='sha256'):
"""Convert string to hash object of cryptography library."""
assert digest is not None
> return getattr(hashes, digest.upper())()
E AttributeError: module 'cryptography.hazmat.primitives.hashes' has no attribute ''
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/security/utils.py:16: AttributeError
_____________ test_Consumer.test_too_many_open_files_raises_error ______________
self = <t.unit.worker.test_consumer.test_Consumer object at 0x10db374c0>
def test_too_many_open_files_raises_error(self):
c = self.get_consumer()
err = OSError()
err.errno = errno.EMFILE
c.blueprint.start.side_effect = err
with pytest.raises(WorkerTerminate):
> c.start()
t/unit/worker/test_consumer.py:215:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:332: in start
blueprint.start(self)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104: in __call__
return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108: in _mock_call
return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='blueprint.start' id='4524210448'>
args = (<Consumer: C02G579AMD6R (<Mock name='blueprint.human_state()' id='4525622224'>)>,)
kwargs = {}, effect = OSError()
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E OSError
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: OSError
_ test_Consumer.test_blueprint_restart_when_state_not_in_stop_conditions[False] _
self = <t.unit.worker.test_consumer.test_Consumer object at 0x10da88eb0>
broker_connection_retry = False
@pytest.mark.parametrize("broker_connection_retry", [True, False])
def test_blueprint_restart_when_state_not_in_stop_conditions(self, broker_connection_retry):
c = self.get_consumer()
# ensure that WorkerShutdown is not raised
c.app.conf['broker_connection_retry'] = broker_connection_retry
c.app.conf['broker_connection_retry_on_startup'] = True
c.restart_count = -1
# ensure that blueprint state is not in stop conditions
c.blueprint.state = bootsteps.RUN
c.blueprint.start.side_effect = ConnectionError()
# stops test from running indefinitely in the while loop
c.blueprint.restart.side_effect = self._closer(c)
> c.start()
t/unit/worker/test_consumer.py:238:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:332: in start
blueprint.start(self)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104: in __call__
return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108: in _mock_call
return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='blueprint.start' id='4491878672'>
args = (<Consumer: C02G579AMD6R (<Mock name='blueprint.human_state()' id='4525288144'>)>,)
kwargs = {}, effect = ConnectionError()
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E ConnectionError
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: ConnectionError
_ test_Consumer.test_ensure_connected[None-True] [Deprecation warning when startup is None] _
self = <t.unit.worker.test_consumer.test_Consumer object at 0x10de58ee0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...pended=False> _capture_fixture=None>>, request=<SubRequest 'subtests' for <Function test_ensure_connected[None-True]>>)
broker_connection_retry = True, broker_connection_retry_on_startup = None
@pytest.mark.parametrize("broker_connection_retry", [True, False])
@pytest.mark.parametrize("broker_connection_retry_on_startup", [None, False])
def test_ensure_connected(self, subtests, broker_connection_retry, broker_connection_retry_on_startup):
c = self.get_consumer()
c.app.conf.broker_connection_retry_on_startup = broker_connection_retry_on_startup
c.app.conf.broker_connection_retry = broker_connection_retry
if broker_connection_retry_on_startup is None:
with subtests.test("Deprecation warning when startup is None"):
> with pytest.deprecated_call():
E Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>) was emitted. The list of emitted warnings is: [].
t/unit/worker/test_consumer.py:334: Failed
_ test_Consumer.test_ensure_connected[None-False] [Deprecation warning when startup is None] _
self = <t.unit.worker.test_consumer.test_Consumer object at 0x10db2aec0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...ended=False> _capture_fixture=None>>, request=<SubRequest 'subtests' for <Function test_ensure_connected[None-False]>>)
broker_connection_retry = False, broker_connection_retry_on_startup = None
@pytest.mark.parametrize("broker_connection_retry", [True, False])
@pytest.mark.parametrize("broker_connection_retry_on_startup", [None, False])
def test_ensure_connected(self, subtests, broker_connection_retry, broker_connection_retry_on_startup):
c = self.get_consumer()
c.app.conf.broker_connection_retry_on_startup = broker_connection_retry_on_startup
c.app.conf.broker_connection_retry = broker_connection_retry
if broker_connection_retry_on_startup is None:
with subtests.test("Deprecation warning when startup is None"):
> with pytest.deprecated_call():
E Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>) was emitted. The list of emitted warnings is: [].
t/unit/worker/test_consumer.py:334: Failed
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss on startup] [Consumer raises WorkerShutdown on connection restart] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10db27670>
broker_connection_retry_on_startup = False, is_connection_loss_on_startup = True
caplog = <_pytest.logging.LogCaptureFixture object at 0x10dbdc580>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...uest=<SubRequest 'subtests' for <Function test_start_raises_connection_error[shutdown on connection loss on startup]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
> c.start()
t/unit/worker/test_consumer.py:371:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:332: in start
blueprint.start(self)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104: in __call__
return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108: in _mock_call
return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='blueprint.start' id='4525211760'>
args = (<Consumer: C02G579AMD6R (<Mock name='blueprint.human_state()' id='4499131840'>)>,)
kwargs = {}, effect = ConnectionError()
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E ConnectionError
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: ConnectionError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss on startup] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10db27670>
broker_connection_retry_on_startup = False, is_connection_loss_on_startup = True
caplog = <_pytest.logging.LogCaptureFixture object at 0x10dbdc580>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...uest=<SubRequest 'subtests' for <Function test_start_raises_connection_error[shutdown on connection loss on startup]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
c.start()
> record = caplog.records[0]
E IndexError: list index out of range
t/unit/worker/test_consumer.py:373: IndexError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined] [Consumer raises WorkerShutdown on connection restart] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10db27640>
broker_connection_retry_on_startup = None, is_connection_loss_on_startup = True
caplog = <_pytest.logging.LogCaptureFixture object at 0x10dba4d30>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...nction test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
> c.start()
t/unit/worker/test_consumer.py:371:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:332: in start
blueprint.start(self)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104: in __call__
return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108: in _mock_call
return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='blueprint.start' id='4525226928'>
args = (<Consumer: C02G579AMD6R (<Mock name='blueprint.human_state()' id='4525261776'>)>,)
kwargs = {}, effect = ConnectionError()
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E ConnectionError
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: ConnectionError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10db27640>
broker_connection_retry_on_startup = None, is_connection_loss_on_startup = True
caplog = <_pytest.logging.LogCaptureFixture object at 0x10dba4d30>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...nction test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
c.start()
> record = caplog.records[0]
E IndexError: list index out of range
t/unit/worker/test_consumer.py:373: IndexError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false] [Consumer raises WorkerShutdown on connection restart] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10dbdd030>
broker_connection_retry_on_startup = False
is_connection_loss_on_startup = False
caplog = <_pytest.logging.LogCaptureFixture object at 0x10c2b65f0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...ction test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
> c.start()
t/unit/worker/test_consumer.py:371:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:332: in start
blueprint.start(self)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104: in __call__
return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108: in _mock_call
return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='blueprint.start' id='4499128768'>
args = (<Consumer: C02G579AMD6R (<Mock name='blueprint.human_state()' id='4499540240'>)>,)
kwargs = {}, effect = ConnectionError()
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E ConnectionError
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: ConnectionError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10dbdd030>
broker_connection_retry_on_startup = False
is_connection_loss_on_startup = False
caplog = <_pytest.logging.LogCaptureFixture object at 0x10c2b65f0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...ction test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
c.start()
> record = caplog.records[0]
E IndexError: list index out of range
t/unit/worker/test_consumer.py:373: IndexError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined] [Consumer raises WorkerShutdown on connection restart] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10c260100>
broker_connection_retry_on_startup = None, is_connection_loss_on_startup = False
caplog = <_pytest.logging.LogCaptureFixture object at 0x10c2616f0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob... <Function test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
> c.start()
t/unit/worker/test_consumer.py:371:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:332: in start
blueprint.start(self)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104: in __call__
return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108: in _mock_call
return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='blueprint.start' id='4498799392'>
args = (<Consumer: C02G579AMD6R (<Mock name='blueprint.human_state()' id='4498918128'>)>,)
kwargs = {}, effect = ConnectionError()
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E ConnectionError
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: ConnectionError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10c260100>
broker_connection_retry_on_startup = None, is_connection_loss_on_startup = False
caplog = <_pytest.logging.LogCaptureFixture object at 0x10c2616f0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob... <Function test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
c.start()
> record = caplog.records[0]
E IndexError: list index out of range
t/unit/worker/test_consumer.py:373: IndexError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true] [Consumer raises WorkerShutdown on connection restart] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10c343e50>
broker_connection_retry_on_startup = True, is_connection_loss_on_startup = False
caplog = <_pytest.logging.LogCaptureFixture object at 0x10c3403a0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...nction test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
> c.start()
t/unit/worker/test_consumer.py:371:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:332: in start
blueprint.start(self)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1104: in __call__
return self._mock_call(*args, **kwargs)
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1108: in _mock_call
return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Mock name='blueprint.start' id='4499714016'>
args = (<Consumer: C02G579AMD6R (<Mock name='blueprint.human_state()' id='4525226880'>)>,)
kwargs = {}, effect = ConnectionError()
def _execute_mock_call(self, /, *args, **kwargs):
# separate from _increment_mock_call so that awaited functions are
# executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
if _is_exception(effect):
> raise effect
E ConnectionError
../../.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py:1163: ConnectionError
_ test_Consumer_WorkerShutdown.test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true] _
self = <t.unit.worker.test_consumer.test_Consumer_WorkerShutdown object at 0x10c343e50>
broker_connection_retry_on_startup = True, is_connection_loss_on_startup = False
caplog = <_pytest.logging.LogCaptureFixture object at 0x10c3403a0>
subtests = SubTests(ihook=<pluggy._hooks._HookRelay object at 0x1026b3c10>, suspend_capture_ctx=<bound method CaptureManager.glob...nction test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true]>>)
def test_start_raises_connection_error(self,
broker_connection_retry_on_startup,
is_connection_loss_on_startup,
caplog, subtests):
c = self.get_consumer()
# in order to reproduce the actual behavior: if this is the startup, then restart count has not been
# incremented yet, and is therefore -1.
c.restart_count = -1 if is_connection_loss_on_startup else 1
c.app.conf['broker_connection_retry'] = False
c.app.conf['broker_connection_retry_on_startup'] = broker_connection_retry_on_startup
c.blueprint.start.side_effect = ConnectionError()
with subtests.test("Consumer raises WorkerShutdown on connection restart"):
with pytest.raises(WorkerShutdown):
c.start()
> record = caplog.records[0]
E IndexError: list index out of range
t/unit/worker/test_consumer.py:373: IndexError
=============================== warnings summary ===============================
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/kombu/utils/compat.py:82
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/kombu/utils/compat.py:82
/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/kombu/utils/compat.py:82: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
for ep in importlib_metadata.entry_points().get(namespace, [])
../../.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/utils/imports.py:145: 1 warning
t/unit/test_canvas.py: 2 warnings
t/unit/app/test_app.py: 6 warnings
t/unit/app/test_backends.py: 8 warnings
t/unit/app/test_beat.py: 57 warnings
t/unit/app/test_builtins.py: 7 warnings
t/unit/app/test_control.py: 2 warnings
t/unit/app/test_routes.py: 2 warnings
t/unit/backends/test_arangodb.py: 2 warnings
t/unit/backends/test_base.py: 14 warnings
t/unit/backends/test_cache.py: 2 warnings
t/unit/backends/test_couchbase.py: 2 warnings
t/unit/backends/test_couchdb.py: 2 warnings
t/unit/backends/test_dynamodb.py: 25 warnings
t/unit/backends/test_elasticsearch.py: 5 warnings
t/unit/backends/test_mongodb.py: 7 warnings
t/unit/backends/test_redis.py: 1 warning
t/unit/backends/test_rpc.py: 2 warnings
t/unit/contrib/test_abortable.py: 4 warnings
t/unit/tasks/test_canvas.py: 39 warnings
t/unit/tasks/test_chord.py: 9 warnings
t/unit/tasks/test_result.py: 94 warnings
t/unit/tasks/test_tasks.py: 51 warnings
t/unit/tasks/test_trace.py: 21 warnings
t/unit/utils/test_graph.py: 9 warnings
t/unit/worker/test_loops.py: 6 warnings
t/unit/worker/test_request.py: 64 warnings
t/unit/worker/test_strategy.py: 53 warnings
t/unit/worker/test_worker.py: 4 warnings
/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/utils/imports.py:145: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
for ep in entry_points().get(namespace, []):
t/unit/app/test_app.py::test_App::test_worker_main
/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/bin/celery.py:78: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
@with_plugins(entry_points().get('celery.commands', []))
t/unit/tasks/test_trace.py::test_trace::test_backend_error_should_report_failure
t/unit/worker/test_request.py::test_Request::test_execute_backend_error_acks_late
/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py:660: RuntimeWarning: Exception raised outside body: Exception():
Traceback (most recent call last):
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 518, in trace_task
task.backend.mark_as_done(
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1104, in __call__
return self._mock_call(*args, **kwargs)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1108, in _mock_call
return self._execute_mock_call(*args, **kwargs)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1163, in _execute_mock_call
raise effect
Exception
warn(RuntimeWarning(
t/unit/tasks/test_trace.py::test_trace::test_backend_error_should_report_failure
t/unit/worker/test_request.py::test_Request::test_execute_backend_error_acks_late
/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py:660: RuntimeWarning: Exception raised outside body: Exception():
Traceback (most recent call last):
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 518, in trace_task
task.backend.mark_as_done(
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1104, in __call__
return self._mock_call(*args, **kwargs)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1108, in _mock_call
return self._execute_mock_call(*args, **kwargs)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1163, in _execute_mock_call
raise effect
Exception
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 584, in trace_task
return task.__trace__(uuid, args, kwargs, request)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 572, in trace_task
I, _, _, _ = on_error(task_request, exc, uuid)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 379, in on_error
R = I.handle_error_state(
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 178, in handle_error_state
return {
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 225, in handle_failure
task.backend.mark_as_failure(
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1104, in __call__
return self._mock_call(*args, **kwargs)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1108, in _mock_call
return self._execute_mock_call(*args, **kwargs)
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/unittest/mock.py", line 1163, in _execute_mock_call
raise effect
Exception
warn(RuntimeWarning(
t/unit/worker/test_consumer.py::test_Consumer::test_blueprint_restart_when_state_not_in_stop_conditions[True]
t/unit/worker/test_consumer.py::test_Consumer::test_collects_at_restart
t/unit/worker/test_worker.py::test_Consumer::test_start_connection_error
/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/worker/consumer/consumer.py:367: CPendingDeprecationWarning:
In Celery 5.1 we introduced an optional breaking change which
on connection loss cancels all currently executed tasks with late acknowledgement enabled.
These tasks cannot be acknowledged as the connection is gone, and the tasks are automatically redelivered back to the queue.
You can enable this behavior using the worker_cancel_long_running_tasks_on_connection_loss setting.
In Celery 5.1 it is set to False by default. The setting will be set to True by default in Celery 6.0.
warnings.warn(CANCEL_TASKS_BY_DEFAULT, CPendingDeprecationWarning)
t/unit/worker/test_request.py::test_Request::test_from_message_invalid_kwargs
/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py:660: RuntimeWarning: Exception raised outside body: InvalidTaskError('Task keyword arguments is not a mapping'):
Traceback (most recent call last):
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 401, in trace_task
kwargs.items
AttributeError: 'str' object has no attribute 'items'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/okatz6/.pyenv/versions/3.10.3/lib/python3.10/site-packages/celery/app/trace.py", line 403, in trace_task
raise InvalidTaskError(
celery.exceptions.InvalidTaskError: Task keyword arguments is not a mapping
warn(RuntimeWarning(
-- Docs: https://docs.pytest.org/en/stable/warnings.html
=========================== short test summary info ============================
FAILED t/unit/app/test_app.py::test_App::test_setup_security - TypeError: Cel...
FAILED t/unit/app/test_beat.py::test_Scheduler::test_pending_left_10_milliseconds_tick
FAILED t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_backend_concurrent_update
FAILED t/unit/backends/test_elasticsearch.py::test_ElasticsearchBackend::test_exception_safe_to_retry
FAILED t/unit/backends/test_redis.py::test_RedisResultConsumer::test__reconnect_pubsub_no_subscribed
FAILED t/unit/backends/test_redis.py::test_RedisResultConsumer::test__reconnect_pubsub_with_state_change
FAILED t/unit/security/test_security.py::test_security::test_setup_security_encrypted_key_file
FAILED t/unit/security/test_security.py::test_security::test_setup_registry_complete
FAILED t/unit/security/test_serialization.py::test_secureserializer::test_register_auth
FAILED t/unit/worker/test_consumer.py::test_Consumer::test_too_many_open_files_raises_error
FAILED t/unit/worker/test_consumer.py::test_Consumer::test_blueprint_restart_when_state_not_in_stop_conditions[False]
SUBFAIL t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[None-True]
SUBFAIL t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[None-False]
SUBFAIL t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup]
FAILED t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup]
SUBFAIL t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined]
FAILED t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss on startup when retry on startup is undefined]
SUBFAIL t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false]
FAILED t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as false]
SUBFAIL t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined]
FAILED t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup and startup is not defined]
SUBFAIL t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true]
FAILED t/unit/worker/test_consumer.py::test_Consumer_WorkerShutdown::test_start_raises_connection_error[shutdown on connection loss not on startup but startup is defined as true]
= 23 failed, 2608 passed, 20 skipped, 3 xfailed, 512 warnings in 64.64s (0:01:04) =
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment