tests: use ddt to others classes

pull/442/head
QuentinN42 3 years ago
parent f0000a1828
commit fba5b70d46
No known key found for this signature in database
GPG Key ID: 2CD7D563712B3A50

@ -19,65 +19,79 @@ from yamllint.format import (
) )
@ddt.ddt
class TextToXMLTestCase(unittest.TestCase): class TextToXMLTestCase(unittest.TestCase):
specials = {
'&': '&',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&apos;'
}
def test_letters_chars(self): def test_letters_chars(self):
txt = string.ascii_letters txt = string.ascii_letters
self.assertEqual(escape_xml(txt), txt) self.assertEqual(escape_xml(txt), txt)
def test_specials_chars(self): @ddt.data(
for inp, out in self.specials.items(): ('&', '&amp;'),
self.assertEqual(escape_xml(inp), out) ('<', '&lt;'),
('>', '&gt;'),
('"', '&quot;'),
("'", '&apos;'),
)
@ddt.unpack
def test_specials_chars(self, inp, out):
self.assertEqual(escape_xml(inp), out)
@ddt.ddt
class CodeClimateSeverityTestCase(unittest.TestCase): class CodeClimateSeverityTestCase(unittest.TestCase):
expected = { @ddt.data(
None: "info", (None, "info"),
'warning': "minor", ('warning', "minor"),
'error': "major", ('error', "major"),
0: "info", (0, "info"),
1: "minor", (1, "minor"),
2: "major", (2, "major"),
} )
@ddt.unpack
def test_specials_chars(self): def test_specials_chars(self, inp, out):
for inp, out in self.expected.items(): self.assertEqual(severity_from_level(inp), out)
self.assertEqual(severity_from_level(inp), out)
@ddt.ddt
class FormaterTestCase(unittest.TestCase): class FormaterTestCase(unittest.TestCase):
sublcasses = {
"parsable": ParsableFormater,
"github": GithubFormater,
"colored": ColoredFormater,
"standard": StandardFormater,
"json": JSONFormater,
"junitxml": JunitFormater,
"codeclimate": CodeclimateFormater
}
def test_get_formaters_names(self): def test_get_formaters_names(self):
self.assertEqual( self.assertEqual(
set(Formater.get_formaters_names()), set(Formater.get_formaters_names()),
set(self.sublcasses.keys()) {
"parsable",
"github",
"colored",
"standard",
"json",
"junitxml",
"codeclimate"
}
) )
def test_get_formater(self): @ddt.data(
for no_warn in [True, False]: ("parsable", ParsableFormater, True),
for name, cls in self.sublcasses.items(): ("github", GithubFormater, True),
res = Formater.get_formater(name, no_warn) ("colored", ColoredFormater, True),
self.assertTrue(isinstance(res, cls)) ("standard", StandardFormater, True),
self.assertEqual(res.no_warn, no_warn) ("json", JSONFormater, True),
("junitxml", JunitFormater, True),
("codeclimate", CodeclimateFormater, True),
("parsable", ParsableFormater, False),
("github", GithubFormater, False),
("colored", ColoredFormater, False),
("standard", StandardFormater, False),
("json", JSONFormater, False),
("junitxml", JunitFormater, False),
("codeclimate", CodeclimateFormater, False),
)
@ddt.unpack
def test_get_formater(self, name, cls, no_warn):
res = Formater.get_formater(name, no_warn)
self.assertTrue(isinstance(res, cls))
self.assertEqual(res.no_warn, no_warn)
def test_unknown_formater(self): def test_unknown_formater(self):
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
@ -200,3 +214,7 @@ class FormatersTestCase(unittest.TestCase):
inst.show_problems_for_all_files(inp), inst.show_problems_for_all_files(inp),
ret ret
) )
# TODO : test max level
# TODO : test junit

Loading…
Cancel
Save