| Server IP : 127.0.1.1 / Your IP : 216.73.216.152 Web Server : Apache/2.4.52 (Ubuntu) System : Linux bahcrestlinepropertiesllc 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/2793044/root/lib/python3/dist-packages/jeepney/tests/ |
Upload File : |
import errno
import os
import socket
import pytest
from jeepney import FileDescriptor, NoFDError
def assert_not_fd(fd: int):
"""Check that the given number is not open as a file descriptor"""
with pytest.raises(OSError) as exc_info:
os.stat(fd)
assert exc_info.value.errno == errno.EBADF
def test_close(tmp_path):
fd = os.open(tmp_path / 'a', os.O_CREAT | os.O_RDWR)
with FileDescriptor(fd) as wfd:
assert wfd.fileno() == fd
# Leaving the with block is equivalent to calling .close()
assert 'closed' in repr(wfd)
with pytest.raises(NoFDError):
wfd.fileno()
assert_not_fd(fd)
def test_to_raw_fd(tmp_path):
fd = os.open(tmp_path / 'a', os.O_CREAT)
wfd = FileDescriptor(fd)
assert wfd.fileno() == fd
assert wfd.to_raw_fd() == fd
try:
assert 'converted' in repr(wfd)
with pytest.raises(NoFDError):
wfd.fileno()
finally:
os.close(fd)
def test_to_file(tmp_path):
fd = os.open(tmp_path / 'a', os.O_CREAT | os.O_RDWR)
wfd = FileDescriptor(fd)
with wfd.to_file('w') as f:
assert f.write('abc')
assert 'converted' in repr(wfd)
with pytest.raises(NoFDError):
wfd.fileno()
assert_not_fd(fd) # Check FD was closed by file object
assert (tmp_path / 'a').read_text() == 'abc'
def test_to_socket():
s1, s2 = socket.socketpair()
try:
s1.sendall(b'abcd')
sfd = s2.detach()
wfd = FileDescriptor(sfd)
with wfd.to_socket() as sock:
b = sock.recv(16)
assert b and b'abcd'.startswith(b)
assert 'converted' in repr(wfd)
with pytest.raises(NoFDError):
wfd.fileno()
assert_not_fd(sfd) # Check FD was closed by socket object
finally:
s1.close()