More unit tests about types
diff --git a/test/test_crypto.py b/test/test_crypto.py
index aa22cd0..d9317fd 100644
--- a/test/test_crypto.py
+++ b/test/test_crypto.py
@@ -191,6 +191,9 @@
             isinstance(comment, X509ExtensionType),
             "%r is of type %r, should be %r" % (
                 comment, type(comment), X509ExtensionType))
+        self.assertEqual(type(X509ExtensionType).__name__, 'type')
+        self.assertEqual(type(basic).__name__, 'X509Extension')
+        self.assertEqual(type(basic), X509ExtensionType)
 
 
     def test_invalid_extension(self):
@@ -248,6 +251,9 @@
         self.assertTrue(
             isinstance(key, PKeyType),
             "%r is of type %r, should be %r" % (key, type(key), PKeyType))
+        self.assertEqual(type(PKeyType).__name__, 'type')
+        self.assertEqual(type(key).__name__, 'PKey')
+        self.assertEqual(type(key), PKeyType)
 
 
     def test_pregeneration(self):
@@ -350,6 +356,21 @@
         return name
 
 
+    def test_type(self):
+        """
+        L{X509NameType} is a type, and matches the type of a
+        X509Name.
+        """
+        name = self._x509name()
+        self.assertTrue(
+            isinstance(name, X509NameType),
+            "%r is of type %r, should be %r" % (
+                name, type(name), X509NameType))
+        self.assertEqual(type(X509NameType).__name__, 'type')
+        self.assertEqual(type(name).__name__, 'X509Name')
+        self.assertEqual(type(name), X509NameType)
+
+
     def test_attributes(self):
         """
         L{X509NameType} instances have attributes for each standard (?)
@@ -558,7 +579,11 @@
         """
         Create and return a new L{X509Req}.
         """
-        return X509Req()
+        req = X509Req()
+        self.assertEqual(type(X509ReqType).__name__, 'type')
+        self.assertEqual(type(req).__name__, 'X509Req')
+        self.assertEqual(type(req), X509ReqType)
+        return req
 
 
     def test_construction(self):
@@ -627,6 +652,9 @@
             "%r is of type %r, should be %r" % (certificate,
                                                 type(certificate),
                                                 X509Type))
+        self.assertEqual(type(X509Type).__name__, 'type')
+        self.assertEqual(type(certificate).__name__, 'X509')
+        self.assertEqual(type(certificate), X509Type)
 
 
     def test_serial_number(self):
@@ -895,6 +923,9 @@
         """
         pkcs7 = load_pkcs7_data(FILETYPE_PEM, pkcs7Data)
         self.assertTrue(isinstance(pkcs7, PKCS7Type))
+        self.assertEqual(type(PKCS7Type).__name__, 'type')
+        self.assertEqual(type(pkcs7).__name__, 'PKCS7')
+        self.assertEqual(type(pkcs7), PKCS7Type)
 
 
     def test_load_pkcs12(self):
@@ -904,6 +935,9 @@
         """
         pkcs12 = load_pkcs12(pkcs12Data)
         self.assertTrue(isinstance(pkcs12, PKCS12Type))
+        self.assertEqual(type(PKCS12Type).__name__, 'type')
+        self.assertEqual(type(pkcs12).__name__, 'PKCS12')
+        self.assertEqual(type(pkcs12), PKCS12Type)
 
 
 
@@ -917,6 +951,9 @@
         """
         nspki = NetscapeSPKI()
         self.assertTrue(isinstance(nspki, NetscapeSPKIType))
+        self.assertEqual(type(NetscapeSPKIType).__name__, 'type')
+        self.assertEqual(type(nspki).__name__, 'NetscapeSPKI')
+        self.assertEqual(type(nspki), NetscapeSPKIType)