Added attribute checks when parsing wrmap.
[philipp/winterrodeln/wrpylib.git] / tests / test_sqlalchemy.py
1 #!/usr/bin/python2.7
2 # -*- coding: iso-8859-15 -*-
3 import types
4 from sqlalchemy import schema
5 from sqlalchemy.engine import create_engine
6 from sqlalchemy.sql import select
7 from wrpylib import mwdb
8
9
10 def connect():
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()
15     return connection
16
17
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
25
26
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
34
35
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'
43
44
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'
53
54  
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'
62