Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 0 additions & 48 deletions .github/workflows/freethreading_tests.yml

This file was deleted.

1 change: 1 addition & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ jobs:
- "3.11"
- "3.12"
- "3.13"
- "3.13t"
- "pypy-3.9"
exclude:
- os:
Expand Down
1 change: 0 additions & 1 deletion requirements-tests.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ eventlet==0.37.0; python_version < "3.13"
flaky==3.8.1
pytest==8.3.3
pytest-cov==6.0.0
pytest-run-parallel==0.4.2
pytest-timeout==2.3.1
ruff==0.7.1
sphinx==7.4.7; python_version <= "3.9"
Expand Down
1 change: 0 additions & 1 deletion tests/test_delayed_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@


@pytest.mark.flaky(max_runs=5, min_passes=1)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_delayed_get():
q = DelayedQueue[str](2)
q.put("", delay=True)
Expand Down
22 changes: 0 additions & 22 deletions tests/test_emitter.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ def rerun_filter(exc, *args):


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_create(p: P, event_queue: TestEventQueue, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
start_watching()
open(p("a"), "a").close()
Expand All @@ -66,7 +65,6 @@ def test_create(p: P, event_queue: TestEventQueue, start_watching: StartWatching

@pytest.mark.skipif(not platform.is_linux(), reason="FileClosed*Event only supported in GNU/Linux")
@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_closed(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
with open(p("a"), "a"):
start_watching()
Expand Down Expand Up @@ -99,7 +97,6 @@ def test_closed(p: P, event_queue: TestEventQueue, start_watching: StartWatching
platform.is_darwin() or platform.is_windows(),
reason="Windows and macOS enforce proper encoding",
)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_create_wrong_encoding(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
start_watching()
open(p("a_\udce4"), "a").close()
Expand All @@ -115,7 +112,6 @@ def test_create_wrong_encoding(p: P, event_queue: TestEventQueue, start_watching


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_delete(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkfile(p("a"))

Expand All @@ -129,7 +125,6 @@ def test_delete(p: P, start_watching: StartWatching, expect_event: ExpectEvent)


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_modify(p: P, event_queue: TestEventQueue, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkfile(p("a"))
start_watching()
Expand All @@ -150,7 +145,6 @@ def test_modify(p: P, event_queue: TestEventQueue, start_watching: StartWatching


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_chmod(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkfile(p("a"))
start_watching()
Expand All @@ -166,7 +160,6 @@ def test_chmod(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move(p: P, event_queue: TestEventQueue, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand Down Expand Up @@ -196,7 +189,6 @@ def test_move(p: P, event_queue: TestEventQueue, start_watching: StartWatching,


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_case_change(
p: P,
event_queue: TestEventQueue,
Expand Down Expand Up @@ -231,7 +223,6 @@ def test_case_change(


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_to(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand All @@ -247,7 +238,6 @@ def test_move_to(p: P, start_watching: StartWatching, expect_event: ExpectEvent)


@pytest.mark.skipif(not platform.is_linux(), reason="InotifyFullEmitter only supported in Linux")
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_to_full(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand All @@ -262,7 +252,6 @@ def test_move_to_full(p: P, event_queue: TestEventQueue, start_watching: StartWa


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_from(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand All @@ -278,7 +267,6 @@ def test_move_from(p: P, start_watching: StartWatching, expect_event: ExpectEven


@pytest.mark.skipif(not platform.is_linux(), reason="InotifyFullEmitter only supported in Linux")
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_from_full(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand All @@ -293,7 +281,6 @@ def test_move_from_full(p: P, event_queue: TestEventQueue, start_watching: Start


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_separate_consecutive_moves(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkdir(p("dir1"))
mkfile(p("dir1", "a"))
Expand Down Expand Up @@ -322,7 +309,6 @@ def test_separate_consecutive_moves(p: P, start_watching: StartWatching, expect_

@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.skipif(platform.is_bsd(), reason="BSD create another set of events for this test")
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_delete_self(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
mkdir(p("dir1"))
emitter = start_watching(path=p("dir1"))
Expand All @@ -336,7 +322,6 @@ def test_delete_self(p: P, start_watching: StartWatching, expect_event: ExpectEv
platform.is_windows() or platform.is_bsd(),
reason="Windows|BSD create another set of events for this test",
)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_fast_subdirectory_creation_deletion(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
root_dir = p("dir1")
sub_dir = p("dir1", "subdir1")
Expand Down Expand Up @@ -369,7 +354,6 @@ def test_fast_subdirectory_creation_deletion(p: P, event_queue: TestEventQueue,


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_passing_unicode_should_give_unicode(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
start_watching(path=str(p()))
mkfile(p("a"))
Expand All @@ -389,7 +373,6 @@ def test_passing_bytes_should_give_bytes(p: P, event_queue: TestEventQueue, star


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_recursive_on(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
mkdir(p("dir1", "dir2", "dir3"), parents=True)
start_watching()
Expand All @@ -416,7 +399,6 @@ def test_recursive_on(p: P, event_queue: TestEventQueue, start_watching: StartWa


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_recursive_off(
p: P,
event_queue: TestEventQueue,
Expand Down Expand Up @@ -461,7 +443,6 @@ def test_recursive_off(


@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_renaming_top_level_directory(
p: P,
event_queue: TestEventQueue,
Expand Down Expand Up @@ -514,7 +495,6 @@ def test_renaming_top_level_directory(


@pytest.mark.skipif(platform.is_windows(), reason="Windows create another set of events for this test")
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_nested_subdirectories(
p: P,
event_queue: TestEventQueue,
Expand Down Expand Up @@ -559,7 +539,6 @@ def test_move_nested_subdirectories(
not platform.is_windows(),
reason="Non-Windows create another set of events for this test",
)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_nested_subdirectories_on_windows(
p: P,
event_queue: TestEventQueue,
Expand Down Expand Up @@ -605,7 +584,6 @@ def test_move_nested_subdirectories_on_windows(

@pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
@pytest.mark.skipif(platform.is_bsd(), reason="BSD create another set of events for this test")
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_file_lifecyle(p: P, start_watching: StartWatching, expect_event: ExpectEvent) -> None:
start_watching()

Expand Down
2 changes: 0 additions & 2 deletions tests/test_fsevents.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@ def on_thread_stop(self):
observer.unschedule(w)


@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_converting_cfstring_to_pyunicode(p: P, start_watching: StartWatching, event_queue: TestEventQueue) -> None:
"""See https://github.com/gorakhargosh/watchdog/issues/762"""

Expand Down Expand Up @@ -293,7 +292,6 @@ def done(self):
observer.join()


@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_watchdog_recursive(p: P) -> None:
"""See https://github.com/gorakhargosh/watchdog/issues/706"""
import os.path
Expand Down
3 changes: 0 additions & 3 deletions tests/test_inotify_c.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ def struct_inotify(wd, mask, cookie=0, length=0, name=b"") -> bytes:
return struct.pack(struct_format, wd, mask, cookie, length, name)


@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_late_double_deletion(helper: Helper, p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
inotify_fd = type("FD", (object,), {})()
inotify_fd.last = 0
Expand Down Expand Up @@ -170,7 +169,6 @@ def test_raise_error(error, pattern):
assert exc.value.errno == error


@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_non_ascii_path(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
"""
Inotify can construct an event for a path containing non-ASCII.
Expand Down Expand Up @@ -206,7 +204,6 @@ def test_event_equality(p: P) -> None:
assert event2 != event3


@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_select_fd(p: P, event_queue: TestEventQueue, start_watching: StartWatching) -> None:
# We open a file 2048 times to ensure that we exhaust 1024 file
# descriptors, the limit of a select() call.
Expand Down
8 changes: 0 additions & 8 deletions tests/test_inotify_watch_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ def create_inotify_watch(path: bytes, *, recursive: bool = False, follow_symlink


@pytest.mark.timeout(5)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_from(p):
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand All @@ -50,7 +49,6 @@ def test_move_from(p):


@pytest.mark.timeout(5)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_to(p):
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand All @@ -63,7 +61,6 @@ def test_move_to(p):


@pytest.mark.timeout(5)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_internal(p):
mkdir(p("dir1"))
mkdir(p("dir2"))
Expand All @@ -78,7 +75,6 @@ def test_move_internal(p):


@pytest.mark.timeout(5)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_internal_symlink_followed(p):
mkdir(p("dir", "dir1"), parents=True)
mkdir(p("dir", "dir2"))
Expand All @@ -94,7 +90,6 @@ def test_move_internal_symlink_followed(p):


@pytest.mark.timeout(10)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_move_internal_batch(p):
n = 100
mkdir(p("dir1"))
Expand Down Expand Up @@ -132,7 +127,6 @@ def test_delete_watched_directory(p):


@pytest.mark.timeout(5)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_delete_watched_directory_symlink_followed(p):
mkdir(p("dir", "dir2"), parents=True)
symlink(p("dir"), p("symdir"), target_is_directory=True)
Expand All @@ -152,7 +146,6 @@ def test_delete_watched_directory_symlink_followed(p):


@pytest.mark.timeout(5)
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_delete_watched_directory_symlink_followed_recursive(p):
mkdir(p("dir"), parents=True)
mkdir(p("dir2", "dir3", "dir4"), parents=True)
Expand All @@ -174,7 +167,6 @@ def test_delete_watched_directory_symlink_followed_recursive(p):

@pytest.mark.timeout(5)
@pytest.mark.skipif("GITHUB_REF" not in os.environ, reason="sudo password prompt")
@pytest.mark.thread_unsafe(reason="Uses recwarn")
def test_unmount_watched_directory_filesystem(p):
mkdir(p("dir1"))
mount_tmpfs(p("dir1"))
Expand Down
Loading
Loading