Completed
Pull Request — master (#2295)
by Mischa
01:52
created

LanguageDefinitionTest.test_external_coalang()   A

Complexity

Conditions 3

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
dl 0
loc 7
rs 9.4285
c 1
b 0
f 0
1
import unittest
2
3
from coalib.bearlib.languages.LanguageDefinition import LanguageDefinition
4
from coalib.settings.Section import Section
5
from coalib.settings.Setting import Setting
6
from coalib.misc.ContextManagers import make_temp
7
8
9
class LanguageDefinitionTest(unittest.TestCase):
10
11
    def setUp(self):
12
        self.section = Section("any")
13
        self.section.append(Setting("language", "CPP"))
14
15
    def test_nonexistant_file(self):
16
        self.section.append(Setting("language", "bullshit"))
17
18
        with self.assertRaises(FileNotFoundError):
19
            LanguageDefinition.from_section(self.section)
20
21
    def test_loading(self):
22
        uut = LanguageDefinition.from_section(self.section)
23
        self.assertEqual(list(uut["extensions"]), [".c", ".cpp", ".h", ".hpp"])
24
25
    def test_key_contains(self):
26
        uut = LanguageDefinition.from_section(self.section)
27
        self.assertIn("extensions", uut)
28
        self.assertNotIn("randomstuff", uut)
29
30
    def test_external_coalang(self):
31
        with make_temp() as coalang:
32
            with open(coalang, "w") as file:
33
                file.write('extensions = .lol, .ROFL')
34
            uut = LanguageDefinition("random_language", coalang_path=coalang)
35
            self.assertIn("extensions", uut)
36
            self.assertEqual(list(uut["extensions"]), [".lol", ".ROFL"])
37