123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- import unittest
- import timing
- import threading
- import time
- exec_num = 0
- class TimingTest(unittest.TestCase):
- def func(self):
- global exec_num
- self.name = 'TANGS TIMING TEST'
- exec_num += 1
- print(self.name)
- @staticmethod
- def reset():
- global exec_num
- exec_num = 0
- @staticmethod
- def timing_start():
- t = threading.Thread(target=timing.run)
- t.setDaemon(True)
- t.start()
- def test_timing_run(self):
- # add task but invalid task_id
- err = None
- try:
- timing.add_task(1, 1, self.func, 1, 1)
- except Exception as e:
- err = str(e)
- self.assertEqual(err, 'task_id must be str')
- # add task but invalid interval
- err = None
- try:
- timing.add_task(1, '1', self.func, 1, 'generate_id')
- except Exception as e:
- err = str(e)
- self.assertEqual(err, 'interval must be int')
- # add task but interval must be bigger than 0
- err = None
- try:
- timing.add_task(1, -1, self.func, 1, 'generate_id')
- except Exception as e:
- err = str(e)
- self.assertEqual(err, 'interval must be bigger than 0')
- # add task but func is not function
- err = None
- try:
- timing.add_task(1, 1, 1, 1, 'generate_id')
- except Exception as e:
- err = str(e)
- self.assertEqual(err, 'func must be func')
- # add task but count is not int
- err = None
- try:
- timing.add_task(1, 1, self.func, '1', 'generate_id')
- except Exception as e:
- err = str(e)
- self.assertEqual(err, 'count must be int')
- timing.set_interval(1)
- timer = timing.Timing()
- timing.defaultTiming = timer
- #
- # # add task success
- # self.timing_start()
- # timing.add_task(1, 1, self.func, 1, 'generate_id')
- # self.assertEqual(len(timer.task), 1)
- # time.sleep(1.5)
- # timing.stop()
- # self.assertEqual(exec_num, 1)
- # self.assertEqual(len(timer.task), 0)
- # time.sleep(1)
- # self.reset()
- #
- # # add task with count 3, wait 3.5, success
- # self.timing_start()
- # timing.add_task(1, 1, self.func, 3, 'generate_id')
- # self.assertEqual(len(timer.task), 1)
- # time.sleep(3.5)
- # timing.stop()
- # self.assertEqual(exec_num, 3)
- # self.assertEqual(len(timer.task), 0)
- # time.sleep(1)
- # self.reset()
- # add task with count 4, wait 3.5, success
- timing.set_interval(1.2)
- self.timing_start()
- timing.add_task(1, 1, self.func, 4, 'generate_id')
- time.sleep(3)
- timing.stop()
- # self.assertAlmostEqual(exec_num, 3, delta=1)
- self.assertEqual(exec_num, 3)
- time.sleep(1)
- self.reset()
- # add task with count less than 0, success
- print('-----------------------------------------')
- timing.set_interval(1.2)
- self.timing_start()
- timing.add_task(1, 1, self.func, -1, 'generate_id')
- time.sleep(3)
- timing.stop()
- self.assertEqual(exec_num, 3)
- self.reset()
- if __name__ == '__main__':
- unittest.main()
|