def run_download()

in dataflux_core/performance_tests/list_and_download.py [0:0]


    def run_download(self, config, list_result):
        segmented = False
        if config["expected_total_size"] > FIFTY_GB:
            segmented = True
        download_params = download.DataFluxDownloadOptimizationParams(
            config["max_compose_bytes"])
        download_start_time = time.time()
        download_result = None
        if config["parallelization"] and config["parallelization"] > 1:
            download_result = download.dataflux_download_parallel(
                config["project"],
                config["bucket"],
                list_result,
                dataflux_download_optimization_params=download_params,
                parallelization=config["parallelization"],
            )
        else:
            download_result = download.dataflux_download(
                config["project"],
                config["bucket"],
                list_result,
                dataflux_download_optimization_params=download_params,
            )
        download_end_time = time.time()
        downloading_time = download_end_time - download_start_time
        total_size = sum([len(x) for x in download_result])
        if (not segmented and config["expected_total_size"]
                and total_size != config["expected_total_size"]):
            raise AssertionError(
                f"Expected {config['expected_total_size']} bytes but got {total_size} bytes"
            )
        if config["download_timeout"] and downloading_time > config[
                "download_timeout"]:
            raise AssertionError(
                f"Expected download operation to complete in under {config['download_timeout']} seconds, but took {downloading_time} seconds."
            )
        return total_size