Support "real" UTF-8 by changing to utf8mb4 (winterrodeln tables) and binary (Mediawi...
[philipp/winterrodeln/wrpylib.git] / tests / test_mwdb.py
index 2a038d7398fd09219f8f90e4e0ecda375b12ebe9..3e94135ee48ed5713ad42d0d87de12b0fdb25415 100644 (file)
@@ -10,7 +10,7 @@ import wrpylib.mwdb
 class TestMwDb(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        cls.engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=1')
+        cls.engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8mb4')
         cls.Session = sessionmaker(bind=cls.engine)
 
     def setUp(self):
@@ -71,7 +71,7 @@ class TestMySqlPython(unittest.TestCase):
     This has been fixed in MySQL_python version 1.2.4."""
     @classmethod
     def setUpClass(cls):
-        cls.db = MySQLdb.connect(db='philipp_winterrodeln_wiki', charset='utf8', use_unicode=True)
+        cls.db = MySQLdb.connect(db='philipp_winterrodeln_wiki', charset='utf8mb4')
 
     def setUp(self):
         self.cursor = self.db.cursor()
@@ -83,29 +83,29 @@ class TestMySqlPython(unittest.TestCase):
 
     def test_datatype_page(self):
         result = self.exec_sql('select page_title, page_restrictions, page_touched from page where page_id = 1321')
-        assert type(result[0]) == str # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
-        assert type(result[1]) == bytes  # tinyblob NOT NULL
-        assert type(result[2]) == bytes  # binary(14) NOT NULL
+        self.assertEqual(type(result[0]), str)  # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+        self.assertEqual(type(result[1]), bytes)  # tinyblob NOT NULL
+        self.assertEqual(type(result[2]), bytes)  # binary(14) NOT NULL
 
     def test_datatype_revision(self):
         result = self.exec_sql('select rev_comment, rev_user_text, rev_timestamp from revision where rev_id = 7586')
-        assert type(result[0]) == bytes  # tinyblob NOT NULL
-        assert type(result[1]) == str # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
-        assert type(result[2]) == bytes  # binary(14) NOT NULL
+        self.assertEqual(type(result[0]), bytes)  # tinyblob NOT NULL
+        self.assertEqual(type(result[1]), str)  # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+        self.assertEqual(type(result[2]), bytes)  # binary(14) NOT NULL
 
     def test_datatypes_text(self):
         result = self.exec_sql('select old_text, old_flags from text where old_id = 7438')
-        assert type(result[0]) == bytes # mediumblob NOT NULL
-        assert type(result[1]) == bytes # tinyblob NOT NULL
+        self.assertEqual(type(result[0]), bytes)  # mediumblob NOT NULL
+        self.assertEqual(type(result[1]), bytes)  # tinyblob NOT NULL
 
     def test_datatype_user(self):
         result = self.exec_sql('select user_name, user_real_name, user_email from user where user_id = 1')
-        assert type(result[0]) == str # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
-        assert type(result[1]) == str # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
-        assert type(result[2]) == str # tinytext NOT NULL
+        self.assertEqual(type(result[0]), str)  # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+        self.assertEqual(type(result[1]), str)  # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+        self.assertEqual(type(result[2]), str)  # tinytext NOT NULL
         assert result[0] == 'Philipp'
 
     def test_datatype_categorylinks(self):
         result = self.exec_sql('select cl_to, cl_sortkey from categorylinks where cl_from = 609')
-        assert type(result[0]) == str # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
-        assert type(result[1]) == bytes  # varbinary(230) NOT NULL
+        self.assertEqual(type(result[0]), str)  # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+        self.assertEqual(type(result[1]), bytes)  # varbinary(230) NOT NULL