update test code for testing config saver
import os
import unittest
+import configparser
+import json
from fastNLP.loader.config_loader import ConfigSection, ConfigLoader
from fastNLP.saver.config_saver import ConfigSaver
@@ -8,14 +10,73 @@ from fastNLP.saver.config_saver import ConfigSaver
class TestConfigSaver(unittest.TestCase):
def test_case_1(self):
- config_saver = ConfigSaver("./test/loader/config")
- #config_saver = ConfigSaver("./../loader/config")
+ config_file_dir = "./../loader/"
+ config_file_name = "config"
+ config_file_path = os.path.join(config_file_dir, config_file_name)
+
+ tmp_config_file_path = os.path.join(config_file_dir, "tmp_config")
+
+ with open(config_file_path, "r") as f:
+ lines = f.readlines()
+
+ standard_section = ConfigSection()
+ t_section = ConfigSection()
+ ConfigLoader(config_file_path).load_config(config_file_path, {"test": standard_section, "t": t_section})
+
+ config_saver = ConfigSaver(config_file_path)
section = ConfigSection()
- section["test"] = 105
+ section["doubles"] = 0.8
section["tt"] = 0.5
+ section["test"] = 105
section["str"] = "this is a str"
+
+ test_case_2_section = section
+ test_case_2_section["double"] = 0.5
+
+ for k in section.__dict__.keys():
+ standard_section[k] = section[k]
+
config_saver.save_config_file("test", section)
config_saver.save_config_file("another-test", section)
config_saver.save_config_file("one-another-test", section)
+ config_saver.save_config_file("test-case-2", section)
+
+ test_section = ConfigSection()
+ at_section = ConfigSection()
+ another_test_section = ConfigSection()
+ one_another_test_section = ConfigSection()
+ a_test_case_2_section = ConfigSection()
+
+ ConfigLoader(config_file_path).load_config(config_file_path, {"test": test_section,
+ "another-test": another_test_section,
+ "t": at_section,
+ "one-another-test": one_another_test_section,
+ "test-case-2": a_test_case_2_section})
+
+ assert test_section == standard_section
+ assert at_section == t_section
+ assert another_test_section == section
+ assert one_another_test_section == section
+ assert a_test_case_2_section == test_case_2_section
+
+ config_saver.save_config_file("test", section)
+
+ with open(config_file_path, "w") as f:
+ f.writelines(lines)
+
+ with open(tmp_config_file_path, "w") as f:
+ f.write('[test]\n')
+ f.write('this is an fault example\n')
+
+ tmp_config_saver = ConfigSaver(tmp_config_file_path)
+ try:
+ tmp_config_saver._read_section()
+ except Exception as e:
+ pass
+ os.remove(tmp_config_file_path)
+ try:
+ tmp_config_saver = ConfigSaver("file-NOT-exist")
+ except Exception as e:
+ pass
