introduce all_metadata column, and start adding stuff

This commit is contained in:
Chris Forbes 2013-07-25 11:08:29 +12:00
parent 85d337a6e4
commit 2c8e836a81
2 changed files with 31 additions and 3 deletions

View file

@ -5,7 +5,9 @@ class Record(models.Model):
metadata = JSONField(blank=True) metadata = JSONField(blank=True)
title = models.TextField() title = models.TextField()
related = models.ManyToManyField('Record', through='Link') @property
def all_metadata(self):
return self.metadata
class Link(models.Model): class Link(models.Model):
link_from = models.ForeignKey(Record, related_name='out_links') link_from = models.ForeignKey(Record, related_name='out_links')

View file

@ -9,5 +9,31 @@ from django.test import TestCase
from record.models import Record, Link from record.models import Record, Link
class RecordTests(TestCase): class RecordTests(TestCase):
def test_boring(self): def setUp(self):
pass self.q = Record.objects.create(
title='Related object',
metadata={
'ex:another_property': 23,
})
self.r = Record.objects.create(
title='A test record',
metadata={
'ex:llama_id': 42,
})
def test_metadata_one_record(self):
d = self.r.all_metadata
self.assertEqual(d['ex:llama_id'], 42)
def test_metadata_one_record_noinherit(self):
# this should work the same way.
l = Link.objects.create(
link_from=self.r,
link_to=self.q,
label='ex:related_to',
inherit=False)
d = self.r.all_metadata
self.assertEqual(d['ex:llama_id'], 42)
self.assertNotIn('ex:related_to', d)