def test_open_and_close_match(self): depth = 0 for x in annotate_tree_properties(comments.get_model().objects.all()): depth += getattr(x, 'open', 0) self.assertEqual(x.depth, depth) depth -= len(getattr(x, 'close', [])) self.assertEqual(0, depth)
def test_last_flags_set_correctly_only_on_last_sibling(self): # construct the tree nodes = {} for x in comments.get_model().objects.all(): nodes[x.pk] = (x, []) if x.parent_id: nodes[x.parent_id][1].append(x.pk) # check all the comments for x in annotate_tree_properties(comments.get_model().objects.all()): if getattr(x, 'last', False): # last comments have a parent self.assertTrue(x.parent_id) par, siblings = nodes[x.parent_id] # and ar last in their child list self.assertTrue(x.pk in siblings) self.assertEqual(len(siblings) - 1, siblings.index(x.pk))