Skip to content

Automated test fails when controller is plugged in #1528

@cspotcode

Description

@cspotcode

Bug Report

The dual_stick_shooter test fails when a controller is plugged in.

pytest -k dual_stick_shooter

System Info

Run this and paste the output here: python -m arcade

Arcade 3.0.0.dev12
------------------
vendor: ATI Technologies Inc.
renderer: Radeon RX 570 Series
version: (4, 6)
python: 3.11.2 (tags/v3.11.2:878ead1, Feb  7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)]
platform: win32

Actual behavior:

=============================================================================================================================================== FAILURES ================================================================================================================================================
________________________________________________________________________________________________________________________ test_all[python -m arcade.examples.dual_stick_shooter] _________________________________________________________________________________________________________________________

cmd = 'python -m arcade.examples.dual_stick_shooter'

    @pytest.mark.parametrize(
        "cmd",
        argvalues=list_examples(
            indices_in_range=None,
            index_skip_list=None
        )
    )
    def test_all(cmd):
        # Set an environment variable that will just run on_update() and on_draw()
        # once, then quit.
        import pyglet
        test_env = os.environ.copy()
        test_env["ARCADE_TEST"] = "TRUE"
    
        result = subprocess.check_output(cmd, shell=True, env=test_env)
        if result:
            print(f"ERROR: Got a result of: {result}.")
>           assert not result
E           assert not b"========== Controller(name=XInput0)\r\nLeft X        0\r\nLeft Y        0\r\nLeft Trigger  0\r\nRight X       0\r\nR...pprint controller\r\nController(name=XInput0)\r\n========== pprint controller.device\r\nXInputDevice(name=XInput0)\r\n"

tests\test_examples\test_all_examples.py:74: AssertionError
----------------------------------------------------------------------------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------------------------------------------------------------------------ 
ERROR: Got a result of: b"========== Controller(name=XInput0)\r\nLeft X        0\r\nLeft Y        0\r\nLeft Trigger  0\r\nRight X       0\r\nRight Y       0\r\nRight Trigger 0\r\n========== Extra controller\r\n========== Extra controller.device\r\n_is_open                       = False (bool)\r\n_manager                       = <pyglet.input.win32.xinput.XInputDeviceManager object at 0x000001DBED457410> (ProxyType)\r\nconnected                      = True (bool)\r\ncontrols                       = {'a': Button(name=a, raw_name=None), 'b': Button(name=b, raw_name=None), 'x': Button(name=x, raw_name=None), 'y': Button(name=y, raw_name=None), 'back': Button(name=back, raw_name=None), 'start': Button(name=start, raw_name=None), 'guide': Button(name=guide, raw_name=None), 'leftshoulder': Button(name=leftshoulder, raw_name=None), 'rightshoulder': Button(name=rightshoulder, raw_name=None), 'leftstick': Button(name=leftstick, raw_name=None), 'rightstick': Button(name=rightstick, raw_name=None), 'dpup': Button(name=dpup, raw_name=None), 'dpdown': Button(name=dpdown, raw_name=None), 'dpleft': Button(name=dpleft, raw_name=None), 'dpright': Button(name=dpright, raw_name=None), 'leftx': AbsoluteAxis(name=leftx, raw_name=None), 'lefty': AbsoluteAxis(name=lefty, raw_name=None), 'rightx': AbsoluteAxis(name=rightx, raw_name=None), 'righty': AbsoluteAxis(name=righty, raw_name=None), 'lefttrigger': AbsoluteAxis(name=lefttrigger, raw_name=None), 'righttrigger': AbsoluteAxis(name=righttrigger, raw_name=None)} (dict)\r\ndisplay                        = None (NoneType)\r\nindex                          = 0 (int)\r\nmanufacturer                   = None (NoneType)\r\nname                           = XInput0 (str)\r\npacket_number                  = 0 (int)\r\nstrong_duration                = None (NoneType)\r\nvibration                      = <pyglet.input.win32.xinput.XINPUT_VIBRATION object at 0x000001DBED42A950> (XINPUT_VIBRATION)\r\nweak_duration                  = None (NoneType)\r\nxinput_state                   = <pyglet.input.win32.xinput.XINPUT_STATE object at 0x000001DBED42A8D0> (XINPUT_STATE)\r\n========== pprint controller\r\nController(name=XInput0)\r\n========== pprint controller.device\r\nXInputDevice(name=XInput0)\r\n".
======================================================================================================================================== short test summary info ======================================================================================================================================== 
FAILED tests/test_examples/test_all_examples.py::test_all[python -m arcade.examples.dual_stick_shooter] - assert not b"========== Controller(name=XInput0)\r\nLeft X        0\r\nLeft Y        0\r\nLeft Trigger  0\r\nRight X       0\r\nR...pprint controller\r\nController(name=XInput0)\r\n========== pprint controller.device\r\nXInputDevice(name=XInput0)\r\n"
=================================================================================================================================== 1 failed, 590 deselected in 3.07s =================================================================================================================================== 

Expected behavior:

========================================================================================================================================== test session starts ==========================================================================================================================================
platform win32 -- Python 3.11.2, pytest-7.2.1, pluggy-1.0.0
rootdir: C:\Users\cspot\Documents\dev\@pythonarcade\arcade, configfile: setup.cfg
plugins: cov-4.0.0, mock-3.10.0
collected 591 items / 590 deselected / 1 selected

tests\test_examples\test_all_examples.py .                                                                                                                                                                                                                                                         [100%]

=================================================================================================================================== 1 passed, 590 deselected in 2.88s =================================================================================================================================== 

Steps to reproduce/example code:

pytest -k dual_stick_shooter

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions