65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
| import py
 | |
| from py.__.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):
 | |
|     tmp = tmpdir
 | |
|     sd = StatRecorder([tmp])
 | |
| 
 | |
|     wp = py._thread.WorkerPool(1)
 | |
|     reply = wp.dispatch(sd.waitonchange, checkinterval=0.2)
 | |
|     py.std.time.sleep(0.05)
 | |
|     tmp.ensure("newfile.py")
 | |
|     reply.get(timeout=0.5)
 | |
|     wp.shutdown()
 | |
|    
 |