Skip to content

Testsuite failure with Python 3.11 #358

@baldurmen

Description

@baldurmen

Hi!

Debian is currently transitioning to Python 3.11 and I'm working on fixing bugs in the Debian package for deepdiff. Running the testsuite with the 6.2.1 release with Python 3.11, I get this error:

=================================== FAILURES ===================================                                                                              
______ TestHelper.test_detailed__dict__[MyEnum.A-ignore_keys0-expected0] _______                                                                              
                                                                                                                                                              
self = <tests.test_helper.TestHelper object at 0x7f5e8eb58890>                                                                                                
obj = <MyEnum.A: 1>                                                                                                                                           
ignore_keys = frozenset({'_name_', '_sort_order_', '_value_'})                                                                                                
expected = {'__objclass__': <enum 'MyEnum'>, 'name': 'A', 'value': 1}                                                                                         
                                                                                                                                                              
    @pytest.mark.parametrize('obj, ignore_keys, expected', [                                                                                                  
        (                                                                                                                                                     
            MyEnum.A,                                                                                                                                         
            ENUM_IGNORE_KEYS,                                                                                                                                 
            {'__objclass__': MyEnum, 'name': 'A', 'value': 1},                                                                                                
        )                                                                                                                                                     
    ])                                                                                                                                                        
    def test_detailed__dict__(self, obj, ignore_keys, expected):                                                                                              
        result = detailed__dict__(obj, ignore_private_variables=True, ignore_keys=ignore_keys)                                                                
>       assert expected == result, f"test_detailed__dict__ failed for {obj}"                                                                                  
E       AssertionError: test_detailed__dict__ failed for MyEnum.A                                                                                             
E       assert {'__objclass__': <enum 'MyEnum'>, 'name': 'A', 'value': 1} == {'A': <MyEnum.A: 1>,\n 'B': <MyEnum.B: 2>,\n '__objclass__': <enum 'MyEnum'>,\n 'name': 'A',\n 'value': 1}                                                                                                                                     
E         Common items:                                                                                                                                       
E         {'__objclass__': <enum 'MyEnum'>, 'name': 'A', 'value': 1}                                                                                          
E         Right contains 2 more items:                                                                                                                        
E         {'A': <MyEnum.A: 1>, 'B': <MyEnum.B: 2>}                                                                                                            
E         Full diff:                                                                                                                                          
E           {                                                                                                                                                 
E         -  'A': <MyEnum.A: 1>,                                                                                                                              
E         -  'B': <MyEnum.B: 2>,                                                                                                                              
E            '__objclass__': <enum 'MyEnum'>,                                                                                                                 
E            'name': 'A',                                                                                                                                     
E            'value': 1,                                                                                                                                      
E           }                                                                                                                                                 
                                                                                                                                                              
tests/test_helper.py:290: AssertionError

I'm not familiar enough with the codebase to know what causes this, but it also happened with 5.8.2. Any ideas?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions