# This test verifies that the false positives generated by pylint are
# correctly suppressed.

import subprocess


def test_popen(proc):
    p = subprocess.Popen(
        proc,
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT,
    )
    tmp1 = p.poll
    tmp2 = p.returncode
    tmp3 = p.stdin
    tmp4 = p.stdout
    tmp5 = p.stderr
    tmp6 = p.wait
    tmp7 = p.pid
