Improved existing tests for wrpylib.mwdb.
[philipp/winterrodeln/wrpylib.git] / tests / test_mwdb.py
index dbb2ced22e9f9a2d20d083586795bc1ba2f4b48c..ccbda84719d1cffbcd31505e20603b56113f90fd 100644 (file)
@@ -1,25 +1,43 @@
-#!/usr/bin/python2.7
-# -*- coding: iso-8859-15 -*-
-import wrpylib.mwdb
+#!/usr/bin/python3.4
+import unittest
 import sqlalchemy
+from sqlalchemy.engine import create_engine
+from sqlalchemy.orm import sessionmaker
+import wrpylib.mwdb
 
 
-def test_page_table():
-    metadata = sqlalchemy.MetaData()
-    page_table = wrpylib.mwdb.page_table(metadata)
-
-
-def test_revision_table():
-    metadata = sqlalchemy.MetaData()
-    revision_table = wrpylib.mwdb.revision_table(metadata)
-
-
-def test_text_table():
-    metadata = sqlalchemy.MetaData()
-    text_table = wrpylib.mwdb.text_table(metadata)
-
-
-def test_categorylinks_table():
-    metadata = sqlalchemy.MetaData()
-    categorylinks_table = wrpylib.mwdb.categorylinks_table(metadata)
-
+class TestMwDb(unittest.TestCase):
+    @classmethod
+    def setUpClass(cls):
+        cls.metadata = sqlalchemy.MetaData()
+        cls.engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=1')
+        cls.Session = sessionmaker(bind=cls.engine)
+
+    def setUp(self):
+        self.session = self.Session()
+
+    def tearDown(self):
+        self.session.rollback()
+
+    def test_page_table(self):
+        Page = wrpylib.mwdb.page_table(self.metadata)
+        page = self.session.query(Page).filter(Page.c.page_id==1321).first()
+        self.assertEqual(page.page_id, 1321)
+
+    def test_revision_table(self):
+        metadata = sqlalchemy.MetaData()
+        RevisionTable = wrpylib.mwdb.revision_table(metadata)
+        revision_table = self.session.query(RevisionTable).filter(RevisionTable.c.rev_id == 666).first()
+        self.assertEqual(revision_table.rev_id, 666)
+
+    def test_text_table(self):
+        metadata = sqlalchemy.MetaData()
+        TextTable = wrpylib.mwdb.text_table(metadata)
+        text_table = self.session.query(TextTable).filter(TextTable.c.old_id == 51).first()
+        self.assertEqual(text_table.old_id, 51)
+
+    def test_categorylinks_table(self):
+        metadata = sqlalchemy.MetaData()
+        CategorylinksTable = wrpylib.mwdb.categorylinks_table(metadata)
+        categorylinks_table = self.session.query(CategorylinksTable).filter(CategorylinksTable.c.cl_from == 229).first()
+        self.assertEqual(categorylinks_table.cl_from, 229)