2 # -*- coding: iso-8859-15 -*-
4 from sqlalchemy import schema
5 from sqlalchemy.engine import create_engine
6 from sqlalchemy.sql import select
7 from wrpylib import mwdb
11 engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=1')
12 # engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=0')
13 connection = engine.connect()
14 transaction = connection.begin()
18 def test_datatype_page():
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) == types.UnicodeType
23 assert type(page.page_restrictions) == types.StringType
24 assert type(page.page_touched) == types.UnicodeType
27 def test_datatype_revision():
28 metadata = schema.MetaData()
29 trevision = mwdb.revision_table(metadata)
30 revision = connect().execute(select([trevision], trevision.c.rev_id == 7586)).first()
31 assert type(revision.rev_comment) == types.UnicodeType
32 assert type(revision.rev_user_text) == types.UnicodeType
33 assert type(revision.rev_timestamp) == types.UnicodeType
36 def test_datatypes_text():
37 metadata = schema.MetaData()
38 ttext = mwdb.text_table(metadata)
39 text = connect().execute(select([ttext], ttext.c.old_id==7438)).first()
40 assert type(text.old_text) == types.UnicodeType
41 assert type(text.old_flags) == types.UnicodeType
42 assert text.old_flags == u'utf-8'
45 def test_datatype_user():
46 metadata = schema.MetaData()
47 tuser = mwdb.user_table(metadata)
48 user = connect().execute(select([tuser], tuser.c.user_id == 1)).first()
49 assert type(user.user_name) == types.UnicodeType
50 assert type(user.user_real_name) == types.UnicodeType
51 assert type(user.user_email) == types.UnicodeType
52 assert user.user_name == u'Philipp'
55 def test_datatype_categorylinks():
56 metadata = schema.MetaData()
57 tcategorylinks = mwdb.categorylinks_table(metadata)
58 categorylinks = connect().execute(select([tcategorylinks], tcategorylinks.c.cl_from == 609)).first()
59 assert type(categorylinks.cl_to) == types.UnicodeType
60 assert type(categorylinks.cl_sortkey) == types.UnicodeType
61 assert categorylinks.cl_sortkey == u'ALT BÄRNBAD'