Files
ipars/tests/test_timer.py

70 lines
1.5 KiB
Python

import time
import pytest
from ipars import TimerManager
def test_getWorkTime_seconds():
timer = TimerManager()
timer.start()
time.sleep(0.1)
timer.end()
result = timer.getWorkTime('seconds')
assert 0.05 < result < 0.5
def test_getWorkTime_minutes():
timer = TimerManager()
timer.start()
time.sleep(0.1)
timer.end()
result = timer.getWorkTime('minutes')
assert result < 0.01
def test_getWorkTime_hours():
timer = TimerManager()
timer.start()
time.sleep(0.1)
timer.end()
result = timer.getWorkTime('hours')
assert result < 0.001
def test_getWorkTime_ndigits():
timer = TimerManager()
timer.start()
time.sleep(0.1)
timer.end()
result = timer.getWorkTime('seconds', ndigits=2)
assert isinstance(result, float)
assert len(str(result).split('.')[-1]) <= 2
def test_getWorkTime_returns_float():
timer = TimerManager()
timer.start()
timer.end()
result = timer.getWorkTime()
assert isinstance(result, float)
def test_raises_without_start():
timer = TimerManager()
with pytest.raises(ValueError, match='"start"'):
timer.getWorkTime()
def test_raises_without_end():
timer = TimerManager()
timer.start()
with pytest.raises(ValueError, match='"end"'):
timer.getWorkTime()
def test_raises_invalid_format():
timer = TimerManager()
timer.start()
timer.end()
with pytest.raises(ValueError, match='milliseconds'):
timer.getWorkTime('milliseconds')