Add a generic utility to check any binary availability
In order to run, some test programs depend on the availability
of binaries in locations that are part of PATH. So, we add a
generic utility to simplify this.
from pyroute2 import NSPopen
from distutils.spawn import find_executable
+def has_executable(name):
+ path = find_executable(name)
+ if path is None:
+ raise Exception(name + ": command not found")
+ return path
+
class NSPopenWithCheck(NSPopen):
"""
A wrapper for NSPopen that additionally checks if the program
@@ -11,8 +17,5 @@ class NSPopenWithCheck(NSPopen):
def __init__(self, nsname, *argv, **kwarg):
name = list(argv)[0][0]
- path = find_executable(name)
- if path is None:
- raise Exception(name + ": command not found")
- else:
+ has_executable(name)
super(NSPopenWithCheck, self).__init__(nsname, *argv, **kwarg)
