1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
import unittest
import time
import pytest
from mwclient.sleep import Sleepers
from mwclient.sleep import Sleeper
from mwclient.errors import MaximumRetriesExceeded
import unittest.mock as mock
if __name__ == "__main__":
print()
print("Note: Running in stand-alone mode. Consult the README")
print(" (section 'Contributing') for advice on running tests.")
print()
class TestSleepers(unittest.TestCase):
def setUp(self):
self.sleep = mock.patch('time.sleep').start()
self.max_retries = 10
self.sleepers = Sleepers(self.max_retries, 30)
def tearDown(self):
mock.patch.stopall()
def test_make(self):
sleeper = self.sleepers.make()
assert type(sleeper) == Sleeper
assert sleeper.retries == 0
def test_sleep(self):
sleeper = self.sleepers.make()
sleeper.sleep()
sleeper.sleep()
self.sleep.assert_has_calls([mock.call(0), mock.call(30)])
def test_min_time(self):
sleeper = self.sleepers.make()
sleeper.sleep(5)
self.sleep.assert_has_calls([mock.call(5)])
def test_retries_count(self):
sleeper = self.sleepers.make()
sleeper.sleep()
sleeper.sleep()
assert sleeper.retries == 2
def test_max_retries(self):
sleeper = self.sleepers.make()
for x in range(self.max_retries):
sleeper.sleep()
with pytest.raises(MaximumRetriesExceeded):
sleeper.sleep()
if __name__ == '__main__':
unittest.main()
|