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()
 | 
						|
   
 |