Source code for yawf.tests.message_specs

from django.test import TestCase

from yawf.messages.spec import MessageSpec
from yawf.messages.common import message_spec_fabric

__all__ = ('MessageSpecsTestCase',)


[docs]class MessageSpecsTestCase(TestCase):
[docs] def test_grouping(self): class Spec1(MessageSpec): id = 'edit' self.assertFalse(Spec1().is_grouped) class SpecWithGrouping(MessageSpec): id = 'edit__personality__name' self.assertTrue(SpecWithGrouping().is_grouped)
[docs] def test_without_id(self): class WrongSpec(MessageSpec): verb = 'push me!' self.assertRaises(ValueError, WrongSpec)
[docs] def test_validator(self): class CustomValidator: __init__ = lambda self, data: None is_valid = lambda self: True cleaned_data = {'buz': 'fuz'} class Spec(MessageSpec): id = 'test' validator_cls = CustomValidator v = Spec().validator_cls({}) self.assertTrue(v.is_valid()) self.assertItemsEqual( v.cleaned_data, {'buz': 'fuz'}) class Spec2(Spec): class Validator: __init__ = lambda self, data: None is_valid = lambda self: True cleaned_data = {'foo': 'bar'} v = Spec2().validator_cls({}) self.assertTrue(v.is_valid()) self.assertItemsEqual( v.cleaned_data, {'foo': 'bar'})
[docs] def test_repr(self): class SpecWithoutVerb(MessageSpec): id = 'foo' self.assertEqual(unicode(SpecWithoutVerb()), 'foo') class SpecWithVerb(SpecWithoutVerb): verb = 'foobar' self.assertEqual(unicode(SpecWithVerb()), 'foobar')
[docs] def test_fabric(self): spec = message_spec_fabric(id='cancel') self.assertEqual(spec.id, 'cancel') self.assertTrue(isinstance(spec, MessageSpec))