def test_serialize(self): block = EmbedBlock(required=False) block_val = EmbedValue('http://www.example.com/foo') serialized_val = block.get_prep_value(block_val) self.assertEqual(serialized_val, 'http://www.example.com/foo') serialized_empty_val = block.get_prep_value(None) self.assertEqual(serialized_empty_val, '')
def test_clean(self): required_block = EmbedBlock() nonrequired_block = EmbedBlock(required=False) # a valid EmbedValue should return the same value on clean cleaned_value = required_block.clean(EmbedValue('http://www.example.com/foo')) self.assertIsInstance(cleaned_value, EmbedValue) self.assertEqual(cleaned_value.url, 'http://www.example.com/foo') cleaned_value = nonrequired_block.clean(EmbedValue('http://www.example.com/foo')) self.assertIsInstance(cleaned_value, EmbedValue) self.assertEqual(cleaned_value.url, 'http://www.example.com/foo') # None should only be accepted for nonrequired blocks cleaned_value = nonrequired_block.clean(None) self.assertEqual(cleaned_value, None) with self.assertRaises(ValidationError): required_block.clean(None)
def test_render_form(self): """ The form field for an EmbedBlock should be a text input containing the URL """ block = EmbedBlock() form_html = block.render_form(EmbedValue('http://www.example.com/foo'), prefix='myembed') self.assertIn('<input ', form_html) self.assertIn('value="http://www.example.com/foo"', form_html)
def test_default(self): block1 = EmbedBlock() self.assertEqual(block1.get_default(), None) block2 = EmbedBlock(default='') self.assertEqual(block2.get_default(), None) block3 = EmbedBlock(default=None) self.assertEqual(block3.get_default(), None) block4 = EmbedBlock(default='http://www.example.com/foo') self.assertIsInstance(block4.get_default(), EmbedValue) self.assertEqual(block4.get_default().url, 'http://www.example.com/foo') block5 = EmbedBlock(default=EmbedValue('http://www.example.com/foo')) self.assertIsInstance(block5.get_default(), EmbedValue) self.assertEqual(block5.get_default().url, 'http://www.example.com/foo')