def test_get_img_info_uint16_tif_s3(self): self.set_s3_args() ingest_job = IngestJob(self.args) z_slice = 0 # create an image img_fname = ingest_job.get_img_fname(z_slice) create_img_file(ingest_job.img_size[0], ingest_job.img_size[1], self.args.datatype, self.args.extension, img_fname) # put the image on a bucket s3 = boto3.resource('s3') with open(img_fname, 'rb') as img_file: s3.Bucket(self.args.s3_bucket_name).put_object(Key=img_fname, Body=img_file) # get info on that image im_width, im_height, im_datatype = ingest_job.get_img_info(z_slice) # assert the info is correct im = np.array(Image.open(img_fname)) assert im_width == im.shape[1] assert im_height == im.shape[0] assert im_datatype == im.dtype s3.Bucket(self.args.s3_bucket_name).delete_objects( Delete={'Objects': [{ 'Key': img_fname }]}) os.remove(ingest_job.get_log_fname()) os.remove(img_fname)
def test_get_img_fname_channel(self): self.args.base_filename = 'img_<ch>_<p:4>' self.args.base_path = 'local_img_<ch>_test_data/' ingest_job = IngestJob(self.args) img_fname = ingest_job.get_img_fname(0) assert img_fname == 'local_img_{0}_test_data/img_{0}_{1:04d}.tif'.format( self.args.channel, 0) os.remove(ingest_job.get_log_fname())
def test_get_img_fname(self): self.args.extension = 'tif' ingest_job = IngestJob(self.args) img_fname = ingest_job.get_img_fname(0) img_fname_test = '{}img_{:04d}.{}'.format(self.args.base_path, 0, self.args.extension) assert img_fname == img_fname_test os.remove(ingest_job.get_log_fname())
def test_load_img_local(self): ingest_job = IngestJob(self.args) z_slice = 0 img_fname = ingest_job.get_img_fname(z_slice) create_img_file(ingest_job.img_size[0], ingest_job.img_size[1], self.args.datatype, self.args.extension, img_fname) im = ingest_job.load_img(z_slice) img_local_test = np.array(Image.open(img_fname)) assert np.array_equal(im, img_local_test) os.remove(ingest_job.get_log_fname()) os.remove(img_fname)
def test_get_img_info_uint16_png(self): file_format = 'png' self.args.file_format = file_format ingest_job = IngestJob(self.args) z_slice = 0 img_fname = ingest_job.get_img_fname(z_slice) create_img_file(ingest_job.img_size[0], ingest_job.img_size[1], self.args.datatype, self.args.extension, img_fname) im_width, im_height, im_datatype = ingest_job.get_img_info(z_slice) assert im_width == ingest_job.img_size[0] assert im_height == ingest_job.img_size[1] assert im_datatype == self.args.datatype os.remove(ingest_job.get_log_fname()) os.remove(img_fname)
def test_create_local_IngestJob_neg_z_extents_offset_range(self): self.args.z_extent = [-1000, 2000] self.args.z_range = [-10, 10] self.args.offset_extents = True ingest_job = IngestJob(self.args) assert ingest_job.x_extent == [0, 1000] assert ingest_job.offsets == [0, 0, 1000] assert ingest_job.z_extent == [0, 3000] assert ingest_job.z_range == [-10, 10] img_fname = ingest_job.get_img_fname(-5) # assert that first tif image has a file name with the negative original extent of the data img_fname_test = '{}img_{:04d}.{}'.format(self.args.base_path, -5, self.args.extension) assert img_fname == img_fname_test os.remove(ingest_job.get_log_fname())
def test_get_img_info_uint64_tif(self): file_format = 'tif' dtype = 'uint64' self.args.file_format = file_format self.args.datatype = dtype self.args.source_channel = 'def_files' ingest_job = IngestJob(self.args) z_slice = 0 img_fname = ingest_job.get_img_fname(z_slice) create_img_file(ingest_job.img_size[0], ingest_job.img_size[1], self.args.datatype, self.args.extension, img_fname) im_width, im_height, im_datatype = ingest_job.get_img_info(z_slice) assert im_width == ingest_job.img_size[0] assert im_height == ingest_job.img_size[1] assert im_datatype == self.args.datatype os.remove(ingest_job.get_log_fname()) os.remove(img_fname)