def test_can_validate_heading_hierarchy(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.heading_hierarchy.size': {'default_value': 150}, } content = self.get_file('globo.html') 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 = HeadingHierarchyValidator(reviewer) # expecting no call of add_violation method validator.add_violation = Mock() validator.review.data = { 'page.heading_hierarchy': [ ('h1', 'Loren ipsum dolor sit amet'), ] } validator.validate() expect(validator.add_violation.called).to_be_false() # expecting calling add_violation for `page.heading_hierarchy.size` validator.add_violation = Mock() hh_list = [ ('h1', 'Loren ipsum dolor sit amet' * 10), ('h1', 'Loren ipsum dolor sit amet' * 10), ] validator.review.data = {'page.heading_hierarchy': hh_list} validator.validate() expect(validator.add_violation.called).to_be_true() validator.add_violation.assert_called_once_with( key='page.heading_hierarchy.size', value={ 'max_size': 150, 'hh_list': hh_list, }, points=40 )
def test_can_validate_heading_hierarchy(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.heading_hierarchy.size': { 'default_value': 150 }, } content = self.get_file('globo.html') 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 = HeadingHierarchyValidator(reviewer) # expecting no call of add_violation method validator.add_violation = Mock() validator.review.data = { 'page.heading_hierarchy': [ ('h1', 'Loren ipsum dolor sit amet'), ] } validator.validate() expect(validator.add_violation.called).to_be_false() # expecting calling add_violation for `page.heading_hierarchy.size` validator.add_violation = Mock() hh_list = [ ('h1', 'Loren ipsum dolor sit amet' * 10), ('h1', 'Loren ipsum dolor sit amet' * 10), ] validator.review.data = {'page.heading_hierarchy': hh_list} validator.validate() expect(validator.add_violation.called).to_be_true() validator.add_violation.assert_called_once_with( key='page.heading_hierarchy.size', value={ 'max_size': 150, 'hh_list': hh_list, }, points=40)