Omitting _table suffix for tests in wrpylib.mwdb.
[philipp/winterrodeln/wrpylib.git] / tests / test_sqlalchemy.py
1 #!/usr/bin/python3.4
2 from sqlalchemy import schema
3 from sqlalchemy.engine import create_engine
4 from sqlalchemy.sql import select
5 from wrpylib import mwdb
6 import unittest
7
8
9 def connect():
10     engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=1')
11     connection = engine.connect()
12     connection.begin()
13     return connection
14
15
16 class TestSqlAlchemy(unittest.TestCase):
17     def test_datatype_page(self):
18         metadata = schema.MetaData()
19         tpage = mwdb.page_table(metadata)
20         page = connect().execute(select([tpage], tpage.c.page_id == 1321)).first()
21         assert type(page.page_title) == str
22         assert type(page.page_restrictions) == bytes
23         assert type(page.page_touched) == str
24
25     def test_datatype_revision(self):
26         metadata = schema.MetaData()
27         trevision = mwdb.revision_table(metadata)
28         revision = connect().execute(select([trevision], trevision.c.rev_id == 7586)).first()
29         assert type(revision.rev_comment) == str
30         assert type(revision.rev_user_text) == str
31         assert type(revision.rev_timestamp) == str
32
33     def test_datatypes_text(self):
34         metadata = schema.MetaData()
35         ttext = mwdb.text_table(metadata)
36         text = connect().execute(select([ttext], ttext.c.old_id==7438)).first()
37         assert type(text.old_text) == str
38         assert type(text.old_flags) == str
39         assert text.old_flags == 'utf-8'
40
41     def test_datatype_user(self):
42         metadata = schema.MetaData()
43         tuser = mwdb.user_table(metadata)
44         user = connect().execute(select([tuser], tuser.c.user_id == 1)).first()
45         assert type(user.user_name) == str
46         assert type(user.user_real_name) == str
47         assert type(user.user_email) == str
48         assert user.user_name == 'Philipp'
49
50     def test_datatype_categorylinks(self):
51         metadata = schema.MetaData()
52         tcategorylinks = mwdb.categorylinks_table(metadata)
53         categorylinks = connect().execute(select([tcategorylinks], tcategorylinks.c.cl_from == 609)).first()
54         assert type(categorylinks.cl_to) == str
55         assert type(categorylinks.cl_sortkey) == str
56         assert categorylinks.cl_sortkey == 'ALT BĂ„RNBAD'