Skip to content

Parametrization order changes between py2.7 and py3 #4670

Closed
@mshriver

Description

@mshriver

I am observing different parametrization order on the same test repository and command syntax between py2.7 and py3.6.6

The source repository where this is observed is ManageIQ/integration tests, and involves a tree of fixtures and parametrization. I'll attempt to create a 'unit' level recreation to simplify, but wanted to report ASAP. I've discussed this a bit with @RonnyPfannschmidt and he is familiar with integration_tests and its environment.

In python 2.7, I observe the following test function name and param ids with the linked test/fixture:
test_migration_long_name[virtualcenter-6.0-rhevm-4.2]

In python 3.6.6, the two parameters have switched:
test_migration_long_name[rhevm-4.2-virtualcenter-6.0]

Fixture with first two parameters:
https://github.com/ManageIQ/integration_tests/blob/master/cfme/fixtures/v2v.py#L38

Test module with provider and second_provider parametrized:
https://github.com/ManageIQ/integration_tests/blob/master/cfme/tests/v2v/test_v2v_migrations.py#L19

Example test function above from same module, line 651:
https://github.com/ManageIQ/integration_tests/blob/master/cfme/tests/v2v/test_v2v_migrations.py#L651

OS: Fedora 27
Both py.test runs are done in a virtualenv with frozen pip.
pytest version 3.4.1
Frozen requirements for py2.7 and py3.6.6 environments:
py2 requirements
py3 requirements

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic: parametrizerelated to @pytest.mark.parametrizetype: bugproblem that needs to be addressed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions