File: test_site.py

package info (click to toggle)
mkdocs-test 0.6.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 436 kB
  • sloc: python: 938; sh: 34; makefile: 5
file content (78 lines) | stat: -rw-r--r-- 1,731 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"""
Testing the project

(C) Laurent Franceschetti 2024
"""


import pytest

from mkdocs_test import DocProject
from mkdocs_test.common import h1, h2, h3

from .hooks import MY_VARIABLES




def test_pages():
    project = DocProject()
    project.build(strict=True)

    h1(f"Testing project: {project.config.site_name}")

    # did not fail
    return_code = project.build_result.returncode
    assert not return_code, "Failed when it should not" 


    # ----------------
    # Test log
    # ----------------
    print(project.log)
    entry = project.find_entry(source='test')
    print("---")
    print("Confirming export:", entry.title)

    # ----------------
    # First page
    # ----------------
    pagename = 'index'
    h2(f"Testing: {pagename}")
    page = project.get_page(pagename)
    print("Plain text:", page.plain_text)

    # it has been altered
    assert page.markdown.strip() != page.source.markdown.strip()
    assert page.is_markdown_rendered() # check that markdown is rendered

    # null test
    assert "foobar" not in page.markdown

    # brute-force testing
    assert "hello world" in page.markdown.lower()

    # check that the values of the variables have been properly rendered:
    assert page.find_text(MY_VARIABLES['x'], header="Values")
    assert page.find_text(MY_VARIABLES['y'], header="Values")
    assert page.find_text(MY_VARIABLES['message'], header="Message")
    


    # ----------------
    # Second page
    # ----------------
    pagename = 'second'
    h2(f"Testing: {pagename}")
    page = project.get_page(pagename)
    assert page
    # not altered
    assert page.markdown.strip() == page.source.markdown.strip() 
    assert not page.is_markdown_rendered()