예제 #1
0
    def test_timer(self):
        def runner(timer):
            assert timer.started is False
            assert timer.elapsed is None

            with self.assertRaises(RuntimeError):
                timer.stop()

            timer.start()
            assert timer.elapsed is None
            assert timer.started is True
            with self.assertRaises(RuntimeError):
                timer.start()

            timer.stop()
            assert timer.started is False
            assert isinstance(timer.elapsed, float)

            assert timer.tags == {'foo': 'bar'}

        timer = Timer({"foo": "bar"})

        runner(timer)

        cloned = timer.clone()
        assert timer is not cloned

        runner(cloned)