オレオレ Test モジュール の続き。 fixture が使えるように。 login 関連と manage.py の flush, loaddata, reset 相当を。 ( source ) login 関連は Django 0.97-pre でないとこのようには動きません。
>>> from doctests import Test
>>> t = Test()
>>> t.refresh_data("blog", verbosity=1)
Reset databases...
michilu.blog.models
>>> t.refresh_data(app_label=["blog", "doc"], fixtures="utils/fixtures/empty.xml", verbosity=1)
Reset databases...
michilu.blog.models
Loading 'utils/fixtures/empty' fixtures...
Installing xml fixture 'utils/fixtures/empty' from absolute path.
No fixtures found.
>>> t = Test(fixtures=["nothing.xml", "utils/fixtures/empty.xml"])
>>> t.fixtures
['nothing.xml', 'utils/fixtures/empty.xml']
>>> t.refresh_data(verbosity=1)
Reset databases...
django.contrib.admin.models
django.contrib.auth.models
django.contrib.contenttypes.models
django.contrib.sessions.models
django.contrib.sites.models
django.contrib.comments.models
michilu.blog.models
Loading 'nothing' fixtures...
Loading 'utils/fixtures/empty' fixtures...
Installing xml fixture 'utils/fixtures/empty' from absolute path.
No fixtures found.
>>> from doctests import flush, loaddata, reset
>>> flush(verbosity=1)
Loading 'initial_data' fixtures...
No fixtures found.
>>> assert(t.logined == None)
>>> option = dict(\
auth=dict(username="test", password="secret"),\
)
>>> t = Test(**option)
>>> t.logined
False
>>> loaddata("utils/fixtures/auth.json", verbosity=1)
Loading 'utils/fixtures/auth' fixtures...
Installing json fixture 'utils/fixtures/auth' from absolute path.
Installed 46 object(s) from 1 fixture(s)
>>> t = Test(**option)
>>> t.logined
True
>>> t.logout()
>>> assert(t.logined == None)
>>> t.login()
>>> t.logined
True
>>> t.logout()
>>> assert(t.logined == None)
>>> t.login(auth=dict(username="test", password="none"))
>>> t.logined
False
>>> reset(verbosity=1)
Reset databases...
django.contrib.admin.models
django.contrib.auth.models
django.contrib.contenttypes.models
django.contrib.sessions.models
django.contrib.sites.models
django.contrib.comments.models
michilu.blog.models
>>> flush()
