diff --git a/stdimage/management/commands/rendervariations.py b/stdimage/management/commands/rendervariations.py index a2ab078..eab3390 100644 --- a/stdimage/management/commands/rendervariations.py +++ b/stdimage/management/commands/rendervariations.py @@ -25,11 +25,8 @@ def add_arguments(self, parser): help='Replace existing files.') def handle(self, *args, **options): - replace = options.get('replace') - if len(options['field_path']): - routes = options['field_path'] - else: - routes = [options['field_path']] + replace = options.get('replace', False) + routes = options.get('field_path', []) for route in routes: try: app_label, model_name, field_name = route.rsplit('.') @@ -73,7 +70,7 @@ def render(field, images, count, replace, do_render): ' ', progressbar.Bar(), )) as bar: with ProcessPoolExecutor() as executor: - while next(executor.map(render_field_variations, kwargs_list)): + for _ in executor.map(render_field_variations, kwargs_list): bar += 1 diff --git a/tests/test_commands.py b/tests/test_commands.py index a45c492..2578c1b 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -1,6 +1,7 @@ import hashlib import os import time +from concurrent.futures import ThreadPoolExecutor import pytest from django.core.management import CommandError, call_command @@ -11,7 +12,16 @@ @pytest.mark.django_db -class TestRenderVariations(object): +class TestRenderVariations: + + @pytest.fixture(autouse=True) + def _swap_concurrent_executor(self, monkeypatch): + """Use ThreadPoolExecutor for coverage reports.""" + monkeypatch.setattr( + 'concurrent.futures.ProcessPoolExecutor', + ThreadPoolExecutor, + ) + def test_no_options(self, image_upload_file): obj = ThumbnailModel.objects.create( image=image_upload_file diff --git a/tests/test_models.py b/tests/test_models.py index eec35b9..21b30d5 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -12,7 +12,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile -class UUID4Monkey(object): +class UUID4Monkey: hex = '653d1c6863404b9689b75fa930c9d0a0' @@ -38,7 +38,7 @@ class UUID4Monkey(object): ] -class TestStdImage(object): +class TestStdImage: fixtures = {} @pytest.fixture(autouse=True) diff --git a/tests/test_utils.py b/tests/test_utils.py index 78b5c36..38c1672 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -9,7 +9,7 @@ @pytest.mark.django_db -class TestRenderVariations(object): +class TestRenderVariations: def test_render_variations(self, image_upload_file): instance = ManualVariationsModel.customer_manager.create( image=image_upload_file @@ -31,7 +31,7 @@ def test_render_variations(self, image_upload_file): assert os.path.exists(path) -class TestUploadTo(object): +class TestUploadTo: def test_file_name(self): file_name = UploadTo()(object(), '/path/to/file.jpeg') assert file_name == '/path/to/file.jpeg'