i hate expensive properties

This commit is contained in:
Chris Forbes 2013-07-25 11:18:01 +12:00
parent 75b44aa1d9
commit fc6640807c
2 changed files with 6 additions and 7 deletions

View file

@ -5,15 +5,14 @@ class Record(models.Model):
metadata = JSONField(blank=True)
title = models.TextField()
@property
def all_metadata(self):
result = {}
for l in self.out_links.filter(inherit=True):
if l.prefix is None:
result.update(l.link_to.all_metadata)
result.update(l.link_to.all_metadata())
else:
for k,v in l.link_to.all_metadata.iteritems():
for k,v in l.link_to.all_metadata().iteritems():
result[l.prefix + ':' + k] = v
result.update(self.metadata)

View file

@ -22,7 +22,7 @@ class RecordTests(TestCase):
})
def test_metadata_one_record(self):
d = self.r.all_metadata
d = self.r.all_metadata()
self.assertEqual(d['ex:llama_id'], 42)
def test_metadata_noinherit(self):
@ -33,7 +33,7 @@ class RecordTests(TestCase):
label='ex:related_to',
inherit=False)
d = self.r.all_metadata
d = self.r.all_metadata()
self.assertEqual(d['ex:llama_id'], 42)
self.assertNotIn('ex:another_property', d)
@ -46,7 +46,7 @@ class RecordTests(TestCase):
label='ex:related_to',
inherit=True)
d = self.r.all_metadata
d = self.r.all_metadata()
self.assertEqual(d['ex:llama_id'], 42)
self.assertEqual(d['ex:another_property'], 23)
@ -62,7 +62,7 @@ class RecordTests(TestCase):
inherit=True,
prefix='p')
d = self.r.all_metadata
d = self.r.all_metadata()
self.assertEqual(d['ex:llama_id'], 42)
self.assertEqual(d['p:ex:another_property'], 23)