From a1190998aef1bf403ee34c38c1a0fbd6291ac38b Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Wed, 19 Jan 2022 09:15:24 -0800 Subject: [PATCH] add jc and jc.lib tests --- tests/test_jc.py | 41 +++++++++++++++++++++++++++++++++++++++++ tests/test_lib.py | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 tests/test_jc.py create mode 100644 tests/test_lib.py diff --git a/tests/test_jc.py b/tests/test_jc.py new file mode 100644 index 00000000..60fce850 --- /dev/null +++ b/tests/test_jc.py @@ -0,0 +1,41 @@ +import unittest +from typing import Generator +import jc + + +class MyTests(unittest.TestCase): + def test_jc_parse_csv(self): + data = { + '': [], + 'a,b,c\n1,2,3': [{'a':'1', 'b':'2', 'c':'3'}] + } + + for test_data, expected_output in data.items(): + self.assertEqual(jc.parse('csv', test_data), expected_output) + + def test_jc_parse_csv_s_is_generator(self): + self.assertIsInstance(jc.parse('csv_s', 'a,b,c\n1,2,3'), Generator) + + def test_jc_parse_kv(self): + data = { + '': {}, + 'a=1\nb=2\nc=3': {'a':'1', 'b':'2', 'c':'3'} + } + + for test_data, expected_output in data.items(): + self.assertEqual(jc.parse('kv', test_data), expected_output) + + def test_jc_parser_mod_list_is_list(self): + self.assertIsInstance(jc.parser_mod_list(), list) + + def test_jc_parser_mod_list_contains_csv(self): + self.assertTrue('csv' in jc.parser_mod_list()) + + def test_jc_parser_mod_list_length(self): + self.assertGreaterEqual(len(jc.parser_mod_list()), 80) + + def test_jc_plugin_parser_mod_list_is_list(self): + self.assertIsInstance(jc.plugin_parser_mod_list(), list) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/tests/test_lib.py b/tests/test_lib.py new file mode 100644 index 00000000..ead0ef55 --- /dev/null +++ b/tests/test_lib.py @@ -0,0 +1,41 @@ +import unittest +from typing import Generator +import jc.lib + + +class MyTests(unittest.TestCase): + def test_jc_lib_parse_csv(self): + data = { + '': [], + 'a,b,c\n1,2,3': [{'a':'1', 'b':'2', 'c':'3'}] + } + + for test_data, expected_output in data.items(): + self.assertEqual(jc.lib.parse('csv', test_data), expected_output) + + def test_jc_lib_parse_csv_s_is_generator(self): + self.assertIsInstance(jc.lib.parse('csv_s', 'a,b,c\n1,2,3'), Generator) + + def test_jc_lib_parse_kv(self): + data = { + '': {}, + 'a=1\nb=2\nc=3': {'a':'1', 'b':'2', 'c':'3'} + } + + for test_data, expected_output in data.items(): + self.assertEqual(jc.lib.parse('kv', test_data), expected_output) + + def test_jc_lib_parser_mod_list_is_list(self): + self.assertIsInstance(jc.lib.parser_mod_list(), list) + + def test_jc_lib_parser_mod_list_contains_csv(self): + self.assertTrue('csv' in jc.lib.parser_mod_list()) + + def test_jc_lib_parser_mod_list_length(self): + self.assertGreaterEqual(len(jc.lib.parser_mod_list()), 80) + + def test_jc_lib_plugin_parser_mod_list_is_list(self): + self.assertIsInstance(jc.lib.plugin_parser_mod_list(), list) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file