def test_validate_konfiger_entries_with_case_sensitivity(self): kon = from_string(""" String=This is a string Number=215415245 """, False) kon.set_case_sensitivity(True) self.assertEqual(kon.is_case_sensitive(), True) # with self.assertRaises(FileNotFoundError) as context: # self.assertEqual(kon.get("STRING"), "This is a string") # self.assertTrue('file does not exists' in str(context.exception)) # with self.assertRaises(FileNotFoundError) as context: # self.assertEqual(kon.get("NUMBER"), "215415245") # self.assertTrue('file does not exists' in str(context.exception)) kon.set_case_sensitivity(False) self.assertEqual(kon.is_case_sensitive(), False) self.assertEqual(kon.get("STRING"), "This is a string") self.assertEqual(kon.get("NUMBER"), "215415245") self.assertEqual(kon.get("strING"), "This is a string") self.assertEqual(kon.get("nuMBer"), "215415245") self.assertEqual(kon.get("STRiNg"), "This is a string") self.assertEqual(kon.get("nUMbeR"), "215415245") self.assertEqual(kon.get("string"), "This is a string") self.assertEqual(kon.get("number"), "215415245")
def test_prev_and_current_cache(self): kon = from_string('') kon.put("Name", "Adewale") kon.put("Project", "konfiger") kon.put_int("Year", 2020) self.assertEqual(kon.get_int("Year"), 2020) self.assertEqual(kon.get("Project"), "konfiger") self.assertEqual(kon.get("Name"), "Adewale") self.assertEqual(kon.get_int("Year"), 2020) self.assertEqual(kon.current_cache_object["ckey"], "Name") self.assertEqual(kon.prev_cache_object["ckey"], "Year") self.assertEqual(kon.current_cache_object["cvalue"], "Adewale") self.assertEqual(kon.prev_cache_object["cvalue"], "2020") self.assertEqual(kon.get("Name"), "Adewale") self.assertEqual(kon.get("Name"), "Adewale") self.assertEqual(kon.get("Project"), "konfiger") self.assertEqual(kon.get("Name"), "Adewale") self.assertEqual(kon.get("Name"), "Adewale") self.assertEqual(kon.get("Name"), "Adewale") self.assertEqual(kon.current_cache_object["ckey"], "Project") self.assertEqual(kon.prev_cache_object["ckey"], "Name") self.assertEqual(kon.current_cache_object["cvalue"], "konfiger") self.assertEqual(kon.prev_cache_object["cvalue"], "Adewale")
def test_check_put_comment_in_the_konfiger_object(self): kon = from_string( 'Name:Adewale Azeez,//Project:konfiger,Date:April 24 2020', False, ':', ',') kon.put_comment("A comment at the end") self.assertEqual(str(kon).find("//:A comment") > -1, True)
def test_dissolve_an_object_into_konfiger_using_decorator(self): kon = from_string("") kon.dissolve(DecoratedEntries()) self.assertEqual(kon.get("Project"), "konfiger") self.assertEqual(kon.get("Platform"), "Cross Platform") self.assertEqual(kon.get("File"), "test.comment.inf") self.assertEqual(kon.get("Author"), "Adewale Azeez")
def test_dissolve_an_object_into_konfiger(self): kon = from_string("") kon.dissolve(Entries()) self.assertEqual(kon.get("project"), "konfiger") self.assertEqual(kon.get("platform"), "Cross Platform") self.assertEqual(kon.get("file"), "test.comment.inf") self.assertEqual(kon.get("author"), "Adewale Azeez")
def test_save_content_and_validate_saved_content(self): kon = from_string( "Name=Adewale Azeez,Date=April 24 2020,One=111,Two=222,Three=333", False, '=', ',') self.assertEqual(len(kon), 5) kon.save('test/konfiger.conf') kon2 = from_file('test/konfiger.conf', False, '=', ',') self.assertEqual(str(kon), str(kon)) self.assertEqual(len(kon2), 5)
def test_check_the_update_at_method(self): kon = from_string( "Name:Adewale Azeez,//Project:konfiger,Date:April 24 2020", False, ':', ',') self.assertEqual(kon.get("Date"), "April 24 2020") self.assertEqual(kon.get("Name"), "Adewale Azeez") kon.update_at(1, "12 BC") kon.update_at(0, "Thecarisma") self.assertEqual(kon.get("Date"), "12 BC") self.assertEqual(kon.get("Name"), "Thecarisma")
def test_remove_entry_and_validate_size(self): kon = from_string('One=111,Two=222,Three=333', True, '=', ',') kon.stream.error_tolerance(True) self.assertEqual(len(kon), 3) self.assertNotEqual(kon.get("Two"), None) self.assertEqual(kon.remove("Two"), "222") self.assertEqual(kon.get("Two"), None) self.assertEqual(len(kon), 2) self.assertEqual(kon.remove(0), "111") self.assertEqual(len(kon), 1) self.assertEqual(kon.get("Three"), "333")
def test_lazy_size(self): kon = from_string('One=111,Two=222,Three=333', True, '=', ',') self.assertEqual(kon.lazy_size(), 0) self.assertNotEqual(kon.lazy_size(), 3) self.assertEqual(kon.get("One"), "111") self.assertEqual(kon.lazy_size(), 1) self.assertEqual(kon.get("Two"), "222") self.assertEqual(kon.lazy_size(), 2) self.assertEqual(kon.get("Three"), "333") self.assertEqual(kon.lazy_size(), 3) self.assertEqual(kon.lazy_size(), len(kon))
def test_append_new_unparsed_entries_from_string_and_file(self): kon = from_string('') self.assertEqual(len(kon), 0) kon.append_string('Language=English') self.assertEqual(len(kon), 1) self.assertEqual(kon.get("Name"), None) self.assertNotEqual(kon.get("Name"), "Adewale Azeez") self.assertEqual(kon.get("Language"), "English") kon.append_file('test/test.config.ini') self.assertNotEqual(kon.get("Name"), None) self.assertEqual(kon.get("Name"), "Adewale Azeez")
def test_validate_konfiger_default_value_for_non_existing_key(self): kon = from_string('') self.assertEqual(kon.get("Name"), None) self.assertNotEqual(kon.get_string("Name"), None) self.assertEqual(kon.get_string("Name"), "") self.assertNotEqual(kon.get("Name", "Adewale Azeez"), None) self.assertEqual(kon.get("Name", "Adewale Azeez"), "Adewale Azeez") self.assertEqual(kon.get_boolean("CleanupOnClose"), False) self.assertNotEqual(kon.get_boolean("CleanupOnClose", True), False) self.assertEqual(kon.get_long("TheNumber"), 0) self.assertEqual(kon.get_long("TheNumber", 123), 123) self.assertEqual(kon.get_float("TheNumber"), 0.0) self.assertNotEqual(kon.get_float("TheNumber"), 0.1)
def test_complex_and_confusing_separator(self): kon = from_string( 'Occupation=Software En^gineergLocation=Ni^geriagState=La^gos', False, '=', 'g') self.assertEqual(len(kon), 3) self.assertEqual(str(kon).find("^g") > -1, True) for key, value in kon.entries(): self.assertEqual(value.find("^g") > -1, False) kon.set_separator('f') self.assertEqual(kon.get("Occupation"), "Software Engineer") kon.set_separator('\n') self.assertEqual(str(kon).find("^g") > -1, False) self.assertEqual(len(kon), 3) for key, value in kon.entries(): self.assertEqual(value.find("\\g") > -1, False)
def test_remove_entry_and_lazy_size(self): kon = from_string('One=111,Two=222,Three=333', True, '=', ',') self.assertEqual(kon.lazy_size(), 0) self.assertNotEqual(kon.lazy_size(), 3) self.assertNotEqual(kon.get("Two"), None) self.assertEqual(kon.lazy_size(), 2) self.assertEqual(kon.remove("Two"), "222") self.assertNotEqual(kon.lazy_size(), 2) self.assertEqual(kon.lazy_size(), 1) self.assertEqual(kon.get("Two"), None) self.assertEqual(kon.lazy_size(), 2) self.assertEqual(kon.remove(0), "111") self.assertEqual(kon.lazy_size(), 1) self.assertEqual(kon.get("Three"), "333") self.assertEqual(kon.lazy_size(), 1)
def test_validate_kon_string_stream_entries(self): kon = from_string( """ String=This is a string Number=215415245 Float=56556.436746 Boolean=True """, False) self.assertEqual(kon.get("String"), "This is a string") self.assertEqual(kon.get("Number"), "215415245") self.assertEqual(kon.get("Float"), "56556.436746") self.assertNotEqual(kon.get("Number"), "True") self.assertEqual(kon.get("Boolean"), "True") kon.put("String", "This is an updated string") self.assertEqual(kon.get("String"), "This is an updated string")
def test_validate_kon_get_returned_types(self): kon = from_string('') kon.put("One", kon) kon.put_long("Two", 123456789) kon.put_boolean("Bool", True) kon.put_float("Float", 123.56) kon.put_string("Dummy", "Noooooo 1") kon.put_string("Dummy2", "Noooooo 2") self.assertEqual(kon.get("Two"), "123456789") self.assertEqual(kon.get_long("Two"), 123456789) self.assertNotEqual(kon.get_long("Two"), "123456789") self.assertEqual(kon.get("Bool"), "True") self.assertEqual(kon.get_boolean("Two"), False) self.assertNotEqual(kon.get_boolean("Two"), True) self.assertNotEqual(kon.get_boolean("Two"), "True") self.assertEqual(kon.get("Float"), "123.56") self.assertEqual(kon.get_float("Float"), 123.56) self.assertNotEqual(kon.get_float("Float"), "123.56")