#!/usr/bin/env python3.5 from subprocess import run from time import sleep def redo_ifchange(dependency): run(['redo-ifchange', dependency]) with open('source', 'w') as f: f.write('foo') redo_ifchange('target') with open('target', 'r') as f: target_contents_1 = f.read() sleep(1) with open('source', 'w') as f: f.write('bar') redo_ifchange('target') with open('target', 'r') as f: target_contents_2 = f.read() if target_contents_1 == target_contents_2: exit(1)