예제 #1
0
 def test_get_target(self):
     assert dactyl_build.get_target(None) == {"name": "test_target"}
     assert dactyl_build.get_target("conditionals") == {
         "name": "conditionals",
         "display_name": "Conditional Text Target"
     }
     assert dactyl_build.get_target({"name": "runtime_target"}) == {
         "name": "runtime_target"
     }
예제 #2
0
 def test_get_pages(self):
     assert dactyl_build.get_pages(dactyl_build.get_target("test_target"),
                                   False) == [{
                                       'name': 'filters_page',
                                       'category': 'Filters',
                                       'filters': ['mock_filter'],
                                       'targets': ['test_target'],
                                       'html': 'filters_page.html'
                                   }, {
                                       'name': 'test_page',
                                       'category': 'Tests',
                                       'html': 'test.html',
                                       'targets': ['test_target']
                                   }]
예제 #3
0
def check_all_pages(target=None):
    """Reads all pages for a target and checks them for style."""
    target = dactyl_build.get_target(target)
    pages = dactyl_build.get_pages(target)

    pp_env = dactyl_build.setup_pp_env()

    print("Style Checker - checking all pages in target %s" % target["name"])

    style_issues = []
    for page in pages:
        if "md" not in page:
            # Not a doc page, move on
            continue
        logger.info("Checking page %s" % page["name"])
        page_issues = []
        html = dactyl_build.parse_markdown(page, pages=pages, target=target)
        soup = BeautifulSoup(html, "html.parser")

        overrides = get_overrides(soup)

        content_elements = [
            "p", "li", "a", "em", "strong", "th", "td", "h1", "h2", "h3", "h4",
            "h5", "h6"
        ]
        for el in soup.descendants:
            if (type(el) == NavigableString
                    and el.parent.name in content_elements
                    and str(el).strip()):
                passage = str(el).strip()
                passage_issues = check_passage(passage, overrides)
                if passage_issues:
                    page_issues += passage_issues
                #print("'%s' (%s)" % (el, el.parent.name))
        # for el in soup.find_all(content_elements):
        #     for passage in el.stripped_strings:
        #         passage_issues = check_passage(passage, overrides)
        #         if passage_issues:
        #             page_issues += passage_issues

        if page_issues:
            style_issues.append((page["name"], page_issues))

    return style_issues
예제 #4
0
 def test_es_index_name(self):
     test_target = dactyl_build.get_target("es_index_test_target")
     dactyl_build.config["es_index_fields"] = ["foo1", "foo2"]
     dactyl_build.config["es_index_separator"] = "--"
     assert dactyl_build.es_index_name(
         test_target) == "Foo_Value_1--Foo_Value_TWOOOO"
예제 #5
0
 def test_get_filters_for_page(self):
     # Please note: due to the mock setup for unit testing, this function will always return an empty set.  Refactoring is recommended to verify the remaining functionality for this method.
     assert dactyl_build.get_filters_for_page(
         dactyl_build.config["pages"][0],
         dactyl_build.get_target("filters_target")) == set()