def test_input_crr_corrupt_cache_error_is_none( self, downloaded_parquet_file, load_module ): load_module.return_value.migrate_params.return_value = {} load_module.return_value.fetch.return_value = FetchResult(self.output_path, []) downloaded_parquet_file.side_effect = rendercache.CorruptCacheError( "file not found" ) input_metadata = TableMetadata(3, [Column("A", ColumnType.Text())]) input_crr = CachedRenderResult(1, 2, 3, "ok", [], {}, input_metadata) fetch.fetch_or_wrap_error( self.ctx, self.chroot_context, self.basedir, WfModule(), MockModuleVersion(), {}, None, input_crr, self.output_path, ) # fetch is still called, with `None` as argument. self.assertIsNone( load_module.return_value.fetch.call_args[1]["input_parquet_filename"] )
def test_input_crr(self, downloaded_parquet_file, clean_value, load_module): load_module.return_value.migrate_params.return_value = {} load_module.return_value.fetch.return_value = FetchResult(self.output_path, []) clean_value.return_value = {} downloaded_parquet_file.return_value = Path("/path/to/x.parquet") input_metadata = TableMetadata(3, [Column("A", ColumnType.Text())]) input_crr = CachedRenderResult(1, 2, 3, "ok", [], {}, input_metadata) fetch.fetch_or_wrap_error( self.ctx, self.chroot_context, self.basedir, WfModule(), MockModuleVersion(), {}, None, input_crr, self.output_path, ) # Passed file is downloaded from rendercache downloaded_parquet_file.assert_called_with(input_crr, dir=self.basedir) self.assertEqual( load_module.return_value.fetch.call_args[1]["input_parquet_filename"], "x.parquet", ) # clean_value() is called with input metadata from CachedRenderResult clean_value.assert_called() self.assertEqual(clean_value.call_args[0][2], input_metadata)
def test_input_crr(self, downloaded_parquet_file, clean_value): def do_fetch( compiled_module, chroot_context, basedir, params, secrets, last_fetch_result, input_parquet_filename, output_filename, ): shutil.copy(basedir / input_parquet_filename, basedir / output_filename) return FetchResult(basedir / output_filename) self.kernel.fetch.side_effect = do_fetch clean_value.return_value = {} with tempfile_context(dir=self.basedir, suffix=".parquet") as parquet_path: parquet_path.write_bytes(b"abc123") downloaded_parquet_file.return_value = parquet_path input_metadata = TableMetadata(3, [Column("A", ColumnType.Text())]) input_crr = CachedRenderResult(1, 2, 3, "ok", [], {}, input_metadata) with self.assertLogs("fetcher.fetch", level=logging.INFO): result = fetch.fetch_or_wrap_error( self.ctx, self.chroot_context, self.basedir, "mod", create_module_zipfile("mod"), {}, {}, None, input_crr, self.output_path, ) # Passed file is downloaded from rendercache self.assertEqual(result.path.read_bytes(), b"abc123") # clean_value() is called with input metadata from CachedRenderResult clean_value.assert_called() self.assertEqual(clean_value.call_args[0][2], input_metadata)
def test_input_crr_corrupt_cache_error_is_none(self, downloaded_parquet_file): self.kernel.fetch.return_value = FetchResult(self.output_path, []) downloaded_parquet_file.side_effect = rendercache.CorruptCacheError( "file not found" ) input_metadata = TableMetadata(3, [Column("A", ColumnType.Text())]) input_crr = CachedRenderResult(1, 2, 3, "ok", [], {}, input_metadata) with self.assertLogs("fetcher.fetch", level=logging.INFO): fetch.fetch_or_wrap_error( self.ctx, self.chroot_context, self.basedir, "mod", create_module_zipfile("mod"), {}, {}, None, input_crr, self.output_path, ) # fetch is still called, with `None` as argument. self.assertIsNone(self.kernel.fetch.call_args[1]["input_parquet_filename"])