62 lines
1.3 KiB
Python
62 lines
1.3 KiB
Python
import py
|
|
from py.impl.test.looponfail.util import StatRecorder
|
|
|
|
def test_filechange(tmpdir):
|
|
tmp = tmpdir
|
|
hello = tmp.ensure("hello.py")
|
|
sd = StatRecorder([tmp])
|
|
changed = sd.check()
|
|
assert not changed
|
|
|
|
hello.write("world")
|
|
changed = sd.check()
|
|
assert changed
|
|
|
|
tmp.ensure("new.py")
|
|
changed = sd.check()
|
|
assert changed
|
|
|
|
tmp.join("new.py").remove()
|
|
changed = sd.check()
|
|
assert changed
|
|
|
|
tmp.join("a", "b", "c.py").ensure()
|
|
changed = sd.check()
|
|
assert changed
|
|
|
|
tmp.join("a", "c.txt").ensure()
|
|
changed = sd.check()
|
|
assert changed
|
|
changed = sd.check()
|
|
assert not changed
|
|
|
|
tmp.join("a").remove()
|
|
changed = sd.check()
|
|
assert changed
|
|
|
|
def test_pycremoval(tmpdir):
|
|
tmp = tmpdir
|
|
hello = tmp.ensure("hello.py")
|
|
sd = StatRecorder([tmp])
|
|
changed = sd.check()
|
|
assert not changed
|
|
|
|
pycfile = hello + "c"
|
|
pycfile.ensure()
|
|
changed = sd.check()
|
|
assert not changed
|
|
|
|
hello.write("world")
|
|
changed = sd.check()
|
|
assert not pycfile.check()
|
|
|
|
|
|
def test_waitonchange(tmpdir, monkeypatch):
|
|
tmp = tmpdir
|
|
sd = StatRecorder([tmp])
|
|
|
|
l = [True, False]
|
|
monkeypatch.setattr(StatRecorder, 'check', lambda self: l.pop())
|
|
sd.waitonchange(checkinterval=0.2)
|
|
assert not l
|