[ovs-dev] [PATCH v1] tests: fix python2 module not find error

Ilya Maximets i.maximets at ovn.org
Mon Jul 19 10:35:31 UTC 2021


On 7/17/21 5:21 AM, Amber, Kumar wrote:
> Hi llya,
> 
> This is what I get after a minor tweek :
> "except ImportError as err:
>      print(err)"
> 
> when Scapy is not present :
> 
> No module named 'scapy'
> Traceback (most recent call last):
>   File "./../mfex_fuzzy.py", line 10, in <module>
>     pktdump = PcapWriter(path, append=False, sync=True)
> NameError: name 'PcapWriter' is not defined
> 
> Is this ohk ?

I don't understand why we're catching this exception.
Even with your changes if the package is not available,
we will catch the ImportError, print it and go further,
later while trying to use modules that wasn't imported
we will get another more vague exception.  So what is
the port catching ImportError in the first place?

If we'll exit after printing... well, but doesn't python
print exception trace by itself?

BTW, the title of this patch is incorrect.  We do not
support python2, this problem is with python3 < 3.6.

Best regards, Ilya Maximets.

> 
> Regards
> Amber
> 
> 
>> -----Original Message-----
>> From: Ilya Maximets <i.maximets at ovn.org>
>> Sent: Saturday, July 17, 2021 12:21 AM
>> To: Amber, Kumar <kumar.amber at intel.com>; ovs-dev at openvswitch.org
>> Cc: i.maximets at ovn.org; Stokes, Ian <ian.stokes at intel.com>
>> Subject: Re: [PATCH v1] tests: fix python2 module not find error
>>
>> On 7/16/21 8:15 PM, kumar Amber wrote:
>>> This fixes the flake8 error on pyhton version older than 3.6 as
>>> ModuleNotFoundError in not available before 3.6 and that is now
>>> replaced to ImportError which is present in earlier versions.
>>>
>>> ../../tests/mfex_fuzzy.py:5:8: F821 undefined name 'ModuleNotFoundError'
>>> 2653Makefile:5826: recipe for target 'flake8-check' failed
>>>
>>> Fixes: 50be6715c0 ("test/sytem-dpdk: Add unit test for mfex
>>> autovalidator")
>>> Signed-off-by: kumar Amber <kumar.amber at intel.com>
>>> ---
>>>  tests/mfex_fuzzy.py | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/tests/mfex_fuzzy.py b/tests/mfex_fuzzy.py index
>>> 5b056bb48..fd257ffb6 100755
>>> --- a/tests/mfex_fuzzy.py
>>> +++ b/tests/mfex_fuzzy.py
>>> @@ -2,7 +2,7 @@
>>>  try:
>>>      from scapy.all import RandMAC, RandIP, PcapWriter, RandIP6, RandShort,
>> fuzz
>>>      from scapy.all import IPv6, Dot1Q, IP, Ether, UDP, TCP -except
>>> ModuleNotFoundError as err:
>>> +except ImportError as err:
>>>      print(err + ": Scapy")
>>>  import sys
>>>
>>>
>>
>> I can confirm that this fixes the flake8 issue.
>>
>> But I'm not sure how that is supposed to work at all.
>> Here is what I get in a plain python console:
>>
>> Python 3.6.8 (default, Mar 18 2021, 08:58:41) [GCC 8.4.1 20200928 (Red Hat
>> 8.4.1-1)] on linux Type "help", "copyright", "credits" or "license" for more
>> information.
>>>>> try:
>> ...     from scapy.all import RandMAC
>> ... except ImportError as err:
>> ...     print(err + ": Scapy")
>> ...
>> Traceback (most recent call last):
>>   File "<stdin>", line 2, in <module>
>> ModuleNotFoundError: No module named 'scapy'
>>
>> During handling of the above exception, another exception occurred:
>>
>> Traceback (most recent call last):
>>   File "<stdin>", line 4, in <module>
>> TypeError: unsupported operand type(s) for +: 'ModuleNotFoundError' and 'str'
>>
>>
>> Best regards, Ilya Maximets.



More information about the dev mailing list