def test_diet_complains_if_passed_filename_is_not_file(): filename = TEST_FILES_DIR try: diet.diet(filename, {'parsed': True}) except diet.NotFileDietException: pass
def test_diet_creates_a_backup_file_if_backup_is_enabled(config_copy): add_fake_pipeline_to_config(BALLOON_CMD, config_copy) filename = join(TEST_FILES_DIR, 'config.yaml') backup_filename = ".".join([filename, 'back']) config_copy['backup'] = 'back' diet.diet(filename, config_copy) assert exists(backup_filename) os.remove(backup_filename)
def test_diet_removes_all_backup_files_if_backup_is_disabled(config_copy): add_fake_pipeline_to_config(BALLOON_CMD, config_copy) filename = join(TEST_FILES_DIR, 'config.yaml') backup_filename = ".".join([filename, 'back']) internal_filename = ".".join([filename, 'diet_internal']) diet.diet(filename, config_copy) assert not exists(backup_filename) assert not exists(internal_filename)
def test_diet_keeps_processed_file_if_keep_processed_is_enabled(config_copy): add_fake_pipeline_to_config(BALLOON_CMD, config_copy) config_copy['keep_processed'] = True orig_filename = join(TEST_FILES_DIR, 'config.yaml') diet.backup_file(orig_filename, 'test') filename = ".".join([orig_filename, "test"]) old_size = os.stat(filename).st_size diet.diet(filename, config_copy) assert os.stat(filename).st_size > old_size os.remove(filename)
def test_compression(filename, config): st = None # Pre state statinfo = os.stat(filename) orig_size = statinfo.st_size start_time = time.time() # Compress changed = process.diet(filename, config) # Post state if changed: end_time = time.time() statinfo = os.stat(filename) new_size = statinfo.st_size st = Stats( filename, orig_size, round(end_time-start_time, 1), new_size, calc_effectiveness(orig_size, new_size) ) return st
def test_diet_doesnt_change_files_without_pipeline(config_copy): filename = join(TEST_FILES_DIR, 'config.yaml') statinfo = os.stat(filename) changed = diet.diet(filename, config_copy) assert os.stat(filename) == statinfo assert not changed
def test_diet_uses_default_configuration_values(): filename = join(TEST_FILES_DIR, 'nature.png') backup = diet.backup_file(filename, 'back') pipeline_config = {'pipelines': {'png': 'optipng'}, 'parsed': True} changed = diet.diet(backup, pipeline_config) assert changed os.remove(backup)
def test_diet_keeps_smaller_file_by_default(config_copy): add_fake_pipeline_to_config(BALLOON_CMD, config_copy) orig_filename = join(TEST_FILES_DIR, 'config.yaml') diet.backup_file(orig_filename, 'test') filename = ".".join([orig_filename, "test"]) old_size = os.stat(filename).st_size changed = diet.diet(filename, config_copy) assert os.stat(filename).st_size == old_size assert changed os.remove(filename)
def test_diet_uses_default_configuration_values(): filename = join(TEST_FILES_DIR, 'nature.png') backup = diet.backup_file(filename, 'back') pipeline_config = { 'pipelines': { 'png': 'optipng' }, 'parsed': True } changed = diet.diet(backup, pipeline_config) assert changed os.remove(backup)
def test_diet_works_with_already_parsed_configuration(config_copy): add_fake_pipeline_to_config(BALLOON_CMD, config_copy) config = diet.parse_configuration(config_copy) assert config['parsed'] orig_filename = join(TEST_FILES_DIR, 'config.yaml') diet.backup_file(orig_filename, 'test') filename = ".".join([orig_filename, "test"]) old_size = os.stat(filename).st_size changed = diet.diet(filename, config) assert os.stat(filename).st_size == old_size assert changed os.remove(filename)
def diet(file, configuration, check): """Simple program that either print config customisations for your environment or compresses file FILE.""" config = process.read_yaml_configuration(configuration) process.diet(file, config)
def test_diet_reads_default_configuration(): filename = join(TEST_FILES_DIR, 'config.yaml') diet.diet(filename, {'parsed': True})
def test_diet_deletes_internal_backup_when_backup_is_disabled(config_copy): filename = join(TEST_FILES_DIR, 'config.yaml') backup_filename = ".".join([filename, 'diet_internal']) diet.diet(filename, config_copy) assert not exists(backup_filename)