class TestSorting1(unittest.TestCase): """ Verify that we can sort on the pscore attribute. """ def setUp(self): self.p = Project(title="test pscore") self.e1 = Entity(self.p, title="e1") self.e2 = Entity(self.p, title="e2") self.e3 = Entity(self.p, title="e3") self.e4 = Entity(self.p, title="e4") print("Original order of entities:") for e in self.p: print("%(title)s %(pscore)s" % e) def test_sort(self): assert self.p.length == 4 assert self.p.order_method == \ pitz.by_milestone_status_pscore_created_time, \ self.p.order_method for e in self.p: assert e['pscore'] == 0, e['pscore'] assert list(self.p) == [self.e1, self.e2, self.e3, self.e4] self.e1['pscore'] = -10 self.p.order() print("After first pscore change") for e in self.p: print("%(title)s %(pscore)s" % e) assert list(self.p) == [self.e2, self.e3, self.e4, self.e1] self.e3['pscore'] = 10 self.p.order() print("After second pscore change") for e in self.p: print "%(title)s %(pscore)s" % e assert list(self.p) == [self.e3, self.e2, self.e4, self.e1], \ "self.p is \n---\n%s\n---\n" % self.p
class TestByPscoreAndMilestone(unittest.TestCase): def setUp(self): self.p = Project(title="test sorting...") Entity(self.p, title="a", pscore=2) Entity(self.p, title="b", pscore=1) Entity(self.p, title="c", pscore=3) def test_by_pscore_and_milestone(self): self.p.order(by_pscore_and_milestone) prevscore = 99 for e in self.p: print(e) assert e["pscore"] < prevscore, "%s, %s" % (e["pscore"], prevscore) prevscore = e["pscore"]