def test_validator(self):

        config = Config()

        page = PageFactory.create()

        reviewer = Reviewer(
            api_url='http://localhost:2368',
            page_uuid=page.uuid,
            page_url=page.url,
            page_score=0.0,
            config=config,
            validators=[]
        )

        url1 = 'http://globo.com/b.html'
        url2 = 'http://globo.com/a.html'

        content = '<html><a href="%s">Test</a><a href="%s">Test</a></html>' % (
            url1, url2)

        result = {
            'url': page.url,
            'status': 200,
            'content': content,
            'html': lxml.html.fromstring(content)
        }
        reviewer.responses[page.url] = result
        reviewer.get_response = Mock(return_value=result)

        validator = LinkWithRedirectValidator(reviewer)

        validator.add_violation = Mock()

        status_307 = Mock(status_code=307, text='Temporary Redirect')
        status_302 = Mock(status_code=302, text='Found')

        validator.review.data = {
            'page.links': [
                (url1, status_307),
                (url2, status_302)
            ]
        }

        validator.validate()

        expect(validator.add_violation.call_args_list).to_include(
            call(
                key='link.redirect.307',
                value=307,
                points=10
            ))

        expect(validator.add_violation.call_args_list).to_include(
            call(
                key='link.redirect.302',
                value=302,
                points=10
            ))
Example #2
0
    def test_can_get_violation_definitions(self):
        reviewer = Mock()
        validator = LinkWithRedirectValidator(reviewer)

        definitions = validator.get_violation_definitions()

        expect(definitions).to_length(2)
        expect('link.redirect.302' in definitions).to_be_true()
        expect('link.redirect.307' in definitions).to_be_true()
    def test_can_get_violation_definitions(self):
        reviewer = Mock()
        validator = LinkWithRedirectValidator(reviewer)

        definitions = validator.get_violation_definitions()

        expect(definitions).to_length(2)
        expect('link.redirect.302' in definitions).to_be_true()
        expect('link.redirect.307' in definitions).to_be_true()
Example #4
0
    def test_validator(self):

        config = Config()

        page = PageFactory.create()

        reviewer = Reviewer(api_url='http://localhost:2368',
                            page_uuid=page.uuid,
                            page_url=page.url,
                            page_score=0.0,
                            config=config,
                            validators=[])

        url1 = 'http://globo.com/b.html'
        url2 = 'http://globo.com/a.html'

        content = '<html><a href="%s">Test</a><a href="%s">Test</a></html>' % (
            url1, url2)

        result = {
            'url': page.url,
            'status': 200,
            'content': content,
            'html': lxml.html.fromstring(content)
        }
        reviewer.responses[page.url] = result
        reviewer.get_response = Mock(return_value=result)

        validator = LinkWithRedirectValidator(reviewer)

        validator.add_violation = Mock()

        status_307 = Mock(status_code=307, text='Temporary Redirect')
        status_302 = Mock(status_code=302, text='Found')

        validator.review.data = {
            'page.links': [(url1, status_307), (url2, status_302)]
        }

        validator.validate()

        expect(validator.add_violation.call_args_list).to_include(
            call(key='link.redirect.307', value=307, points=10))

        expect(validator.add_violation.call_args_list).to_include(
            call(key='link.redirect.302', value=302, points=10))
    def test_can_get_violation_definitions(self):
        reviewer = Mock()
        validator = LinkWithRedirectValidator(reviewer)

        definitions = validator.get_violation_definitions()

        expect(definitions).to_length(2)
        expect('link.redirect.302' in definitions).to_be_true()
        expect('link.redirect.307' in definitions).to_be_true()

        link_with_redirect_message = validator.get_link_with_redirect_message(
            302
        )

        expect(link_with_redirect_message).to_equal(
            'Link with redirect, in most cases, should not be used. '
            'Redirects were found for link: 302.'
        )