• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rafalp / Misago / 14418668727

12 Apr 2025 10:16AM UTC coverage: 97.091% (-0.01%) from 97.101%
14418668727

Pull #1907

github

web-flow
Merge f810526b5 into 3f65034eb
Pull Request #1907: Embed YouTube and Vimeo videos

499 of 538 new or added lines in 13 files covered. (92.75%)

10 existing lines in 5 files now uncovered.

69688 of 71776 relevant lines covered (97.09%)

0.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.22
/misago/parser/tests/test_split_inline_token.py
1
from markdown_it.token import Token
1✔
2

3
from ..tokens import split_inline_token
1✔
4

5

6
def test_split_inline_token_splits_inline_token_by_single_tag(parse_to_raw_tokens):
1✔
7
    tokens = parse_to_raw_tokens("lorem\nipsum")
1✔
8
    assert tokens[1].type == "inline"
1✔
9

10
    split_tokens = split_inline_token(tokens[1], "br")
1✔
11
    assert len(split_tokens) == 3
1✔
12

13
    assert split_tokens[0].type == "inline"
1✔
14
    assert split_tokens[0].children[0].content == "lorem"
1✔
15
    assert split_tokens[1].type == "softbreak"
1✔
16
    assert split_tokens[2].type == "inline"
1✔
17
    assert split_tokens[2].children[0].content == "ipsum"
1✔
18

19

20
def test_split_inline_token_splits_inline_token_by_multiple_tags(parse_to_raw_tokens):
1✔
21
    tokens = parse_to_raw_tokens("lorem\nipsum\ndolor\nmet")
1✔
22
    assert tokens[1].type == "inline"
1✔
23

24
    split_tokens = split_inline_token(tokens[1], "br")
1✔
25
    assert len(split_tokens) == 7
1✔
26

27
    assert split_tokens[0].type == "inline"
1✔
28
    assert split_tokens[0].children[0].content == "lorem"
1✔
29
    assert split_tokens[1].type == "softbreak"
1✔
30
    assert split_tokens[2].type == "inline"
1✔
31
    assert split_tokens[2].children[0].content == "ipsum"
1✔
32
    assert split_tokens[3].type == "softbreak"
1✔
33
    assert split_tokens[4].type == "inline"
1✔
34
    assert split_tokens[4].children[0].content == "dolor"
1✔
35
    assert split_tokens[5].type == "softbreak"
1✔
36
    assert split_tokens[6].type == "inline"
1✔
37
    assert split_tokens[6].children[0].content == "met"
1✔
38

39

40
def test_split_inline_token_strips_spaces(parse_to_raw_tokens):
1✔
41
    tokens = parse_to_raw_tokens("lorem @ipsum dolor")
1✔
42
    assert tokens[1].type == "inline"
1✔
43

44
    split_tokens = split_inline_token(tokens[1], "misago-mention")
1✔
45
    assert len(split_tokens) == 3
1✔
46

47
    assert split_tokens[0].type == "inline"
1✔
48
    assert split_tokens[0].children[0].content == "lorem"
1✔
49
    assert split_tokens[1].type == "mention"
1✔
50
    assert split_tokens[2].type == "inline"
1✔
51
    assert split_tokens[2].children[0].content == "dolor"
1✔
52

53

54
def test_split_inline_token_strips_softbreaks(parse_to_raw_tokens):
1✔
NEW
55
    tokens = parse_to_raw_tokens("lorem \n @ipsum \n dolor")
×
NEW
56
    assert tokens[1].type == "inline"
×
57

NEW
58
    split_tokens = split_inline_token(tokens[1], "misago-mention")
×
NEW
59
    assert len(split_tokens) == 3
×
60

NEW
61
    assert split_tokens[0].type == "inline"
×
NEW
62
    assert split_tokens[0].children[0].content == "lorem"
×
NEW
63
    assert split_tokens[1].type == "mention"
×
NEW
64
    assert split_tokens[2].type == "inline"
×
NEW
65
    assert split_tokens[2].children[0].content == "dolor"
×
66

67

68
def test_split_inline_token_strips_empty_text_tokens(parse_to_raw_tokens):
1✔
69
    tokens = parse_to_raw_tokens("lorem   @ipsum    @dolor   met")
1✔
70
    assert tokens[1].type == "inline"
1✔
71

72
    split_tokens = split_inline_token(tokens[1], "misago-mention")
1✔
73
    assert len(split_tokens) == 4
1✔
74

75
    assert split_tokens[0].type == "inline"
1✔
76
    assert split_tokens[0].children[0].content == "lorem"
1✔
77
    assert split_tokens[1].type == "mention"
1✔
78
    assert split_tokens[2].type == "mention"
1✔
79
    assert split_tokens[3].type == "inline"
1✔
80
    assert split_tokens[3].children[0].content == "met"
1✔
81

82

83
def test_split_inline_token_strips_softbreaks(parse_to_raw_tokens):
1✔
84
    tokens = parse_to_raw_tokens("lorem   @ipsum\n@dolor   met")
1✔
85
    assert tokens[1].type == "inline"
1✔
86

87
    split_tokens = split_inline_token(tokens[1], "misago-mention")
1✔
88
    assert len(split_tokens) == 4
1✔
89

90
    assert split_tokens[0].type == "inline"
1✔
91
    assert split_tokens[0].children[0].content == "lorem"
1✔
92
    assert split_tokens[1].type == "mention"
1✔
93
    assert split_tokens[2].type == "mention"
1✔
94
    assert split_tokens[3].type == "inline"
1✔
95
    assert split_tokens[3].children[0].content == "met"
1✔
96

97

98
def test_split_inline_token_strips_hardbreaks(parse_to_raw_tokens):
1✔
99
    tokens = parse_to_raw_tokens("lorem   @ipsum  \n  @dolor   met")
1✔
100
    assert tokens[1].type == "inline"
1✔
101

102
    split_tokens = split_inline_token(tokens[1], "misago-mention")
1✔
103
    assert len(split_tokens) == 4
1✔
104

105
    assert split_tokens[0].type == "inline"
1✔
106
    assert split_tokens[0].children[0].content == "lorem"
1✔
107
    assert split_tokens[1].type == "mention"
1✔
108
    assert split_tokens[2].type == "mention"
1✔
109
    assert split_tokens[3].type == "inline"
1✔
110
    assert split_tokens[3].children[0].content == "met"
1✔
111

112

113
def test_split_inline_token_replaces_split_inline_tags(parse_to_raw_tokens):
1✔
114
    tokens = parse_to_raw_tokens("lorem   [b] [u]@ipsum  \n  @dolor[/u] [/b]   met")
1✔
115
    assert tokens[1].type == "inline"
1✔
116

117
    split_tokens = split_inline_token(tokens[1], "misago-mention")
1✔
118
    assert len(split_tokens) == 4
1✔
119

120
    assert split_tokens[0].type == "inline"
1✔
121
    assert split_tokens[0].children[0].content == "lorem   [b] [u]"
1✔
122
    assert split_tokens[1].type == "mention"
1✔
123
    assert split_tokens[2].type == "mention"
1✔
124
    assert split_tokens[3].type == "inline"
1✔
125
    assert split_tokens[3].children[0].content == "[/u] [/b]   met"
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc