@@ -0,0 +1,1192 @@
+from tg.configuration.milestones import _ConfigMilestoneTracker%0A%0A%0Aclass Action:%0A    called = 0%0A    def __call__(self):%0A        self.called += 1%0A%0A%0Aclass TestMilestones(object):%0A    def setup(self):%0A        self.milestone = _ConfigMilestoneTracker('test_milestone')%0A%0A    def test_multiple_registration(self):%0A        a = Action()%0A        self.milestone.register(a)%0A        self.milestone.register(a)%0A        self.milestone.register(a)%0A%0A        self.milestone.reach()%0A        assert a.called == 1%0A%0A    def test_register_after_reach(self):%0A        a = Action()%0A%0A        self.milestone.reach()%0A        self.milestone.register(a)%0A        assert a.called == 1%0A%0A    def test_call_all(self):%0A        a = Action()%0A        a2 = Action()%0A        a3 = Action()%0A%0A        self.milestone.register(a)%0A        self.milestone.register(a2)%0A        self.milestone.register(a3)%0A%0A        self.milestone.reach()%0A        assert a.called == a2.called == a3.called == 1%0A%0A    def test_register_func_unique(self):%0A        called = %5B%5D%0A        def f():%0A            called.append(True)%0A%0A        self.milestone.register(f)%0A        self.milestone.register(f)%0A%0A        self.milestone.reach()%0A        assert len(called) == 1%0A%0A%0A%0A

Add tests for config milestones