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
 |