Once in a while, we get a ticket about failures when running the Django test suite on PyPy. Sometimes they are bugs in PyPy, other times we use something that's not available or behaves differently in PyPy. Is it worth adding PyPy to our continuous integration so we can proactively address these issues?
(We can't test with pypy3 since that's based on Python 3.2 which we've dropped support for in Django 1.9.) Recent tickets: https://code.djangoproject.com/ticket/24779 https://code.djangoproject.com/ticket/25844 Current failures with pypy 2.4.0 and Django 1.9: ====================================================================== ERROR: test_serialize_datetime (migrations.test_writer.WriterTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/migrations/test_writer.py", line 248, in test_serialize_datetime self.assertSerializedEqual(datetime.datetime.utcnow) File "/home/tim/code/django/tests/migrations/test_writer.py", line 179, in assertSerializedEqual self.assertEqual(self.serialize_round_trip(value), value) File "/home/tim/code/django/tests/migrations/test_writer.py", line 175, in serialize_round_trip string, imports = MigrationWriter.serialize(value) File "/home/tim/code/django/django/db/migrations/writer.py", line 540, in serialize "topics/migrations/#migration-serializing" % (value, get_docs_version()) ValueError: Cannot serialize: <bound method type.utcnow of <class 'datetime.datetime'>> There are some values Django cannot serialize into migration files. For more, see https://docs.djangoproject.com/en/dev/topics/migrations/#migration-serializing ====================================================================== ERROR: test_simple_migration (migrations.test_writer.WriterTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/migrations/test_writer.py", line 459, in test_simple_migration output = writer.as_string() File "/home/tim/code/django/django/db/migrations/writer.py", line 167, in as_string operation_string, operation_imports = OperationWriter(operation).serialize() File "/home/tim/code/django/django/db/migrations/writer.py", line 124, in serialize _write(arg_name, arg_value) File "/home/tim/code/django/django/db/migrations/writer.py", line 76, in _write arg_string, arg_imports = MigrationWriter.serialize(item) File "/home/tim/code/django/django/db/migrations/writer.py", line 357, in serialize item_string, item_imports = cls.serialize(item) File "/home/tim/code/django/django/db/migrations/writer.py", line 433, in serialize return cls.serialize_deconstructed(path, args, kwargs) File "/home/tim/code/django/django/db/migrations/writer.py", line 318, in serialize_deconstructed arg_string, arg_imports = cls.serialize(arg) File "/home/tim/code/django/django/db/migrations/writer.py", line 540, in serialize "topics/migrations/#migration-serializing" % (value, get_docs_version()) ValueError: Cannot serialize: <bound method type.utcnow of <class 'datetime.datetime'>> There are some values Django cannot serialize into migration files. For more, see https://docs.djangoproject.com/en/dev/topics/migrations/#migration-serializing ====================================================================== ERROR: test_band_data_setters (gis_tests.gdal_tests.test_raster.GDALBandTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/gis_tests/gdal_tests/test_raster.py", line 357, in test_band_data_setters bandmem.data(packed_block, (1, 1), (2, 2)) File "/home/tim/code/django/django/contrib/gis/gdal/raster/band.py", line 133, in data data_array = ctypes_array.from_buffer_copy(data) AttributeError: type object 'c_ubyte_Array_4' has no attribute 'from_buffer_copy' ====================================================================== FAIL: test_prefetch_related_queryset (model_forms.tests.OtherModelFormTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/model_forms/tests.py", line 2308, in test_prefetch_related_queryset (red_item.pk, 'red'), File "/home/tim/code/django/django/test/testcases.py", line 93, in __exit__ query['sql'] for query in self.captured_queries AssertionError: 2 queries executed, 4 expected Captured queries were: SELECT "model_forms_colourfulitem"."id", "model_forms_colourfulitem"."name" FROM "model_forms_colourfulitem" SELECT ("model_forms_colourfulitem_colours"."colourfulitem_id") AS "_prefetch_related_val_colourfulitem_id", "model_forms_colour"."id", "model_forms_colour"."name" FROM "model_forms_colour" INNER JOIN "model_forms_colourfulitem_colours" ON ("model_forms_colour"."id" = "model_forms_colourfulitem_colours"."colour_id") WHERE "model_forms_colourfulitem_colours"."colourfulitem_id" IN (1, 2) ====================================================================== FAIL: test_load_backend_invalid_name (backends.test_utils.TestLoadBackend) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/backends/test_utils.py", line 16, in test_load_backend_invalid_name load_backend('foo') File "/opt/pypy-2.4.0/lib-python/2.7/contextlib.py", line 35, in __exit__ self.gen.throw(type, value, traceback) File "/home/tim/code/django/django/test/testcases.py", line 612, in _assert_raises_message_cm self.assertIn(expected_message, str(cm.exception)) AssertionError: "'foo' isn't an available database backend.\nTry using 'django.db.backends.XXX', where XXX is one of:\n 'mysql', 'oracle', 'postgresql', 'sqlite3'\nError was: No module named foo.base" not found in "'foo' isn't an available database backend.\nTry using 'django.db.backends.XXX', where XXX is one of:\n 'mysql', 'oracle', 'postgresql', 'sqlite3'\nError was: No module named foo" ====================================================================== FAIL: test_graph_iterative (migrations.test_graph.GraphTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/migrations/test_graph.py", line 203, in test_graph_iterative self.assertEqual(len(w), 1) AssertionError: 0 != 1 ====================================================================== FAIL: test_serialize_datetime_safe (migrations.test_writer.WriterTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/migrations/test_writer.py", line 271, in test_serialize_datetime_safe ("datetime.date(2014, 3, 31)", {'import datetime'}) File "/home/tim/code/django/tests/migrations/test_writer.py", line 182, in assertSerializedResultEqual self.assertEqual(MigrationWriter.serialize(value), target) AssertionError: Tuples differ: (u'datetime.datetime.date(2014... != (u'datetime.date(2014, 3, 31)'... First differing element 0: datetime.datetime.date(2014, 3, 31) datetime.date(2014, 3, 31) - (u'datetime.datetime.date(2014, 3, 31)', set([u'import datetime'])) ? --------- + (u'datetime.date(2014, 3, 31)', set([u'import datetime'])) ====================================================================== FAIL: test_band_data (gis_tests.gdal_tests.test_raster.GDALBandTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tim/code/django/tests/gis_tests/gdal_tests/test_raster.py", line 309, in test_band_data self.assertEqual(self.band.max, 255) AssertionError: 9.0 != 255 ---------------------------------------------------------------------- Ran 10408 tests in 564.183s FAILED (failures=5, errors=3, skipped=894, expected failures=7) -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To post to this group, send email to django-developers@googlegroups.com. Visit this group at http://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/8d525073-8011-49cc-9965-a0ef4ccf438f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.