Minor 2.3 and win32 compatibility fixes; clarify the 'feature not found' message in setup.py.
diff --git a/setup.py b/setup.py
index 13fc574..01f2f56 100644
--- a/setup.py
+++ b/setup.py
@@ -220,7 +220,8 @@
                     extra_postargs=(ext.extra_compile_args or []),
                     depends=ext.depends)
         except CompileError:
-            log.warn("%s appears not to be installed" % ext.feature_name)
+            log.warn("%s appears not to be installed: forcing --%s"
+                     % (ext.feature_name, ext.neg_option_name))
             log.warn("(if %s is installed, you may need to specify"
                     % ext.feature_name)
             log.warn(" the option --include-dirs or uncomment and modify")
diff --git a/tests/test_appliance.py b/tests/test_appliance.py
index 09c46c9..49783ef 100644
--- a/tests/test_appliance.py
+++ b/tests/test_appliance.py
@@ -51,9 +51,13 @@
     return include_functions, include_filenames, verbose
 
 def execute(function, filenames, verbose):
+    if hasattr(function, 'unittest_name'):
+        name = function.unittest_name
+    else:
+        name = function.func_name
     if verbose:
         sys.stdout.write('='*75+'\n')
-        sys.stdout.write('%s(%s)...\n' % (function.func_name, ', '.join(filenames)))
+        sys.stdout.write('%s(%s)...\n' % (name, ', '.join(filenames)))
     try:
         function(verbose=verbose, *filenames)
     except Exception, exc:
@@ -73,7 +77,7 @@
         if not verbose:
             sys.stdout.write('.')
     sys.stdout.flush()
-    return (function, filenames, kind, info)
+    return (name, filenames, kind, info)
 
 def display(results, verbose):
     if results and not verbose:
@@ -81,7 +85,7 @@
     total = len(results)
     failures = 0
     errors = 0
-    for function, filenames, kind, info in results:
+    for name, filenames, kind, info in results:
         if kind == 'SUCCESS':
             continue
         if kind == 'FAILURE':
@@ -89,7 +93,7 @@
         if kind == 'ERROR':
             errors += 1
         sys.stdout.write('='*75+'\n')
-        sys.stdout.write('%s(%s): %s\n' % (function.func_name, ', '.join(filenames), kind))
+        sys.stdout.write('%s(%s): %s\n' % (name, ', '.join(filenames), kind))
         if kind == 'ERROR':
             traceback.print_exception(file=sys.stdout, *info)
         else:
@@ -98,7 +102,7 @@
             sys.stdout.write('%s: see below\n' % info[0].__name__)
             sys.stdout.write('~'*75+'\n')
             for arg in info[1].args:
-                pprint.pprint(arg, stream=sys.stdout, indent=2)
+                pprint.pprint(arg, stream=sys.stdout)
         for filename in filenames:
             sys.stdout.write('-'*75+'\n')
             sys.stdout.write('%s:\n' % filename)
diff --git a/tests/test_constructor.py b/tests/test_constructor.py
index bb01692..0aacf17 100644
--- a/tests/test_constructor.py
+++ b/tests/test_constructor.py
@@ -231,6 +231,8 @@
         return repr(data.utctimetuple())
     elif isinstance(data, unicode):
         return data.encode('utf-8')
+    elif isinstance(data, float) and data != data:
+        return '?'
     else:
         return str(data)
 
diff --git a/tests/test_recursive.py b/tests/test_recursive.py
index b2dca3c..6707fd4 100644
--- a/tests/test_recursive.py
+++ b/tests/test_recursive.py
@@ -35,8 +35,8 @@
         assert output1 == output2, (output1, output2)
     finally:
         if verbose:
-            print "VALUE1:", value1
-            print "VALUE2:", value2
+            #print "VALUE1:", value1
+            #print "VALUE2:", value2
             print "OUTPUT1:"
             print output1
             print "OUTPUT2:"
diff --git a/tests/test_yaml_ext.py b/tests/test_yaml_ext.py
index 8840ffd..e18becf 100644
--- a/tests/test_yaml_ext.py
+++ b/tests/test_yaml_ext.py
@@ -240,7 +240,11 @@
             function(*args, **kwds)
         finally:
             _tear_down()
-    wrapper.func_name = '%s_ext' % function.func_name
+    try:
+        wrapper.func_name = '%s_ext' % function.func_name
+    except TypeError:
+        pass
+    wrapper.unittest_name = '%s_ext' % function.func_name
     wrapper.unittest = function.unittest
     wrapper.skip = getattr(function, 'skip', [])+['.skip-ext']
     return wrapper
@@ -259,8 +263,8 @@
             if isinstance(value, types.FunctionType) and hasattr(value, 'unittest'):
                 functions.append(wrap_ext_function(value))
     for function in functions:
-        assert function.func_name not in globals()
-        globals()[function.func_name] = function
+        assert function.unittest_name not in globals()
+        globals()[function.unittest_name] = function
 
 import test_tokens, test_structure, test_errors, test_resolver, test_constructor,   \
         test_emitter, test_representer, test_recursive