Source: python-django-imagekit Version: 4.1.0-2 Severity: serious Justification: FTBFS Tags: trixie sid ftbfs User: [email protected] Usertags: ftbfs-20230726 ftbfs-trixie
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > make[1]: Entering directory '/<<PKGBUILDDIR>>' > dh_auto_build > I: pybuild base:240: /usr/bin/python3 setup.py build > running build > running build_py > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/compat.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/exceptions.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/hashers.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/registry.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/lib.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/signals.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/conf.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/pkgmeta.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/files.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/admin.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > copying imagekit/generatorlibrary.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/specs > copying imagekit/specs/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/specs > copying imagekit/specs/sourcegroups.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/specs > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/processors > copying imagekit/processors/resize.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/processors > copying imagekit/processors/utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/processors > copying imagekit/processors/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/processors > copying imagekit/processors/base.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/processors > copying imagekit/processors/crop.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/processors > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/management > copying imagekit/management/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/management > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/templatetags > copying imagekit/templatetags/imagekit.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/templatetags > copying imagekit/templatetags/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/templatetags > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/forms > copying imagekit/forms/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/forms > copying imagekit/forms/fields.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/forms > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/models > copying imagekit/models/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/models > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/cachefiles > copying imagekit/cachefiles/namers.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/cachefiles > copying imagekit/cachefiles/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/cachefiles > copying imagekit/cachefiles/backends.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/cachefiles > copying imagekit/cachefiles/strategies.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/cachefiles > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/management/commands > copying imagekit/management/commands/generateimages.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/management/commands > copying imagekit/management/commands/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/management/commands > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/models/fields > copying imagekit/models/fields/utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/models/fields > copying imagekit/models/fields/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/models/fields > copying imagekit/models/fields/files.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/models/fields > running egg_info > creating django_imagekit.egg-info > writing django_imagekit.egg-info/PKG-INFO > writing dependency_links to django_imagekit.egg-info/dependency_links.txt > writing requirements to django_imagekit.egg-info/requires.txt > writing top-level names to django_imagekit.egg-info/top_level.txt > writing manifest file 'django_imagekit.egg-info/SOURCES.txt' > reading manifest file 'django_imagekit.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > warning: no files found matching 'testrunner.py' > warning: no files found matching 'tests/assets/Lenna.png' > warning: no files found matching 'tests/assets/lenna-*.jpg' > warning: no files found matching 'tests/media/lenna.png' > no previously-included directories found matching 'tests/media/CACHE' > no previously-included directories found matching 'tests/media/b' > no previously-included directories found matching 'tests/media/photos' > adding license file 'LICENSE' > adding license file 'AUTHORS' > writing manifest file 'django_imagekit.egg-info/SOURCES.txt' > /usr/lib/python3/dist-packages/setuptools/command/build_py.py:201: _Warning: > Package 'imagekit.templates.imagekit.admin' is absent from the `packages` > configuration. > !! > > > ******************************************************************************** > ############################ > # Package would be ignored # > ############################ > Python recognizes 'imagekit.templates.imagekit.admin' as an > importable package[^1], > but it is absent from setuptools' `packages` configuration. > > This leads to an ambiguous overall configuration. If you want to > distribute this > package, please make sure that 'imagekit.templates.imagekit.admin' is > explicitly added > to the `packages` configuration field. > > Alternatively, you can also rely on setuptools' discovery methods > (for example by using `find_namespace_packages(...)`/`find_namespace:` > instead of `find_packages(...)`/`find:`). > > You can read more about "package discovery" on setuptools > documentation page: > > - > https://setuptools.pypa.io/en/latest/userguide/package_discovery.html > > If you don't want 'imagekit.templates.imagekit.admin' to be > distributed and are > already explicitly excluding 'imagekit.templates.imagekit.admin' via > `find_namespace_packages(...)/find_namespace` or > `find_packages(...)/find`, > you can try to use `exclude_package_data`, or > `include-package-data=False` in > combination with a more fine grained `package-data` configuration. > > You can read more about "package data files" on setuptools > documentation page: > > - https://setuptools.pypa.io/en/latest/userguide/datafiles.html > > > [^1]: For Python, any directory (with suitable naming) can be > imported, > even if it does not contain any `.py` files. > On the other hand, currently there is no concept of package data > directory, all directories are treated like packages. > > ******************************************************************************** > > !! > check.warn(importable) > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/templates > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/templates/imagekit > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/templates/imagekit/admin > copying imagekit/templates/imagekit/admin/thumbnail.html -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build/imagekit/templates/imagekit/admin > PYTHONPATH=. python3 -m sphinx -b html -d docs/.build/.doctrees -N docs > docs/.build/html > Running Sphinx v5.3.0 > making output directory... done > building [mo]: targets for 0 po files that are out of date > building [html]: targets for 6 source files that are out of date > updating environment: [new config] 6 added, 0 changed, 0 removed > reading sources... [ 16%] _themes/README > reading sources... [ 33%] advanced_usage > reading sources... [ 50%] caching > reading sources... [ 66%] configuration > reading sources... [ 83%] index > reading sources... [100%] upgrading > > README.rst:1: ERROR: Undefined substitution referenced: "Build Status". > AUTHORS:32: ERROR: Unknown target name: "jaap roes". > looking for now-outdated files... none found > pickling environment... done > checking consistency... /<<PKGBUILDDIR>>/docs/_themes/README.rst: WARNING: > document isn't included in any toctree > done > preparing documents... done > writing output... [ 16%] _themes/README > writing output... [ 33%] advanced_usage > writing output... [ 50%] caching > writing output... [ 66%] configuration > writing output... [ 83%] index > writing output... [100%] upgrading > > generating indices... genindex done > writing additional pages... search done > copying static files... done > copying extra files... done > dumping search index in English (code: en)... done > dumping object inventory... done > build succeeded, 3 warnings. > > The HTML pages are in docs/.build/html. > make[1]: Leaving directory '/<<PKGBUILDDIR>>' > dh_auto_test -O--buildsystem=pybuild > I: pybuild base:240: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build; python3.11 -m > pytest tests > ============================= test session starts > ============================== > platform linux -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0 > django: settings: tests.settings (from ini) > rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build > configfile: pytest.ini > plugins: django-4.5.2 > collected 37 items > > tests/test_closing_fieldfiles.py FF [ > 5%] > tests/test_fields.py .F. [ > 13%] > tests/test_serialization.py F. [ > 18%] > tests/test_sourcegroups.py ... [ > 27%] > tests/test_abstract_models.py . [ > 29%] > tests/test_cachefiles.py ....... [ > 48%] > tests/test_generateimage_tag.py ...... [ > 64%] > tests/test_no_extra_queries.py . [ > 67%] > tests/test_optimistic_strategy.py .. [ > 72%] > tests/test_serialization.py . [ > 75%] > tests/test_thumbnail_tag.py FF....FFF > [100%] > > =================================== FAILURES > =================================== > _________________________ test_do_not_leak_open_files > __________________________ > > @pytest.mark.django_db(transaction=True) > def test_do_not_leak_open_files(): > instance = create_photo('leak-test.jpg') > source_file = instance.original_image > # Ensure the FieldFile is closed before generation > source_file.close() > image_generator = Thumbnail(source=source_file) > > image_generator.generate() > > tests/test_closing_fieldfiles.py:14: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:77: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c21ac550> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C2058FD0> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > _________________ test_do_not_close_open_files_after_generate > __________________ > > @pytest.mark.django_db(transaction=True) > def test_do_not_close_open_files_after_generate(): > instance = create_photo('do-not-close-test.jpg') > source_file = instance.original_image > # Ensure the FieldFile is opened before generation > source_file.open() > image_generator = Thumbnail(source=source_file) > > image_generator.generate() > > tests/test_closing_fieldfiles.py:25: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:77: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c211d7d0> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C1FB3C10> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > ___________________ test_model_processedimagefield_with_spec > ___________________ > > @pytest.mark.django_db(transaction=True) > def test_model_processedimagefield_with_spec(): > instance = ProcessedImageFieldWithSpecModel() > file = File(get_image_file()) > > instance.processed.save('whatever.jpeg', file) > > tests/test_fields.py:30: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > imagekit/models/fields/files.py:12: in save > content = generate(spec) > imagekit/utils.py:152: in generate > content = generator.generate() > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:77: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c21defd0> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C2221750> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > _____________________________ test_imagespecfield > ______________________________ > > @pytest.mark.django_db(transaction=True) > def test_imagespecfield(): > clear_imagekit_cache() > instance = create_photo('pickletest2.jpg') > thumbnail = pickleback(instance.thumbnail) > > thumbnail.generate() > > tests/test_serialization.py:18: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > imagekit/cachefiles/__init__.py:94: in generate > self.cachefile_backend.generate(self, force) > imagekit/cachefiles/backends.py:109: in generate > self.generate_now(file, force=force) > imagekit/cachefiles/backends.py:96: in generate_now > file._generate() > imagekit/cachefiles/__init__.py:98: in _generate > content = generate(self.generator) > imagekit/utils.py:152: in generate > content = generator.generate() > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:77: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c2117050> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C2058FD0> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > _________________________________ test_img_tag > _________________________________ > > def test_img_tag(): > ttag = r"""{% thumbnail '100x100' img %}""" > clear_imagekit_cache() > > attrs = get_html_attrs(ttag) > > tests/test_thumbnail_tag.py:11: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/utils.py:66: in get_html_attrs > return BeautifulSoup(render_tag(ttag), features="html.parser").img.attrs > tests/utils.py:62: in render_tag > return template.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:170: in render > return self._render(context) > /usr/lib/python3/dist-packages/django/test/utils.py:100: in > instrumented_test_render > return self.nodelist.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:938: in render > bit = node.render_annotated(context) > /usr/lib/python3/dist-packages/django/template/base.py:905: in > render_annotated > return self.render(context) > imagekit/templatetags/imagekit.py:133: in render > attrs.update(width=file.width, height=file.height) > /usr/lib/python3/dist-packages/django/core/files/images.py:19: in width > return self._get_image_dimensions()[0] > /usr/lib/python3/dist-packages/django/core/files/images.py:28: in > _get_image_dimensions > self.open() > imagekit/files.py:58: in open > self._require_file() > imagekit/cachefiles/__init__.py:62: in _require_file > content_required.send(sender=self, file=self) > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:180: in send > return [ > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:181: in > <listcomp> > (receiver, receiver(signal=self, sender=sender, **named)) > imagekit/registry.py:50: in content_required_receiver > self._receive(file, 'on_content_required') > imagekit/registry.py:61: in _receive > call_strategy_method(file, callback) > imagekit/utils.py:166: in call_strategy_method > fn(file) > imagekit/cachefiles/strategies.py:18: in on_content_required > file.generate() > imagekit/cachefiles/__init__.py:94: in generate > self.cachefile_backend.generate(self, force) > imagekit/cachefiles/backends.py:109: in generate > self.generate_now(file, force=force) > imagekit/cachefiles/backends.py:96: in generate_now > file._generate() > imagekit/cachefiles/__init__.py:98: in _generate > content = generate(self.generator) > imagekit/utils.py:152: in generate > content = generator.generate() > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:274: in process > return processor.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:102: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c1ee4350> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C21FFBD0> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > ______________________________ test_img_tag_attrs > ______________________________ > > def test_img_tag_attrs(): > ttag = r"""{% thumbnail '100x100' img -- alt="Hello" %}""" > clear_imagekit_cache() > > attrs = get_html_attrs(ttag) > > tests/test_thumbnail_tag.py:21: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/utils.py:66: in get_html_attrs > return BeautifulSoup(render_tag(ttag), features="html.parser").img.attrs > tests/utils.py:62: in render_tag > return template.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:170: in render > return self._render(context) > /usr/lib/python3/dist-packages/django/test/utils.py:100: in > instrumented_test_render > return self.nodelist.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:938: in render > bit = node.render_annotated(context) > /usr/lib/python3/dist-packages/django/template/base.py:905: in > render_annotated > return self.render(context) > imagekit/templatetags/imagekit.py:133: in render > attrs.update(width=file.width, height=file.height) > /usr/lib/python3/dist-packages/django/core/files/images.py:19: in width > return self._get_image_dimensions()[0] > /usr/lib/python3/dist-packages/django/core/files/images.py:28: in > _get_image_dimensions > self.open() > imagekit/files.py:58: in open > self._require_file() > imagekit/cachefiles/__init__.py:62: in _require_file > content_required.send(sender=self, file=self) > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:180: in send > return [ > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:181: in > <listcomp> > (receiver, receiver(signal=self, sender=sender, **named)) > imagekit/registry.py:50: in content_required_receiver > self._receive(file, 'on_content_required') > imagekit/registry.py:61: in _receive > call_strategy_method(file, callback) > imagekit/utils.py:166: in call_strategy_method > fn(file) > imagekit/cachefiles/strategies.py:18: in on_content_required > file.generate() > imagekit/cachefiles/__init__.py:94: in generate > self.cachefile_backend.generate(self, force) > imagekit/cachefiles/backends.py:109: in generate > self.generate_now(file, force=force) > imagekit/cachefiles/backends.py:96: in generate_now > file._generate() > imagekit/cachefiles/__init__.py:98: in _generate > content = generate(self.generator) > imagekit/utils.py:152: in generate > content = generator.generate() > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:274: in process > return processor.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:102: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c1af9a50> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C1AF9810> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > _____________________________ test_assignment_tag > ______________________________ > > self = <Variable: 'th.url'> > context = [{'True': True, 'False': False, 'None': None}, {'img': > <_io.BufferedRandom > name='/<<BUILDDIR>>/...imagekit/build/tests/media/reference.png'>, 'th': > <ImageCacheFile: CACHE/images/d39eaa67cfd28eb7b908345c185c5777.png>}] > > def _resolve_lookup(self, context): > """ > Perform resolution of a real variable (i.e. not a literal) against the > given context. > > As indicated by the method's name, this method is an implementation > detail and shouldn't be called by external code. Use > Variable.resolve() > instead. > """ > current = context > try: # catch-all for silent variable failures > for bit in self.lookups: > try: # dictionary lookup > > current = current[bit] > E TypeError: 'ImageCacheFile' object is not subscriptable > > /usr/lib/python3/dist-packages/django/template/base.py:829: TypeError > > During handling of the above exception, another exception occurred: > > def test_assignment_tag(): > ttag = r"""{% thumbnail '100x100' img as th %}{{ th.url }}""" > clear_imagekit_cache() > > html = render_tag(ttag) > > tests/test_thumbnail_tag.py:57: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/utils.py:62: in render_tag > return template.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:170: in render > return self._render(context) > /usr/lib/python3/dist-packages/django/test/utils.py:100: in > instrumented_test_render > return self.nodelist.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:938: in render > bit = node.render_annotated(context) > /usr/lib/python3/dist-packages/django/template/base.py:905: in > render_annotated > return self.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:988: in render > output = self.filter_expression.resolve(context) > /usr/lib/python3/dist-packages/django/template/base.py:671: in resolve > obj = self.var.resolve(context) > /usr/lib/python3/dist-packages/django/template/base.py:796: in resolve > value = self._resolve_lookup(context) > /usr/lib/python3/dist-packages/django/template/base.py:837: in _resolve_lookup > current = getattr(current, bit) > imagekit/cachefiles/__init__.py:85: in url > return self._storage_attr('url') > imagekit/cachefiles/__init__.py:75: in _storage_attr > existence_required.send(sender=self, file=self) > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:180: in send > return [ > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:181: in > <listcomp> > (receiver, receiver(signal=self, sender=sender, **named)) > imagekit/registry.py:53: in existence_required_receiver > self._receive(file, 'on_existence_required') > imagekit/registry.py:61: in _receive > call_strategy_method(file, callback) > imagekit/utils.py:166: in call_strategy_method > fn(file) > imagekit/cachefiles/strategies.py:15: in on_existence_required > file.generate() > imagekit/cachefiles/__init__.py:94: in generate > self.cachefile_backend.generate(self, force) > imagekit/cachefiles/backends.py:109: in generate > self.generate_now(file, force=force) > imagekit/cachefiles/backends.py:96: in generate_now > file._generate() > imagekit/cachefiles/__init__.py:98: in _generate > content = generate(self.generator) > imagekit/utils.py:152: in generate > content = generator.generate() > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:274: in process > return processor.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:102: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c1a98890> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C1A98750> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > ____________________________ test_single_dimension > _____________________________ > > self = <Variable: 'th.width'> > context = [{'True': True, 'False': False, 'None': None}, {'img': > <_io.BufferedRandom > name='/<<BUILDDIR>>/...imagekit/build/tests/media/reference.png'>, 'th': > <ImageCacheFile: CACHE/images/886c37bf9c9a8973732abdf52ffe54cb.png>}] > > def _resolve_lookup(self, context): > """ > Perform resolution of a real variable (i.e. not a literal) against the > given context. > > As indicated by the method's name, this method is an implementation > detail and shouldn't be called by external code. Use > Variable.resolve() > instead. > """ > current = context > try: # catch-all for silent variable failures > for bit in self.lookups: > try: # dictionary lookup > > current = current[bit] > E TypeError: 'ImageCacheFile' object is not subscriptable > > /usr/lib/python3/dist-packages/django/template/base.py:829: TypeError > > During handling of the above exception, another exception occurred: > > def test_single_dimension(): > ttag = r"""{% thumbnail '100x' img as th %}{{ th.width }}""" > clear_imagekit_cache() > > html = render_tag(ttag) > > tests/test_thumbnail_tag.py:64: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/utils.py:62: in render_tag > return template.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:170: in render > return self._render(context) > /usr/lib/python3/dist-packages/django/test/utils.py:100: in > instrumented_test_render > return self.nodelist.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:938: in render > bit = node.render_annotated(context) > /usr/lib/python3/dist-packages/django/template/base.py:905: in > render_annotated > return self.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:988: in render > output = self.filter_expression.resolve(context) > /usr/lib/python3/dist-packages/django/template/base.py:671: in resolve > obj = self.var.resolve(context) > /usr/lib/python3/dist-packages/django/template/base.py:796: in resolve > value = self._resolve_lookup(context) > /usr/lib/python3/dist-packages/django/template/base.py:837: in _resolve_lookup > current = getattr(current, bit) > /usr/lib/python3/dist-packages/django/core/files/images.py:19: in width > return self._get_image_dimensions()[0] > /usr/lib/python3/dist-packages/django/core/files/images.py:28: in > _get_image_dimensions > self.open() > imagekit/files.py:58: in open > self._require_file() > imagekit/cachefiles/__init__.py:62: in _require_file > content_required.send(sender=self, file=self) > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:180: in send > return [ > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:181: in > <listcomp> > (receiver, receiver(signal=self, sender=sender, **named)) > imagekit/registry.py:50: in content_required_receiver > self._receive(file, 'on_content_required') > imagekit/registry.py:61: in _receive > call_strategy_method(file, callback) > imagekit/utils.py:166: in call_strategy_method > fn(file) > imagekit/cachefiles/strategies.py:18: in on_content_required > file.generate() > imagekit/cachefiles/__init__.py:94: in generate > self.cachefile_backend.generate(self, force) > imagekit/cachefiles/backends.py:109: in generate > self.generate_now(file, force=force) > imagekit/cachefiles/backends.py:96: in generate_now > file._generate() > imagekit/cachefiles/__init__.py:98: in _generate > content = generate(self.generator) > imagekit/utils.py:152: in generate > content = generator.generate() > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:274: in process > return processor.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:227: in process > img = Resize(new_dimensions[0], new_dimensions[1], > upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c1b5ef10> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C1B5F050> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > ___________________________ test_alternate_generator > ___________________________ > > self = <Variable: 'th.width'> > context = [{'True': True, 'False': False, 'None': None}, {'img': > <_io.BufferedRandom > name='/<<BUILDDIR>>/...imagekit/build/tests/media/reference.png'>, 'th': > <ImageCacheFile: CACHE/images/ebaa9c7c1766e0c6d1046433f8ad4f3d.png>}] > > def _resolve_lookup(self, context): > """ > Perform resolution of a real variable (i.e. not a literal) against the > given context. > > As indicated by the method's name, this method is an implementation > detail and shouldn't be called by external code. Use > Variable.resolve() > instead. > """ > current = context > try: # catch-all for silent variable failures > for bit in self.lookups: > try: # dictionary lookup > > current = current[bit] > E TypeError: 'ImageCacheFile' object is not subscriptable > > /usr/lib/python3/dist-packages/django/template/base.py:829: TypeError > > During handling of the above exception, another exception occurred: > > def test_alternate_generator(): > ttag = r"""{% thumbnail '1pxsq' '100x' img as th %}{{ th.width }}""" > clear_imagekit_cache() > > html = render_tag(ttag) > > tests/test_thumbnail_tag.py:71: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/utils.py:62: in render_tag > return template.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:170: in render > return self._render(context) > /usr/lib/python3/dist-packages/django/test/utils.py:100: in > instrumented_test_render > return self.nodelist.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:938: in render > bit = node.render_annotated(context) > /usr/lib/python3/dist-packages/django/template/base.py:905: in > render_annotated > return self.render(context) > /usr/lib/python3/dist-packages/django/template/base.py:988: in render > output = self.filter_expression.resolve(context) > /usr/lib/python3/dist-packages/django/template/base.py:671: in resolve > obj = self.var.resolve(context) > /usr/lib/python3/dist-packages/django/template/base.py:796: in resolve > value = self._resolve_lookup(context) > /usr/lib/python3/dist-packages/django/template/base.py:837: in _resolve_lookup > current = getattr(current, bit) > /usr/lib/python3/dist-packages/django/core/files/images.py:19: in width > return self._get_image_dimensions()[0] > /usr/lib/python3/dist-packages/django/core/files/images.py:28: in > _get_image_dimensions > self.open() > imagekit/files.py:58: in open > self._require_file() > imagekit/cachefiles/__init__.py:62: in _require_file > content_required.send(sender=self, file=self) > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:180: in send > return [ > /usr/lib/python3/dist-packages/django/dispatch/dispatcher.py:181: in > <listcomp> > (receiver, receiver(signal=self, sender=sender, **named)) > imagekit/registry.py:50: in content_required_receiver > self._receive(file, 'on_content_required') > imagekit/registry.py:61: in _receive > call_strategy_method(file, callback) > imagekit/utils.py:166: in call_strategy_method > fn(file) > imagekit/cachefiles/strategies.py:18: in on_content_required > file.generate() > imagekit/cachefiles/__init__.py:94: in generate > self.cachefile_backend.generate(self, force) > imagekit/cachefiles/backends.py:109: in generate > self.generate_now(file, force=force) > imagekit/cachefiles/backends.py:96: in generate_now > file._generate() > imagekit/cachefiles/__init__.py:98: in _generate > content = generate(self.generator) > imagekit/utils.py:152: in generate > content = generator.generate() > imagekit/specs/__init__.py:157: in generate > new_image = process_image(img, > /usr/lib/python3/dist-packages/pilkit/utils.py:361: in process_image > img = ProcessorPipeline(processors or []).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/base.py:15: in process > img = proc.process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:77: in process > upscale=self.upscale).process(img) > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:50: in process > img = Resize(new_width, new_height, upscale=self.upscale).process(img) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <pilkit.processors.resize.Resize object at 0x7f87c1a686d0> > img = <PIL.Image.Image image mode=RGBA size=256x256 at 0x7F87C1A69910> > > def process(self, img): > if self.upscale or (self.width < img.size[0] and self.height < > img.size[1]): > img = img.convert('RGBA') > > img = img.resize((self.width, self.height), Image.ANTIALIAS) > E AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS' > > /usr/lib/python3/dist-packages/pilkit/processors/resize.py:24: AttributeError > =============================== warnings summary > =============================== > ../../../../../../usr/lib/python3/dist-packages/django/http/request.py:1 > /usr/lib/python3/dist-packages/django/http/request.py:1: > DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13 > import cgi > > ../../../../../../usr/lib/python3/dist-packages/django/utils/encoding.py:266 > /usr/lib/python3/dist-packages/django/utils/encoding.py:266: > DeprecationWarning: Use setlocale(), getencoding() and getlocale() instead > encoding = locale.getdefaultlocale()[1] or 'ascii' > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info > ============================ > FAILED tests/test_closing_fieldfiles.py::test_do_not_leak_open_files - > Attrib... > FAILED > tests/test_closing_fieldfiles.py::test_do_not_close_open_files_after_generate > FAILED tests/test_fields.py::test_model_processedimagefield_with_spec - > Attri... > FAILED tests/test_serialization.py::test_imagespecfield - AttributeError: > mod... > FAILED tests/test_thumbnail_tag.py::test_img_tag - AttributeError: module > 'PI... > FAILED tests/test_thumbnail_tag.py::test_img_tag_attrs - AttributeError: > modu... > FAILED tests/test_thumbnail_tag.py::test_assignment_tag - AttributeError: > mod... > FAILED tests/test_thumbnail_tag.py::test_single_dimension - AttributeError: > m... > FAILED tests/test_thumbnail_tag.py::test_alternate_generator - > AttributeError... > =================== 9 failed, 28 passed, 2 warnings in 1.50s > =================== > E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_django-imagekit/build; python3.11 -m > pytest tests > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 > returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2023/07/26/python-django-imagekit_4.1.0-2_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230726;[email protected] or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230726&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.

