Skip to content

Commit

Permalink
Add test for foreign key self reference
Browse files Browse the repository at this point in the history
  • Loading branch information
treyhunner committed May 25, 2013
1 parent 02eb694 commit bada130
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
5 changes: 5 additions & 0 deletions simple_history/tests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ class Library(models.Model):
history = HistoricalRecords()


class SelfFK(models.Model):
fk = models.ForeignKey('self', null=True)
history = HistoricalRecords()


register(User, app='simple_history.tests', manager_name='histories')


Expand Down
12 changes: 11 additions & 1 deletion simple_history/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
except ImportError: # django 1.4 compatibility
from django.contrib.auth.models import User

from .models import Poll, Choice, Restaurant, Person, FileModel, Document, Book, Library, State
from .models import Poll, Choice, Restaurant, Person, FileModel, Document, Book, Library, State, SelfFK
from .models import ExternalModel1, ExternalModel3
from simple_history import register
from simple_history.tests.external.models import ExternalModel2, ExternalModel4
Expand Down Expand Up @@ -197,6 +197,16 @@ def test_string_defined_foreign_key_save(self):
self.assertEqual([s.library_id for s in state.history.all()],
[None, library2.pk, library1.pk])

def test_self_referential_foreign_key(self):
model = SelfFK.objects.create()
other = SelfFK.objects.create()
model.fk = model
model.save()
model.fk = other
model.save()
self.assertEqual([m.fk_id for m in model.history.all()],
[other.id, model.id, None])

def test_raw_save(self):
document = Document()
document.save_base(raw=True)
Expand Down

0 comments on commit bada130

Please sign in to comment.