示例#1
0
    def test_can_get_default_violations_values(self):
        config = Config()
        config.BLACKLIST_DOMAIN = ['a.com']

        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=[])

        validator = BlackListValidator(reviewer)

        violations_values = validator.get_default_violations_values(config)

        expect(violations_values).to_include('blacklist.domains')

        expect(violations_values['blacklist.domains']).to_length(2)

        expect(violations_values['blacklist.domains']).to_be_like({
            'value':
            config.BLACKLIST_DOMAIN,
            'description':
            config.get_description('BLACKLIST_DOMAIN')
        })
示例#2
0
    def test_can_get_default_violations_values(self):
        config = Config()
        config.BLACKLIST_DOMAIN = ['a.com']

        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=[]
        )

        validator = BlackListValidator(reviewer)

        violations_values = validator.get_default_violations_values(config)

        expect(violations_values).to_include('blacklist.domains')

        expect(violations_values['blacklist.domains']).to_length(2)

        expect(violations_values['blacklist.domains']).to_be_like({
            'value': config.BLACKLIST_DOMAIN,
            'description': config.get_description('BLACKLIST_DOMAIN')
        })
示例#3
0
    def test_can_get_violation_definitions(self):
        reviewer = Mock()
        validator = BlackListValidator(reviewer)
        definitions = validator.get_violation_definitions()

        expect(definitions).to_length(1)
        expect('blacklist.domains' in definitions).to_be_true()

        expect(validator.get_blacklist_parsed_value(['http://a.com'])).to_equal(
            '<a href="http://a.com" target="_blank">Link #0</a>'
        )
示例#4
0
    def test_can_get_violation_definitions(self):
        reviewer = Mock()
        validator = BlackListValidator(reviewer)
        definitions = validator.get_violation_definitions()

        expect(definitions).to_length(1)
        expect('blacklist.domains' in definitions).to_be_true()

        expect(validator.get_blacklist_parsed_value([
            'http://a.com'
        ])).to_equal('<a href="http://a.com" target="_blank">Link #0</a>')
示例#5
0
    def test_can_get_violation_definitions(self):
        reviewer = Mock()
        validator = BlackListValidator(reviewer)
        definitions = validator.get_violation_definitions()

        expect(definitions).to_length(1)
        expect('blacklist.domains' in definitions).to_be_true()

        blacklist_message = validator.get_blacklist_message(['http://a.com'])

        expect(blacklist_message).to_equal(
            'Some links are blacklisted: <a href="http://a.com" '
            'target="_blank">Link #0</a>'
        )
示例#6
0
    def test_can_validate(self):
        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=[],
            cache=self.sync_cache
        )

        reviewer.violation_definitions = {
            'blacklist.domains': {'default_value':  ['a.com']},
        }

        content = '<a href="http://a.com/test1">A</a>' \
                  '<a href="http://b.com/test2">B</a>'

        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 = BlackListValidator(reviewer)
        validator.review.data = {
            'page.all_links': [
                {'href': 'http://a.com/test1'}, {'href': 'http://b.com/test2'}
            ]
        }

        validator.add_violation = Mock()

        validator.validate()

        validator.add_violation.assert_called_once_with(
            points=100,
            key='blacklist.domains',
            value=['http://a.com/test1']
        )
示例#7
0
    def test_can_validate(self):
        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=[],
                            cache=self.sync_cache)

        reviewer.violation_definitions = {
            'blacklist.domains': {
                'default_value': ['a.com']
            },
        }

        content = '<a href="http://a.com/test1">A</a>' \
                  '<a href="http://b.com/test2">B</a>'

        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 = BlackListValidator(reviewer)
        validator.review.data = {
            'page.all_links': [{
                'href': 'http://a.com/test1'
            }, {
                'href': 'http://b.com/test2'
            }]
        }

        validator.add_violation = Mock()

        validator.validate()

        validator.add_violation.assert_called_once_with(
            points=100, key='blacklist.domains', value=['http://a.com/test1'])