Labs ICT
โญ Pro Login

Timeout Mark

Preventing tests from hanging with time limits.

1 min read | pytest
โญ

Want the full learning experience?

Get structured courses, certificates, projects, and instructor support with LabsICT Pro.

Explore Pro Courses

Timeout Mark

Tests that hang or take too long can block your test suite. The @pytest.mark.timeout decorator ensures tests finish within a time limit.

Installation

The timeout plugin is not built into pytest. Install it separately:

pip install pytest-timeout

Basic Usage

import pytest
import time

@pytest.mark.timeout(5)
def test_quick_operation():
    result = fast_function()
    assert result is not None

@pytest.mark.timeout(1)
def test_must_finish_quickly():
    time.sleep(0.5)
    assert True

If the test runs longer than the specified seconds, pytest raises a TimeoutError.

Global Timeout

Set a default timeout for all tests in pytest.ini:

[pytest]
timeout = 30
timeout_method = thread

Individual tests can override this with their own @pytest.mark.timeout.

Timeout Methods

Two methods are available for enforcing timeouts:

  • signal (default on Unix) - Uses OS signals. Cannot be used in non-main threads.
  • thread - Uses a background thread. Works everywhere but may not interrupt some blocking calls.
[pytest]
timeout = 10
timeout_method = thread

๐Ÿงช Quick Quiz

How do you set a timeout for a test in pytest?