def test_widget_field_prepare_data(self): """Prepare_data should return widget""" register.widget(TestWidget) # Create article and image for testing article = DispatchTestHelpers.create_article(self.client) image = DispatchTestHelpers.create_image(self.client) widget = TestWidget() testfield = WidgetField('Title', [TestWidgetSub]) field_data = { 'id': 'test-widget', 'data': { 'title': 'test title', 'description': 'test description', 'article': article.data['id'], 'image': image.data['id'] } } prepared_data = testfield.prepare_data(field_data) self.assertEqual(type(prepared_data), type(widget))
def test_widget_field_prepare_data_no_data(self): """Test the case where None data is passed to 'prepare_data' """ widget = WidgetField('Title', [TestWidgetSub]) data = None self.assertEqual(widget.prepare_data(data), None)
def test_get_all_widgets(self): """Get all the widgets associated with a field""" register.widget(TestWidget) register.widget(TestWidget2) register.widget(TestWidget3) # Create article and image for testing article = DispatchTestHelpers.create_article(self.client) image = DispatchTestHelpers.create_image(self.client) widget1 = TestWidget() widget2 = TestWidget2() widget3 = TestWidget3() testfield = WidgetField('Title', [TestWidgetSub]) field_data = { 'id': 'test-widget', 'data': { 'title': 'test title', 'description': 'test description', 'article': article.data['id'], 'image': image.data['id'], 'widget': { 'id': 'test-widget-2', 'data': { 'title': 'test title', 'description': 'test description', 'article': article.data['id'], 'image': image.data['id'], 'widget': { 'id': 'test-widget-3', 'data': { 'title': 'Test widget 3' } } } } } } json = testfield.to_json(field_data) prepared_data = testfield.prepare_data(field_data).data self.assertEqual(json['id'], 'test-widget') self.assertEqual(json['data']['widget']['id'], 'test-widget-2') self.assertEqual(json['data']['widget']['data']['widget']['id'], 'test-widget-3') self.assertEqual(prepared_data['widget']['id'], 'test-widget-2') self.assertEqual(prepared_data['widget']['data']['widget']['id'], 'test-widget-3')