Beispiel #1
0
    def test_widget_field_initialization(self):
        """Should be able to initialize a new WidgetField"""

        register.widget(TestWidget)

        # Create article and image for testing
        article = DispatchTestHelpers.create_article(self.client)
        image = DispatchTestHelpers.create_image(self.client)

        testwidget = TestWidget()

        field_data = {
            'id': 'test-widget',
            'data': {
                'title': 'test title',
                'description': 'test description',
                'article': article.data['id'],
                'image': image.data['id']
            }
        }

        # a test Widget is now initialized, initilize a widget field to put the test Widget in
        testfield = WidgetField('Title', [TestWidgetSub])

        try:
            testfield.validate(field_data)
        except InvalidField:
            self.fail('Widget should be valid')
Beispiel #2
0
    def test_get_widget_from_widget_field(self):
        """Should be able to validate and get widget from widgetfield"""

        register.widget(TestWidget)

        testwidget = TestWidget()

        testfield = WidgetField('Title', [TestWidgetSub])

        # Create article and image for testing
        article = DispatchTestHelpers.create_article(self.client)
        image = DispatchTestHelpers.create_image(self.client)

        field_data = {
            'id': testwidget.id,
            'data': {
                'title': 'test title',
                'description': 'test description',
                'article': article.data['id'],
                'image': image.data['id']
            }
        }

        widget = testfield.get_widget(field_data['id'])

        self.assertEqual(type(widget), type(testwidget))
Beispiel #3
0
    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))
Beispiel #4
0
    def test_widget_to_json_no_data(self):
        """Using to_json with no data should return None for data"""

        data = None
        widget = WidgetField('Title', [TestWidgetSub])

        self.assertEqual(widget.to_json(data), None)
Beispiel #5
0
    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)
Beispiel #6
0
    def test_get_non_existant_widget(self):
        """Using get_widget with non-existant widget_id should fail"""

        widget = WidgetField('Title', [TestWidgetSub])

        try:
            widget.get_widget('this_is_not_a_widget_id')
            self.fail('WidgetNotFound Error should have been raised')
        except WidgetNotFound:
            pass
Beispiel #7
0
class Election2018(Widget):
    id = 'ams_election_2018'
    name = 'AMS Election 2018'
    template = 'widgets/frontpage/election_2018.html'
    zones = (FrontPage, )
    accepted_keywords = ('articles', )

    video_url = CharField('Facebook Live Video URL')

    top_story = WidgetField('Top Story', [TopStoryDefault, TopStoryLive],
                            required=True)
    sidebar = WidgetField('Sidebar', [TwitterFrontPage], required=True)
Beispiel #8
0
    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')
Beispiel #9
0
    def test_validate_widget_field_required_no_data(self):
        """Trying to validate invalid data (no data) should result in InvalidField error"""

        testfield = WidgetField('Title', [TestWidgetSub], required=True)

        # The data to be validated - valid data are basestrings
        field_data = ''

        try:
            testfield.validate(field_data)
            self.fail('Widget data was invalid - validate method should have raised Invalid Field')
        except InvalidField:
            pass
Beispiel #10
0
class FrontPageDefault(Widget):
    id = 'frontpage-default'
    name = 'Default Front Page'
    template = 'widgets/frontpage/default.html'
    zones = (FrontPage, )

    accepted_keywords = ('articles', )

    # top_story is unused as of now
    top_story = WidgetField('Top Story', [TopStoryDefault, TopStoryLive],
                            required=True)
    sidebar = WidgetField('Sidebar', [UpcomingEventsWidget, TwitterFrontPage],
                          required=True)
Beispiel #11
0
    def test_get_widget_json_no_widget(self):
        """Test the case where None widget is passed to 'get_widget_json' """
        register.widget(TestWidget)

        testwidget = TestWidget()

        testfield = WidgetField('Title', [TestWidgetSub])

        field_data = {'id': None}

        widget = testfield.get_widget_json(field_data)

        self.assertEqual(widget, None)
Beispiel #12
0
    def test_get_widget_from_widget_field_no_id(self):
        """Test the case where None id is passed to 'get_widget' """

        register.widget(TestWidget)

        testwidget = TestWidget()

        testfield = WidgetField('Title', [TestWidgetSub])

        field_data = {'id': None}

        widget = testfield.get_widget(field_data['id'])

        self.assertEqual(widget, None)
Beispiel #13
0
    def test_widget_field_invalid_data(self):
        """Initilaizing a widget field with invalid data should raise an error"""

        try:
            widget = WidgetField(6, [TestWidgetSub])
            self.fail('InvalidField Error should have been raised')
        except InvalidField:
            pass
Beispiel #14
0
    def test_validate_widget_field_no_id(self):
        """Trying to validate invalid data (no id) should result in InvalidField error"""

        testfield = WidgetField('Title', [TestWidgetSub])

        # The data to be validated - valid data are basestrings
        field_data = {
            'id': '',
            'data': {
                'title': 'test title',
                'description': 'test description',
            }
        }

        try:
            testfield.validate(field_data)
            self.fail('Widget ID was invalid - validate method should have raised Invalid Field')
        except InvalidField:
            pass
Beispiel #15
0
class TestWidget2(Widget):
    id = 'test-widget-2'
    name = 'Test widget 2'
    template = 'widgets/test-widget.html'

    zones = [TestZone]

    title = CharField('Title 2')
    description = TextField('Description 2')
    article = ArticleField('Featured article 2')
    image = ImageField('Featured image 2')
    widget = WidgetField('Featured Widget 2', [TestWidgetSub])
Beispiel #16
0
class TestWidgetR(Widget):
    id = 'test-widget-r'
    name = 'Test Widget R'
    template = 'widget/test-widget.html'

    zones = [TestZone]

    title = CharField('Title', required=True)
    description = TextField('Description', required=True)
    article = ArticleField('Featured article', required=True)
    image = ImageField('Featured image', required=True)
    widget = WidgetField('Featured Widget', [TestWidgetSub], required=True)
Beispiel #17
0
    def test_widget_field_to_json(self):
        """Should be able to get to_json from field"""

        register.widget(TestWidget)

        # Create article and image for testing
        article = DispatchTestHelpers.create_article(self.client)
        image = DispatchTestHelpers.create_image(self.client)

        testfield = WidgetField('Title', [TestWidgetSub])

        field_data = {
            'id': 'test-widget',
            'data': {
                'title': 'test title',
                'description': 'test description',
                'article': article.data['id'],
                'image': image.data['id']
            }
        }

        json = testfield.to_json(field_data)

        self.assertEqual(json['id'], 'test-widget')