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