#3390: Deserializer cannot handle circular and forward references to object
instances
--------------------------------------------------------------------------+-
   Reporter:  russellm                                                    |     
           Owner:  jacob                 
     Status:  new                                                         |     
       Component:  Serialization         
    Version:  SVN                                                         |     
      Resolution:                        
   Keywords:  JSON deferrable deserialization circular forward reference  |     
           Stage:  Design decision needed
  Has_patch:  1                                                           |     
      Needs_docs:  0                     
Needs_tests:  0                                                           |   
Needs_better_patch:  1                     
--------------------------------------------------------------------------+-
Comment (by Michael Radziej <[EMAIL PROTECTED]>):

 the tests fail in a strange way here with the postgresql backend. It looks
 a bit weird, perhaps better check for yourself before you invest too many
 thoughts.
 
 {{{
 
 ======================================================================
 FAIL: Doctest: modeltests.serializers.models.__test__.API_TESTS
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/home/mir/lib/python/django/test/doctest.py", line 2156, in
 runTest
     raise self.failureException(self.format_failure(new.getvalue()))
 AssertionError: Failed doctest test for
 modeltests.serializers.models.__test__.API_TESTS
   File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 unknown line number, in API_TESTS
 
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     for obj in serializers.deserialize("json", json):
         obj.save()
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[31]>", line 2, in ?
         obj.save()
       File "/home/mir/lib/python/django/core/serializers/base.py", line
 165, in save
         setattr(self.object, accessor_name, object_list)
       File "/home/mir/lib/python/django/db/models/fields/related.py", line
 460, in __set__
         manager.add(*value)
       File "/home/mir/lib/python/django/db/models/fields/related.py", line
 285, in add
         self._add_items(self.source_col_name, self.target_col_name, *objs)
       File "/home/mir/lib/python/django/db/models/fields/related.py", line
 327, in _add_items
         raise ValueError, "objects to add() must be %s instances" %
 self.model._meta.object_name
     ValueError: objects to add() must be Category instances
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     for obj in serializers.deserialize("json", json):
         obj.save()
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[37]>", line 2, in ?
         obj.save()
       File "/home/mir/lib/python/django/core/serializers/base.py", line
 165, in save
         setattr(self.object, accessor_name, object_list)
       File "/home/mir/lib/python/django/db/models/fields/related.py", line
 460, in __set__
         manager.add(*value)
       File "/home/mir/lib/python/django/db/models/fields/related.py", line
 285, in add
         self._add_items(self.source_col_name, self.target_col_name, *objs)
       File "/home/mir/lib/python/django/db/models/fields/related.py", line
 327, in _add_items
         raise ValueError, "objects to add() must be %s instances" %
 self.model._meta.object_name
     ValueError: objects to add() must be Category instances
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     transaction.commit()
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[38]>", line 1, in ?
         transaction.commit()
       File "/home/mir/lib/python/django/db/transaction.py", line 153, in
 commit
         connection._commit()
       File "/home/mir/lib/python/django/db/backends/postgresql/base.py",
 line 86, in _commit
         return self.connection.commit()
     DatabaseError: {<cursor object at 0xb721b390>: 'FEHLER:
 Einf\xc3\xbcgen oder Aktualisieren in Tabelle
 \xc2\xbbserializers_article\xc2\xab verletzt Fremdschl\xc3\xbcssel-
 Constraint \xc2\xbbauthor_id_refs_id_8fd3731\xc2\xab\nDETAIL:
 Schl\xc3\xbcssel (author_id)=(4) ist nicht in Tabelle
 \xc2\xbbserializers_author\xc2\xab vorhanden.\n'}
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     transaction.leave_transaction_management()
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[39]>", line 1, in ?
         transaction.leave_transaction_management()
       File "/home/mir/lib/python/django/db/transaction.py", line 70, in
 leave_transaction_management
         raise TransactionManagementError("Transaction managed block ended
 with pending COMMIT/ROLLBACK")
     TransactionManagementError: Transaction managed block ended with
 pending COMMIT/ROLLBACK
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     article = Article.objects.get(pk=3)
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[40]>", line 1, in ?
         article = Article.objects.get(pk=3)
       File "/home/mir/lib/python/django/db/models/manager.py", line 73, in
 get
         return self.get_query_set().get(*args, **kwargs)
       File "/home/mir/lib/python/django/db/models/query.py", line 226, in
 get
         raise self.model.DoesNotExist, "%s matching query does not exist."
 % self.model._meta.object_name
     DoesNotExist: Article matching query does not exist.
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     article
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[41]>", line 1, in ?
         article
     NameError: name 'article' is not defined
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     article.categories.all()
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[42]>", line 1, in ?
         article.categories.all()
     NameError: name 'article' is not defined
 ----------------------------------------------------------------------
 File "/home/mir/src/triage/tests/modeltests/serializers/models.py", line
 ?, in modeltests.serializers.models.__test__.API_TESTS
 Failed example:
     article.author
 Exception raised:
     Traceback (most recent call last):
       File "/home/mir/lib/python/django/test/doctest.py", line 1243, in
 __run
         compileflags, 1) in test.globs
       File "<doctest
 modeltests.serializers.models.__test__.API_TESTS[43]>", line 1, in ?
         article.author
     NameError: name 'article' is not defined
 
 }}}

-- 
Ticket URL: <http://code.djangoproject.com/ticket/3390#comment:1>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to