Don't rely on testtools.tests

We can't import testtools.tests because although we depend on
testtools, its test-requirements may not be available to us. So
just "inline" what we need from testtools.tests.

See I33564b06e9a2b128e892f0b598cfc71f71a7794a and
I0a34ae7b7000760a1be105c8c082b8aaa8e079e4 for more history and
this issue.

Change-Id: I4d67aafb3dcdefa105782883cd044b09ba5ee966
Closes-bug: #1634972
diff --git a/tempest/tests/common/test_custom_matchers.py b/tempest/tests/common/test_custom_matchers.py
index 2656a47..07867fc 100644
--- a/tempest/tests/common/test_custom_matchers.py
+++ b/tempest/tests/common/test_custom_matchers.py
@@ -16,11 +16,47 @@
 from tempest.common import custom_matchers
 from tempest.tests import base
 
-from testtools.tests.matchers import helpers
+
+# Stolen from testtools/testtools/tests/matchers/helpers.py
+class TestMatchersInterface(object):
+
+    def test_matches_match(self):
+        matcher = self.matches_matcher
+        matches = self.matches_matches
+        mismatches = self.matches_mismatches
+        for candidate in matches:
+            self.assertEqual(None, matcher.match(candidate))
+        for candidate in mismatches:
+            mismatch = matcher.match(candidate)
+            self.assertNotEqual(None, mismatch)
+            self.assertNotEqual(None, getattr(mismatch, 'describe', None))
+
+    def test__str__(self):
+        # [(expected, object to __str__)].
+        from testtools.matchers._doctest import DocTestMatches
+        examples = self.str_examples
+        for expected, matcher in examples:
+            self.assertThat(matcher, DocTestMatches(expected))
+
+    def test_describe_difference(self):
+        # [(expected, matchee, matcher), ...]
+        examples = self.describe_examples
+        for difference, matchee, matcher in examples:
+            mismatch = matcher.match(matchee)
+            self.assertEqual(difference, mismatch.describe())
+
+    def test_mismatch_details(self):
+        # The mismatch object must provide get_details, which must return a
+        # dictionary mapping names to Content objects.
+        examples = self.describe_examples
+        for difference, matchee, matcher in examples:
+            mismatch = matcher.match(matchee)
+            details = mismatch.get_details()
+            self.assertEqual(dict(details), details)
 
 
 class TestMatchesDictExceptForKeys(base.TestCase,
-                                   helpers.TestMatchersInterface):
+                                   TestMatchersInterface):
 
     matches_matcher = custom_matchers.MatchesDictExceptForKeys(
         {'a': 1, 'b': 2, 'c': 3, 'd': 4}, ['c', 'd'])