My only suggestion here would be to not bleed the choice of args representation for ```subprocess.check_call``` into the ```flags``` parameter of ```assertCDL```.

Would you be obverse to defaulting ```flags='-h'``` and adding some parameter checking code within ```assertCDL``` to ensure flags is converted/promoted to a tuple, and also more importantly catch if ```flags=None``` to set it to an empty tuple. This approach doesn't force the caller of ```assertCDL``` to appreciate what's going on under the hood.