mirror of https://github.com/saimn/sigal.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.6 KiB
48 lines
1.6 KiB
# -*- coding:utf-8 -*- |
|
|
|
import os |
|
import pytest |
|
|
|
from sigal import init_plugins |
|
from sigal.gallery import Gallery |
|
from sigal.plugins import compress_assets |
|
|
|
CURRENT_DIR = os.path.dirname(__file__) |
|
|
|
|
|
def make_gallery(settings, tmpdir, method): |
|
settings['destination'] = str(tmpdir) |
|
if "sigal.plugins.compress_assets" not in settings["plugins"]: |
|
settings['plugins'] += ["sigal.plugins.compress_assets"] |
|
|
|
# Set method |
|
settings.setdefault('compress_assets_options', {})['method'] = method |
|
|
|
compress_options = compress_assets.DEFAULT_SETTINGS.copy() |
|
# The key was created by the previous setdefault if needed |
|
compress_options.update(settings['compress_assets_options']) |
|
|
|
init_plugins(settings) |
|
gal = Gallery(settings) |
|
gal.build() |
|
|
|
return compress_options |
|
|
|
|
|
@pytest.mark.parametrize("method,compress_suffix,test_import", |
|
[('gzip', 'gz', None), |
|
('zopfli', 'gz', 'zopfli.gzip'), |
|
('brotli', 'br', 'brotli')]) |
|
def test_compress(disconnect_signals, settings, tmpdir, method, |
|
compress_suffix, test_import): |
|
if test_import: |
|
pytest.importorskip(test_import) |
|
compress_options = make_gallery(settings, tmpdir, method) |
|
|
|
suffixes = compress_options['suffixes'] |
|
|
|
for path, dirs, files in os.walk(settings['destination']): |
|
for file in files: |
|
path_exists = os.path.exists('{}.{}'.format(os.path.join(path, file), compress_suffix)) |
|
file_ext = os.path.splitext(file)[1][1:] |
|
assert path_exists if file_ext in suffixes else not path_exists
|
|
|