File: test_file_loader.py

package info (click to toggle)
lookatme 2.5.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,416 kB
  • sloc: python: 3,497; sh: 291; makefile: 16
file content (131 lines) | stat: -rw-r--r-- 2,438 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
"""
Test the file loader built-in extension
"""


import pytest

import lookatme.config
import lookatme.contrib.file_loader
import lookatme.render.pygments
from tests.utils import assert_render, render_markdown

TEST_STYLE = {
    "style": "monokai",
    "headings": {
        "default": {
            "fg": "bold",
            "bg": "",
            "prefix": "|",
            "suffix": "|",
        },
    },
}


@pytest.fixture(autouse=True)
def file_loader_setup(tmpdir, mocker):
    mocker.patch.object(lookatme.config, "LOG")
    mocker.patch("lookatme.config.SLIDE_SOURCE_DIR", new=str(tmpdir))
    mocker.patch("lookatme.contrib.CONTRIB_MODULES", new=[
        lookatme.contrib.file_loader
    ])
    mocker.patch("lookatme.config.STYLE", new=TEST_STYLE)


def test_file_loader(tmpdir, mocker):
    """Test the built-in file loader extension
    """
    tmppath = tmpdir.join("test.py")
    tmppath.write("print('hello')")

    rendered = render_markdown(f"""
```file
path: {tmppath}
relative: false
```
    """)

    stripped_rows = [
        b'',
        b"print('hello')",
        b'',
        b'',
        b'',
    ]
    assert_render(stripped_rows, rendered)


def test_file_loader_with_transform(tmpdir, mocker):
    """Test the built-in file loader extension
    """
    tmppath = tmpdir.join("test.py")
    tmppath.write("""
Hello
Apples2
there
Apples3
there
Apples1
""")

    rendered = render_markdown(f"""
```file
path: {tmppath}
relative: false
transform: "grep -i apples | sort"
```
    """)

    stripped_rows = [
        b'',
        b"Apples1",
        b'Apples2',
        b'Apples3',
        b'',
        b'',
        b'',
    ]
    assert_render(stripped_rows, rendered)


def test_file_loader_relative(tmpdir, mocker):
    """Test the built-in file loader extension
    """
    tmppath = tmpdir.join("test.py")
    tmppath.write("print('hello')")

    rendered = render_markdown("""
```file
path: test.py
relative: true
```
    """)

    stripped_rows = [
        b'',
        b"print('hello')",
        b'',
        b'',
        b'',
    ]
    assert_render(stripped_rows, rendered)


def test_file_loader_not_found(mocker):
    """Test the built-in file loader extension
    """
    rendered = render_markdown("""
```file
path: does_not_exist.py
```
    """)

    stripped_rows = [
        b'',
        b"File not found",
        b'',
        b'',
        b'',
    ]
    assert_render(stripped_rows, rendered)