summaryrefslogtreecommitdiff
path: root/tests/test_analyze_lexer.py
blob: 1d80bb0189f53fc6d51cd55f4f4d634a34d354dc (plain)
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
# -*- coding: utf-8 -*-
"""
    Pygments basic API tests
    ~~~~~~~~~~~~~~~~~~~~~~~~

    :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
"""

import random
from io import StringIO, BytesIO
from os import path

import pytest

from pygments import lexers, formatters, lex, format

TESTDIR = path.dirname(path.abspath(__file__))

def _guess_lexer_for_file(filename):
    return lexers.guess_lexer(open(path.join(TESTDIR, 'examplefiles', filename), 'r', encoding='utf-8').read())

@pytest.mark.skip(reason="This is identified as T-SQL")
def test_guess_lexer_fsharp():
    l = _guess_lexer_for_file('Deflate.rs')
    assert l.__class__.__name__ == 'FSharpLexer'

def test_guess_lexer_brainfuck():
    l = lexers.guess_lexer(">>[-]<<[->>+<<]")
    assert l.__class__.__name__ == 'BrainfuckLexer'

def test_guess_lexer_singularity():
    l = _guess_lexer_for_file('Singularity')
    assert l.__class__.__name__ == 'SingularityLexer'

@pytest.mark.skip(reason="This is identified as MIME")
def test_guess_lexer_matlab():
    l = lexers.guess_lexer(r'A \ B')
    assert l.__class__.__name__ == 'OctaveLexer'

@pytest.mark.skip(reason="This is identified as Python")
def test_guess_lexer_hybris():
    l = _guess_lexer_for_file('hybris_File.hy')
    assert l.__class__.__name__ == 'HybrisLexer'

def test_guess_lexer_forth():
    l = _guess_lexer_for_file('demo.frt')
    assert l.__class__.__name__ == 'ForthLexer'

def test_guess_lexer_modula2():
    l = _guess_lexer_for_file('modula2_test_cases.def')
    assert l.__class__.__name__ == 'Modula2Lexer'

def test_guess_lexer_unicon():
    l = _guess_lexer_for_file('example.icn')
    assert l.__class__.__name__ == 'UcodeLexer'

def test_guess_lexer_ezhil():
    l = _guess_lexer_for_file('ezhil_primefactors.n')
    assert l.__class__.__name__ == 'EzhilLexer'