View All Posts. MiCHiLU.com powered by Django ;-)

[Django]: オレオレ Test モジュール

オレオレ 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()
Fri, 22 Jun 2007 18:35:19 +0900 source edit
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.1 Japan License.
View All Posts. MiCHiLU.com powered by Django ;-)