Skip to content

Commit

Permalink
Improve compress module test coverage (#363)
Browse files Browse the repository at this point in the history
  • Loading branch information
adamchainz committed Feb 8, 2022
1 parent 8db1ba9 commit b95c76f
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 19 deletions.
46 changes: 28 additions & 18 deletions src/whitenoise/compress.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations

import argparse
import gzip
import os
import re
Expand All @@ -9,7 +10,7 @@
import brotli

brotli_installed = True
except ImportError:
except ImportError: # pragma: no cover
brotli_installed = False


Expand Down Expand Up @@ -122,19 +123,7 @@ def write_data(self, path, data, suffix, stat_result):
return filename


def main(root, **kwargs):
compressor = Compressor(**kwargs)
for dirpath, _dirs, files in os.walk(root):
for filename in files:
if compressor.should_compress(filename):
path = os.path.join(dirpath, filename)
for _compressed in compressor.compress(path):
pass


if __name__ == "__main__":
import argparse

def main(argv=None):
parser = argparse.ArgumentParser(
description="Search for all files inside <root> *not* matching "
"<extensions> and produce compressed versions with "
Expand All @@ -157,12 +146,33 @@ def main(root, **kwargs):
dest="use_brotli",
)
parser.add_argument("root", help="Path root from which to search for files")
default_exclude = ", ".join(Compressor.SKIP_COMPRESS_EXTENSIONS)
parser.add_argument(
"extensions",
nargs="*",
help="File extensions to exclude from compression "
"(default: {})".format(", ".join(Compressor.SKIP_COMPRESS_EXTENSIONS)),
help=(
"File extensions to exclude from compression "
+ f"(default: {default_exclude})"
),
default=Compressor.SKIP_COMPRESS_EXTENSIONS,
)
args = parser.parse_args()
main(**vars(args))
args = parser.parse_args(argv)

compressor = Compressor(
extensions=args.extensions,
use_gzip=args.use_gzip,
use_brotli=args.use_brotli,
quiet=args.quiet,
)
for dirpath, _dirs, files in os.walk(args.root):
for filename in files:
if compressor.should_compress(filename):
path = os.path.join(dirpath, filename)
for _compressed in compressor.compress(path):
pass

return 0


if __name__ == "__main__": # pragma: no cover
raise SystemExit(main())
2 changes: 1 addition & 1 deletion tests/test_compress.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def files_dir():
f.write(contents)
timestamp = 1498579535
os.utime(path, (timestamp, timestamp))
compress_main(tmp, quiet=True)
compress_main([tmp, "--quiet"])
yield tmp
shutil.rmtree(tmp)

Expand Down

0 comments on commit b95c76f

Please sign in to comment.