コード例 #1
0
    def test_can_get_default_violations_values(self):
        config = Config()

        validator = Validator(None)

        values = validator.get_default_violations_values(config)

        expect(values).to_equal({})
コード例 #2
0
    def test_test_url_method(self):
        validator = Validator(None)

        expect(validator.test_url('the-url', Mock(status_code=200, url='the-url'))).to_equal(True)
        expect(validator.test_url('the-url', Mock(status_code=404))).to_equal(False)
        expect(validator.test_url('the-url', Mock(status_code=302))).to_equal(False)
        expect(validator.test_url('the-url', Mock(status_code=307))).to_equal(False)
        expect(validator.test_url('the-url-root', Mock(status_code=200, url='the-url-index'))).to_equal(False)

        callback_1 = Mock()
        callback_2 = Mock()
        expect(validator.test_url('the-url', Mock(status_code=404), callback_1, callback_2)).to_equal(False)
        expect(callback_1.call_count).to_equal(1)
        expect(callback_2.call_count).to_equal(0)

        callback_1 = Mock()
        callback_2 = Mock()
        expect(validator.test_url('the-url', Mock(status_code=302), callback_1, callback_2)).to_equal(False)
        expect(callback_1.call_count).to_equal(0)
        expect(callback_2.call_count).to_equal(1)

        callback_1 = Mock()
        callback_2 = Mock()
        expect(validator.test_url('the-url', Mock(status_code=307), callback_1, callback_2)).to_equal(False)
        expect(callback_1.call_count).to_equal(0)
        expect(callback_2.call_count).to_equal(1)
コード例 #3
0
    def test_test_url_method(self):
        validator = Validator(None)

        expect(validator.test_url("the-url", Mock(status_code=200, url="the-url"))).to_equal(True)
        expect(validator.test_url("the-url", Mock(status_code=404))).to_equal(False)
        expect(validator.test_url("the-url", Mock(status_code=302))).to_equal(False)
        expect(validator.test_url("the-url", Mock(status_code=307))).to_equal(False)
        expect(validator.test_url("the-url-root", Mock(status_code=200, url="the-url-index"))).to_equal(False)

        callback_1 = Mock()
        callback_2 = Mock()
        expect(validator.test_url("the-url", Mock(status_code=404), callback_1, callback_2)).to_equal(False)
        expect(callback_1.call_count).to_equal(1)
        expect(callback_2.call_count).to_equal(0)

        callback_1 = Mock()
        callback_2 = Mock()
        expect(validator.test_url("the-url", Mock(status_code=302), callback_1, callback_2)).to_equal(False)
        expect(callback_1.call_count).to_equal(0)
        expect(callback_2.call_count).to_equal(1)

        callback_1 = Mock()
        callback_2 = Mock()
        expect(validator.test_url("the-url", Mock(status_code=307), callback_1, callback_2)).to_equal(False)
        expect(callback_1.call_count).to_equal(0)
        expect(callback_2.call_count).to_equal(1)
コード例 #4
0
    def test_will_call_reviewer_add_fact(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=[],
        )
        reviewer.add_fact = Mock()

        validator = Validator(reviewer)
        validator.add_fact("random.fact", "value")
        reviewer.add_fact.assert_called_once_with("random.fact", "value")
コード例 #5
0
    def test_will_call_reviewer_add_violation(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=[]
        )
        reviewer.add_violation = Mock()

        validator = Validator(reviewer)
        validator.add_violation('random.violation', 'random', 0)
        reviewer.add_violation.assert_called_once_with('random.violation', 'random', 0)
コード例 #6
0
    def test_can_rebase(self):
        page = PageFactory.create(url='http://globoi.com/test/index.html')

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

        validator = Validator(reviewer)

        expect(validator.rebase('index.png')).to_equal('http://globoi.com/test/index.png')
        expect(validator.rebase('/index.png')).to_equal('http://globoi.com/index.png')
コード例 #7
0
    def test_can_rebase(self):
        page = PageFactory.create(url="http://globoi.com/test/index.html")

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

        validator = Validator(reviewer)

        expect(validator.rebase("index.png")).to_equal("http://globoi.com/test/index.png")
        expect(validator.rebase("/index.png")).to_equal("http://globoi.com/index.png")
コード例 #8
0
    def test_will_call_reviewer_add_fact(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=[]
        )
        reviewer.add_fact = Mock()

        validator = Validator(reviewer)
        validator.add_fact('random.fact', 'value')
        reviewer.add_fact.assert_called_once_with('random.fact', 'value')
コード例 #9
0
    def test_normalize_url_with_not_absoulte_url(self):
        page = PageFactory.create(url='http://globoi.com/test/index.html')

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

        validator = Validator(reviewer)

        url = validator.normalize_url('/metal.html')

        expect(url).to_equal('http://globoi.com/metal.html')
コード例 #10
0
    def test_will_call_reviewer_enqueue(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=[],
        )
        reviewer.enqueue = Mock()

        validator = Validator(reviewer)
        validator.enqueue("/")

        reviewer.enqueue.assert_called_once_with("/")
コード例 #11
0
    def test_will_call_reviewer_enqueue(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=[]
        )
        reviewer.enqueue = Mock()

        validator = Validator(reviewer)
        validator.enqueue('/')

        reviewer.enqueue.assert_called_once_with('/')
コード例 #12
0
    def test_normalize_url_with_not_absoulte_url(self):
        page = PageFactory.create(url="http://globoi.com/test/index.html")

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

        validator = Validator(reviewer)

        url = validator.normalize_url("/metal.html")

        expect(url).to_equal("http://globoi.com/metal.html")
コード例 #13
0
    def test_flush_method(self):
        validator = Validator(None)
        validator.enqueue = Mock()

        validator.flush()

        expect(validator.enqueue.call_count).to_equal(0)

        validator = Validator(None)
        validator.url_buffer = [1, 2, 3]
        validator.enqueue = Mock()

        validator.flush()

        validator.enqueue.assert_called_once_with([1, 2, 3])
コード例 #14
0
    def test_can_get_violation_pref(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 = {
            'page.title.size': {'default_value': 70},
        }

        validator = Validator(reviewer)

        page_title_size = validator.get_violation_pref('page.title.size')

        expect(page_title_size).to_equal(70)
コード例 #15
0
    def test_send_url(self):
        validator = Validator(Mock(config=Mock(MAX_ENQUEUE_BUFFER_LENGTH=1)))

        validator.flush = Mock()
        validator.test_url = Mock(return_value=True)

        expect(len(validator.url_buffer)).to_equal(0)

        validator.send_url('the-url', 0.0, 'the-response')

        expect(len(validator.url_buffer)).to_equal(1)
        expect(validator.flush.call_count).to_equal(0)

        validator.send_url('the-url-2', 0.0, 'the-response-2')

        expect(len(validator.url_buffer)).to_equal(2)
        expect(validator.flush.call_count).to_equal(1)
コード例 #16
0
    def test_can_return_reviewer_info(self):
        review = ReviewFactory.create()

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

        validator = Validator(reviewer)

        expect(validator.page_uuid).to_equal(review.page.uuid)
        expect(validator.page_url).to_equal(review.page.url)
        expect(validator.config).to_equal(reviewer.config)
コード例 #17
0
    def test_send_url(self):
        validator = Validator(Mock(config=Mock(MAX_ENQUEUE_BUFFER_LENGTH=1)))

        validator.flush = Mock()
        validator.test_url = Mock(return_value=True)

        expect(len(validator.url_buffer)).to_equal(0)

        validator.send_url("the-url", 0.0, "the-response")

        expect(len(validator.url_buffer)).to_equal(1)
        expect(validator.flush.call_count).to_equal(0)

        validator.send_url("the-url-2", 0.0, "the-response-2")

        expect(len(validator.url_buffer)).to_equal(2)
        expect(validator.flush.call_count).to_equal(1)
コード例 #18
0
    def test_normalize_url_with_invalid_url(self):
        validator = Validator(None)
        url = validator.normalize_url("http://]globo.com")

        expect(url).to_be_null()
コード例 #19
0
    def test_normalize_url_with_valid_url(self):
        validator = Validator(None)
        url = validator.normalize_url("http://globo.com")

        expect(url).to_equal("http://globo.com")
コード例 #20
0
    def test_can_encode_content(self):
        validator = Validator(None)
        content = u"random content"
        gziped_content = validator.to_gzip(content)

        expect(content).to_equal(gziped_content.decode("zip"))
コード例 #21
0
    def test_normalize_url_with_invalid_url(self):
        validator = Validator(None)
        url = validator.normalize_url('http://]globo.com')

        expect(url).to_be_null()
コード例 #22
0
 def test_is_relative(self):
     validator = Validator(None)
     expect(validator.is_absolute("/index.html")).to_be_false()
コード例 #23
0
    def test_can_encode_content(self):
        validator = Validator(None)
        content = u'random content'
        gziped_content = validator.to_gzip(content)

        expect(content).to_equal(gziped_content.decode('zip'))
コード例 #24
0
 def test_is_absolute(self):
     validator = Validator(None)
     expect(validator.is_absolute('http://globoi.com/index.html')).to_be_true()
コード例 #25
0
 def test_can_add_violation(self):
     mock_reviewer = Mock()
     Validator(mock_reviewer).add_violation('test', 'value', 100)
     mock_reviewer.add_violation.assert_called_once_with('test', 'value', 100)
コード例 #26
0
 def test_can_add_fact(self):
     mock_reviewer = Mock()
     Validator(mock_reviewer).add_fact('test', 10)
     mock_reviewer.add_fact.assert_called_once_with('test', 10)
コード例 #27
0
 def test_is_absolute(self):
     validator = Validator(None)
     expect(validator.is_absolute("http://globoi.com/index.html")).to_be_true()
コード例 #28
0
    def test_flush_method(self):
        validator = Validator(None)
        validator.enqueue = Mock()

        validator.flush()

        expect(validator.enqueue.call_count).to_equal(0)

        validator = Validator(None)
        validator.url_buffer = [1, 2, 3]
        validator.enqueue = Mock()

        validator.flush()

        validator.enqueue.assert_called_once_with([1, 2, 3])
コード例 #29
0
 def test_can_validate(self):
     expect(Validator(None).validate()).to_be_true()
コード例 #30
0
    def test_normalize_url_with_valid_url(self):
        validator = Validator(None)
        url = validator.normalize_url('http://globo.com')

        expect(url).to_equal('http://globo.com')
コード例 #31
0
 def test_is_relative(self):
     validator = Validator(None)
     expect(validator.is_absolute('/index.html')).to_be_false()
コード例 #32
0
    def test_not_implemented_methods(self):
        validator = Validator(None)

        self.assertRaises(NotImplementedError, validator.broken_link_violation)
        self.assertRaises(NotImplementedError, validator.moved_link_violation)