From 2e2039915d88caa4df7a5467865759b3de744f32 Mon Sep 17 00:00:00 2001
From: Dave Kuhlman <dkuhlman@davekuhlman.org>
Date: Tue, 17 Jan 2017 13:25:51 -0800
Subject: [PATCH] One more unicode fix

---
 generateDS.py                           | 6 +++---
 tests/OnePer/oneperType00_2One.py       | 6 +++---
 tests/OnePer/oneperType01_2One.py       | 6 +++---
 tests/OnePer/oneperType02_2One.py       | 6 +++---
 tests/OnePer/oneperType03_2One.py       | 6 +++---
 tests/abstract_type1_sup.py             | 6 +++---
 tests/annotations1_sup.py               | 6 +++---
 tests/anonymous_type1_sup.py            | 6 +++---
 tests/anysimpletype1_sup.py             | 6 +++---
 tests/anywildcard1_sup.py               | 6 +++---
 tests/attr_groups1_sup.py               | 6 +++---
 tests/catalogtest1_sup.py               | 6 +++---
 tests/cdata1_sup.py                     | 6 +++---
 tests/cleanupname1_sup.py               | 6 +++---
 tests/defaults_cases1_sup.py            | 6 +++---
 tests/defaults_coverage1_sup.py         | 6 +++---
 tests/extensions1_sup.py                | 6 +++---
 tests/ipo1_sup.py                       | 6 +++---
 tests/ipo2_sup.py                       | 6 +++---
 tests/mapcleanname1_sup.py              | 6 +++---
 tests/nested_def1_sup.py                | 6 +++---
 tests/out1_sup.py                       | 6 +++---
 tests/people_procincl1_sup.py           | 6 +++---
 tests/prefix_classname1_sup.py          | 6 +++---
 tests/recursive_simpletype1_sup.py      | 6 +++---
 tests/reference_simpletype1_sup.py      | 6 +++---
 tests/rem_dup_elems1_sup.py             | 6 +++---
 tests/simplecontent_restriction1_sup.py | 6 +++---
 tests/simpletype_memberspecs1_sup.py    | 6 +++---
 tests/simpletypes_other1_sup.py         | 6 +++---
 tests/test.py                           | 4 ++--
 tests/to_etree1_sup.py                  | 6 +++---
 tests/validate_simpletypes1_sup.py      | 6 +++---
 tests/validate_simpletypes2_sup.py      | 6 +++---
 34 files changed, 101 insertions(+), 101 deletions(-)

diff --git a/generateDS.py b/generateDS.py
index f836d1c..3e9335e 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -5334,10 +5334,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/OnePer/oneperType00_2One.py b/tests/OnePer/oneperType00_2One.py
index 55efc42..99f1c66 100644
--- a/tests/OnePer/oneperType00_2One.py
+++ b/tests/OnePer/oneperType00_2One.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/OnePer/oneperType01_2One.py b/tests/OnePer/oneperType01_2One.py
index efbcc68..652b9e6 100644
--- a/tests/OnePer/oneperType01_2One.py
+++ b/tests/OnePer/oneperType01_2One.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/OnePer/oneperType02_2One.py b/tests/OnePer/oneperType02_2One.py
index 04ac805..06578e2 100644
--- a/tests/OnePer/oneperType02_2One.py
+++ b/tests/OnePer/oneperType02_2One.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/OnePer/oneperType03_2One.py b/tests/OnePer/oneperType03_2One.py
index 2af4390..6bea073 100644
--- a/tests/OnePer/oneperType03_2One.py
+++ b/tests/OnePer/oneperType03_2One.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/abstract_type1_sup.py b/tests/abstract_type1_sup.py
index 47ddb55..08422d5 100644
--- a/tests/abstract_type1_sup.py
+++ b/tests/abstract_type1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/annotations1_sup.py b/tests/annotations1_sup.py
index d9ef298..87aa8d7 100644
--- a/tests/annotations1_sup.py
+++ b/tests/annotations1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/anonymous_type1_sup.py b/tests/anonymous_type1_sup.py
index 15998f8..e373bf8 100644
--- a/tests/anonymous_type1_sup.py
+++ b/tests/anonymous_type1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/anysimpletype1_sup.py b/tests/anysimpletype1_sup.py
index 8fc85d5..28a1450 100644
--- a/tests/anysimpletype1_sup.py
+++ b/tests/anysimpletype1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/anywildcard1_sup.py b/tests/anywildcard1_sup.py
index 76cc49a..2d7a08c 100644
--- a/tests/anywildcard1_sup.py
+++ b/tests/anywildcard1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/attr_groups1_sup.py b/tests/attr_groups1_sup.py
index 085a6e1..c9f62ff 100644
--- a/tests/attr_groups1_sup.py
+++ b/tests/attr_groups1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/catalogtest1_sup.py b/tests/catalogtest1_sup.py
index a8dcc9a..6fa48d3 100644
--- a/tests/catalogtest1_sup.py
+++ b/tests/catalogtest1_sup.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/cdata1_sup.py b/tests/cdata1_sup.py
index 3c95e19..af309dd 100644
--- a/tests/cdata1_sup.py
+++ b/tests/cdata1_sup.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/cleanupname1_sup.py b/tests/cleanupname1_sup.py
index 0217e35..59f05e9 100644
--- a/tests/cleanupname1_sup.py
+++ b/tests/cleanupname1_sup.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/defaults_cases1_sup.py b/tests/defaults_cases1_sup.py
index 29d55ed..7eb901a 100644
--- a/tests/defaults_cases1_sup.py
+++ b/tests/defaults_cases1_sup.py
@@ -370,10 +370,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/defaults_coverage1_sup.py b/tests/defaults_coverage1_sup.py
index 291585f..702722d 100644
--- a/tests/defaults_coverage1_sup.py
+++ b/tests/defaults_coverage1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/extensions1_sup.py b/tests/extensions1_sup.py
index 16f648c..5f3cb9a 100644
--- a/tests/extensions1_sup.py
+++ b/tests/extensions1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/ipo1_sup.py b/tests/ipo1_sup.py
index 5ff5561..5a27592 100644
--- a/tests/ipo1_sup.py
+++ b/tests/ipo1_sup.py
@@ -370,10 +370,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/ipo2_sup.py b/tests/ipo2_sup.py
index 5ff5561..5a27592 100644
--- a/tests/ipo2_sup.py
+++ b/tests/ipo2_sup.py
@@ -370,10 +370,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/mapcleanname1_sup.py b/tests/mapcleanname1_sup.py
index 8a71474..02e1136 100644
--- a/tests/mapcleanname1_sup.py
+++ b/tests/mapcleanname1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/nested_def1_sup.py b/tests/nested_def1_sup.py
index 3a3dda9..a0ca03d 100644
--- a/tests/nested_def1_sup.py
+++ b/tests/nested_def1_sup.py
@@ -370,10 +370,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/out1_sup.py b/tests/out1_sup.py
index f0074d3..7d3900a 100644
--- a/tests/out1_sup.py
+++ b/tests/out1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/people_procincl1_sup.py b/tests/people_procincl1_sup.py
index 58f687e..dac3ff1 100644
--- a/tests/people_procincl1_sup.py
+++ b/tests/people_procincl1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/prefix_classname1_sup.py b/tests/prefix_classname1_sup.py
index 1f9b3c0..eddff87 100644
--- a/tests/prefix_classname1_sup.py
+++ b/tests/prefix_classname1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/recursive_simpletype1_sup.py b/tests/recursive_simpletype1_sup.py
index 9f04ae7..571ffda 100644
--- a/tests/recursive_simpletype1_sup.py
+++ b/tests/recursive_simpletype1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/reference_simpletype1_sup.py b/tests/reference_simpletype1_sup.py
index 136024a..849823a 100644
--- a/tests/reference_simpletype1_sup.py
+++ b/tests/reference_simpletype1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/rem_dup_elems1_sup.py b/tests/rem_dup_elems1_sup.py
index e654b49..ee67fd2 100644
--- a/tests/rem_dup_elems1_sup.py
+++ b/tests/rem_dup_elems1_sup.py
@@ -372,10 +372,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/simplecontent_restriction1_sup.py b/tests/simplecontent_restriction1_sup.py
index b3e7b31..155013f 100644
--- a/tests/simplecontent_restriction1_sup.py
+++ b/tests/simplecontent_restriction1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/simpletype_memberspecs1_sup.py b/tests/simpletype_memberspecs1_sup.py
index 3d97881..7531654 100644
--- a/tests/simpletype_memberspecs1_sup.py
+++ b/tests/simpletype_memberspecs1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/simpletypes_other1_sup.py b/tests/simpletypes_other1_sup.py
index 6f146c3..7efca4b 100644
--- a/tests/simpletypes_other1_sup.py
+++ b/tests/simpletypes_other1_sup.py
@@ -371,10 +371,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/test.py b/tests/test.py
index 84135e0..d76e266 100755
--- a/tests/test.py
+++ b/tests/test.py
@@ -62,7 +62,7 @@ class GenTest(unittest.TestCase):
         self.compareFiles('out1_sup.py', 'out2_sup.py', ignore=())
         self.compareFiles('out1_sub.py', 'out2_sub.py')
         # cleanup generated files
-        self.remove('out2_sup.py')
+        #self.remove('out2_sup.py')
         self.remove('out2_sub.py')
 
     def test_003_element_groups(self):
@@ -276,7 +276,7 @@ class GenTest(unittest.TestCase):
         self.failUnlessEqual(content1, content2)
         # cleanup generated files
         self.remove('literal2.py')
-        self.remove('out2_sup.py')
+        #self.remove('out2_sup.py')
         self.remove('out2_sub.py')
 
     def test_010_simplecontent_restriction(self):
diff --git a/tests/to_etree1_sup.py b/tests/to_etree1_sup.py
index 231d243..a91bf21 100644
--- a/tests/to_etree1_sup.py
+++ b/tests/to_etree1_sup.py
@@ -373,10 +373,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/validate_simpletypes1_sup.py b/tests/validate_simpletypes1_sup.py
index f3ec19f..7e21557 100644
--- a/tests/validate_simpletypes1_sup.py
+++ b/tests/validate_simpletypes1_sup.py
@@ -370,10 +370,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
diff --git a/tests/validate_simpletypes2_sup.py b/tests/validate_simpletypes2_sup.py
index f3ec19f..7e21557 100644
--- a/tests/validate_simpletypes2_sup.py
+++ b/tests/validate_simpletypes2_sup.py
@@ -370,10 +370,10 @@ except ImportError as exp:
                 return instring
         @staticmethod
         def convert_unicode(instring):
-            if (type(instring) is str or
-                    (sys.version_info.major == 2
-                        and type(instring) == unicode)):
+            if isinstance(instring, str):
                 result = quote_xml(instring)
+            elif sys.version_info.major == 2 and isinstance(instring, unicode):
+                result = quote_xml(instring).encode('utf8')
             else:
                 result = GeneratedsSuper.gds_encode(str(instring))
             return result
-- 
GitLab