Beispiel #1
0
    def test_to_file(self):
        config_file_path = tempfile.mktemp(suffix="test_config")

        config = Config()
        config.general.debug = True
        config.lftp.remote_address = "server.remote.com"
        config.lftp.remote_username = "******"
        config.lftp.remote_port = 3456
        config.lftp.remote_path = "/remote/server/path"
        config.lftp.local_path = "/local/server/path"
        config.lftp.remote_path_to_scan_script = "/remote/server/path/to/script"
        config.lftp.num_max_parallel_downloads = 6
        config.lftp.num_max_parallel_files_per_download = 7
        config.lftp.num_max_connections_per_root_file = 2
        config.lftp.num_max_connections_per_dir_file = 3
        config.lftp.num_max_total_connections = 4
        config.controller.interval_ms_remote_scan = 1234
        config.controller.interval_ms_local_scan = 5678
        config.controller.interval_ms_downloading_scan = 9012
        config.controller.extract_path = "/path/extract/stuff"
        config.controller.use_local_path_as_extract_path = True
        config.web.port = 13
        config.autoqueue.enabled = True
        config.autoqueue.patterns_only = True
        config.autoqueue.auto_extract = False
        config.to_file(config_file_path)
        with open(config_file_path, "r") as f:
            actual_str = f.read()
        print(actual_str)

        golden_str = """
        [General]
        debug = True

        [Lftp]
        remote_address = server.remote.com
        remote_username = user-on-remote-server
        remote_port = 3456
        remote_path = /remote/server/path
        local_path = /local/server/path
        remote_path_to_scan_script = /remote/server/path/to/script
        num_max_parallel_downloads = 6
        num_max_parallel_files_per_download = 7
        num_max_connections_per_root_file = 2
        num_max_connections_per_dir_file = 3
        num_max_total_connections = 4

        [Controller]
        interval_ms_remote_scan = 1234
        interval_ms_local_scan = 5678
        interval_ms_downloading_scan = 9012
        extract_path = /path/extract/stuff
        use_local_path_as_extract_path = True

        [Web]
        port = 13

        [AutoQueue]
        enabled = True
        patterns_only = True
        auto_extract = False
        """

        golden_lines = [s.strip() for s in golden_str.splitlines()]
        golden_lines = list(filter(None, golden_lines))  # remove blank lines
        actual_lines = [s.strip() for s in actual_str.splitlines()]
        actual_lines = list(filter(None, actual_lines))  # remove blank lines

        self.assertEqual(len(golden_lines), len(actual_lines))
        for i, _ in enumerate(golden_lines):
            self.assertEqual(golden_lines[i], actual_lines[i])