from axiom.store import Store
from axiom.dependency import installOn
from nevow.livetrial.testcase import TestCase
from nevow.athena import expose
from xmantissa import prefs
class _PrefMixin(object):
def getWidgetDocument(self):
s = Store()
self.dpc = prefs.DefaultPreferenceCollection(store=s)
installOn(s, self.dpc)
f = prefs.PreferenceCollectionFragment(self.dpc)
class Tab:
name = ''
children = ()
f.tab = Tab
f.setFragmentParent(self)
return f
class GeneralPrefs(_PrefMixin, TestCase):
"""
Test case which renders L{xmantissa.ixmantissa.DefaultPreferenceCollection}
and ensures that values changed client-side are correctly persisted
"""
jsClass = u'Mantissa.Test.GeneralPrefs'
def checkPersisted(self, itemsPerPage, timezone):
"""
Assert that our preference collection has had its C{itemsPerPage}
and C{timezone} attributes set to C{itemsPerPage} and C{timezone}.
Called after the deferred returned by the liveform controller's
C{submit} method has fired
"""
self.assertEquals(self.dpc.itemsPerPage, itemsPerPage)
self.assertEquals(self.dpc.timezone, timezone)
expose(checkPersisted)
class PrefCollection(_PrefMixin, TestCase):
"""
Test case which renders L{xmantissa.ixmantissa.DefaultPreferenceCollection}
and makes sure that the form appears after submit.
"""
jsClass = u'Mantissa.Test.PrefCollectionTestCase'
syntax highlighted by Code2HTML, v. 0.9.1