tests: use ddt to others classes
This commit is contained in:
@@ -19,65 +19,79 @@ from yamllint.format import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ddt.ddt
|
||||||
class TextToXMLTestCase(unittest.TestCase):
|
class TextToXMLTestCase(unittest.TestCase):
|
||||||
|
|
||||||
specials = {
|
|
||||||
'&': '&',
|
|
||||||
'<': '<',
|
|
||||||
'>': '>',
|
|
||||||
'"': '"',
|
|
||||||
"'": '''
|
|
||||||
}
|
|
||||||
|
|
||||||
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():
|
('&', '&'),
|
||||||
self.assertEqual(escape_xml(inp), out)
|
('<', '<'),
|
||||||
|
('>', '>'),
|
||||||
|
('"', '"'),
|
||||||
|
("'", '''),
|
||||||
|
)
|
||||||
|
@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
|
||||||
|
|||||||
Reference in New Issue
Block a user