Skip to content

Escape test ID`s in Testing API #17810

Closed as not planned
Closed as not planned

Description

I have Python project with pytest's tests and I catch this error

Error: Test IDs may not include the "<path-to-test>/tests/unit/interactions/mastercard/test_mastercard.py::TestMasterCardDeleteCard::test_generic_404_exception_is_not_affected[\u0000]" symbol
	at new D (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:87)
	at Object.createTestItem (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:95)
	at vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9
	at vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9
	at Array.forEach (<anonymous>)
	at g (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at m (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9
	at Object.forEach (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:87)
	at g (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at m (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9
	at Object.forEach (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:87)
	at g (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at m (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9
	at Object.forEach (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:87)
	at g (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at m (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9
	at Object.forEach (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:87)
	at g (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at m (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9
	at Object.forEach (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:87)
	at g (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at Object.m [as updateTestItemFromRawData] (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:9)
	at _.resolveChildren (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:59)
	at _.refreshTestData (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:59)
	at processTicksAndRejections (internal/process/task_queues.js:93)
	at async v.refreshTestDataInternal (vscode-file://vscode-app/Users/perseus/.vscode/extensions/ms-python.python-2021.10.1336267007/out/client/extension.js:59)

Pytest allow to parametrize and test looks like this

    @pytest.mark.asyncio
    @pytest.mark.parametrize('body', ['', 'test', '{}', '{"test": true}', b'', b'\x00'])
    async def test_generic_404_exception_is_not_affected(

-> test_generic_404_exception_is_not_affected[\u0000] is valid test name

Screenshot 2021-10-20 at 11 48 18

Version: 1.61.2

Activity

  1. connor4312 commented on Oct 20, 2021

    @connor4312
    Member

    NUL bytes are not allowed in test IDs, since we use it for delimiters internally

  2. perseus-fyi commented on Oct 20, 2021

    @perseus-fyi
    Author

    I found workaround using ids parameter

    @pytest.mark.parametrize('body', ['', 'test', '{}', '{"test": true}', b'', b'\x00'], ids=str)
    

    But this restrictions looks strange ...

  3. added
    bugIssue identified by VS Code Team member as probable bug
    and removed
    triage-neededNeeds assignment to the proper sub-team
    on Oct 20, 2021
  4. karthiknadig commented on Oct 20, 2021

    @karthiknadig
    Member

    We have plans on rewriting the test adapter. We should handle this case there.

    /cc Kim-Adeline Miguel (@kimadeline)

  5. kimadeline commented on Oct 20, 2021

    @kimadeline
  6. karrtikr commented on Dec 22, 2022

    @karrtikr

    Closing in favor of #17242.

  7. locked as resolved and limited conversation to collaborators on Jan 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-testingbugIssue identified by VS Code Team member as probable bugneeds PRReady to be worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions