﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
27128	A method model.objects.get(pk=obj.pk) returns many objects, but in a database is one.	Seti	nobody	"Very strange behaviour of the Django ORM while testing (now I am using pytest)

I have two apps ""books"" and ""replies"".
The app ""books"" has two models http://pastebin.com/gDMi7UpU
The app ""replies"" has one model http://pastebin.com/u9FabQQA

For create new objects I am using factories for replies - http://pastebin.com/pGtiwS2m, for books and writers - http://pastebin.com/NQ6AWxib

While testing methods of queryset of the model Book I got error, where it should not be

A file querysets.py of the app ""books"" http://pastebin.com/FVnLLzxK
Tests for the file querysets.py of the app ""books"" http://pastebin.com/rmpDm0Ae

For testing I am using the pytest with next configuration in a file pytest.ini

{{{
[pytest]
addopts = -s --reuse-db --ff --maxfail=1 apps/books/tests/test_querysets.py::Tests
DJANGO_SETTINGS_MODULE=config.settings.development
}}}


Run test as next py.test

Traceback http://pastebin.com/Vv96XLzm

After many time googling and dipping in the Django`s code by the traceback I decided it is bug in the Django

I think it is the problem related with that models the Book and the Reply is related by help the field GenericRelation, but I don`t found facts for it.

Sorry for my grammar mistakes, I was no originally an English

If need another codes from my project, please tell about it

Update
Same error I had when tested a method ""get_admin_url()"" of the model Book with next a testing code

{{{
def test_get_admin_url(self):
        self.client.force_login(self.active_superuser)
        response = self.client.get(self.book.get_admin_url())
        self.assertEqual(response.status_code, 200)
}}}

Ending a traceback

{{{
        if not num:
            raise self.model.DoesNotExist(
                ""%s matching query does not exist."" %
                self.model._meta.object_name
            )
        raise self.model.MultipleObjectsReturned(
            ""get() returned more than one %s -- it returned %s!"" %
>           (self.model._meta.object_name, num)
        )
E       apps.books.models.MultipleObjectsReturned: get() returned more than one Book -- it returned 3!
}}}

"	Bug	new	Uncategorized	1.9	Normal		GenericRelation, Testing, Models		Unreviewed	0	0	0	0	0	0
