Fix _validate_switch_role throwing incorrect error message

Currently, if switch_role in rbac_utils is not called correctly
(or not at all), then a role switch error is thrown. It is only
not thrown if a skip exception is currently being handled--that is,
if the test is skipped, then the validation is ignored.

However, this logic is not entirely correct. For example, when
an unexpected error is thrown, like an AttributeError, then the
validation check fails, and so a role switch error is thrown -- when
instead the AttributeError should be thrown instead.

This patch changes the behavior of _validate_switch_role to only
throw a switch role error if no other exception is currently
being handled.

Change-Id: I8c3944e766210a31aa684e29c45e39470b738640
diff --git a/patrole_tempest_plugin/rbac_utils.py b/patrole_tempest_plugin/rbac_utils.py
index 4bfa7fe..d952014 100644
--- a/patrole_tempest_plugin/rbac_utils.py
+++ b/patrole_tempest_plugin/rbac_utils.py
@@ -14,7 +14,6 @@
 #    under the License.
 
 import sys
-import testtools
 import time
 
 from oslo_log import log as logging
@@ -137,10 +136,11 @@
         self.switch_role_history.setdefault(key, None)
 
         if self.switch_role_history[key] == toggle_rbac_role:
-            # If the test was skipped, then this is a legitimate use case,
-            # so do not throw an exception.
-            exc_value = sys.exc_info()[1]
-            if not isinstance(exc_value, testtools.TestCase.skipException):
+            # If an exception was thrown, like a skipException or otherwise,
+            # then this is a legitimate reason why `switch_role` was not
+            # called, so only raise an exception if no current exception is
+            # being handled.
+            if sys.exc_info()[0] is None:
                 self.switch_role_history[key] = False
                 error_message = '`toggle_rbac_role` must not be called with '\
                     'the same bool value twice. Make sure that you included '\