import os
import unittest
import jc.parsers.kv_dup

THIS_DIR = os.path.dirname(os.path.abspath(__file__))


class MyTests(unittest.TestCase):

    def test_kv_dup_nodata(self):
        """
        Test the test kv file with no data
        """
        self.assertEqual(jc.parsers.kv_dup.parse('', quiet=True), {})

    def test_kv_dup_duplicate_keys(self):
        """
        Test input that contains duplicate keys
        """
        data = '''
duplicate_key: value1
another_key = foo
duplicate_key = value2
'''
        expected = {"duplicate_key":["value1","value2"],"another_key":["foo"]}
        self.assertEqual(jc.parsers.kv_dup.parse(data, quiet=True), expected)

    def test_kv_dup_null_values(self):
        """
        Test input that contains duplicate keys and null values
        """
        data = '''
normal_key: "hello world"
no_val
some_vals = 1
some_vals
some_vals:3
'''
        expected = {"normal_key":["hello world"],"no_val":[""],"some_vals":["1","","3"]}
        self.assertEqual(jc.parsers.kv_dup.parse(data, quiet=True), expected)


if __name__ == '__main__':
    unittest.main()