File: test_ethtool.py

package info (click to toggle)
pyroute2 0.8.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,700 kB
  • sloc: python: 50,245; makefile: 280; javascript: 183; ansic: 81; sh: 44; awk: 17
file content (28 lines) | stat: -rw-r--r-- 464 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import gc
import os

from pyroute2 import Ethtool


def get_fds():
    fd = os.open(f'/proc/{os.getpid()}/fd', os.O_RDONLY)
    try:
        return set(os.listdir(fd)) - {fd}
    finally:
        os.close(fd)


def test_pipe_leak():
    fds = get_fds()
    etht = Ethtool()
    etht.close()
    gc.collect()
    assert get_fds() == fds


def test_context_manager():
    fds = get_fds()
    with Ethtool():
        pass
    gc.collect()
    assert get_fds() == fds