From 33d42e25e672f859da19436c3e24f4cd04da9fac Mon Sep 17 00:00:00 2001
From: cody burkard <cody@onlab.us>
Date: Fri, 3 Oct 2014 09:50:39 -0700
Subject: [PATCH] if a test fails or exits with an error, run cleanup as a
 precaution

---
 examples/test/runner.py | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/examples/test/runner.py b/examples/test/runner.py
index 4939e085..6bf872c8 100755
--- a/examples/test/runner.py
+++ b/examples/test/runner.py
@@ -12,6 +12,18 @@
 from mininet.util import ensureRoot
 from mininet.clean import cleanup
 
+class MininetTestResult( unittest.TextTestResult ):
+    def addFailure( self, test, err ):
+        super( MininetTestResult, self ).addFailure( test, err )
+        cleanup()
+    def addError( self,test, err ):
+        super( MininetTestResult, self ).addError( test, err )
+        cleanup()
+
+class MininetTestRunner( unittest.TextTestRunner ):
+    def _makeResult( self ):
+        return MininetTestResult( self.stream, self.descriptions, self.verbosity )
+
 def runTests( testDir, verbosity=1 ):
     "discover and run all tests in testDir"
     # ensure root and cleanup before starting tests
@@ -20,7 +32,7 @@ def runTests( testDir, verbosity=1 ):
     # discover all tests in testDir
     testSuite = unittest.defaultTestLoader.discover( testDir )
     # run tests
-    unittest.TextTestRunner( verbosity=verbosity ).run( testSuite )
+    MininetTestRunner( verbosity=verbosity ).run( testSuite )
 
 if __name__ == '__main__':
     # get the directory containing example tests
-- 
GitLab