class Pyinvoke < Formula include Language::Python::Virtualenv desc "Pythonic task management & command execution" homepage "http://pyinvoke.org/" url "https://github.com/pyinvoke/invoke/archive/1.0.0.tar.gz" sha256 "29cb714cd61d82b0a6cbfa0dfe4249c98c30a8313104221f6a022c5f8b5bc993" head "https://github.com/pyinvoke/invoke.git" bottle do cellar :any_skip_relocation sha256 "9f473f2a1494ec73191fa5f1e188bf59c4426b403d9d3620fd6bd877463c9313" => :high_sierra sha256 "37e2c92be98d5b920f53acac34a998c99c5b2a949f520ac02e76f5b9107564e6" => :sierra sha256 "7252a19f4d91b6b70feed40027a3db913b36a6e80bacf708b9126c3e818cba16" => :el_capitan end depends_on "python@2" def install virtualenv_install_with_resources end test do (testpath/"tasks.py").write <<~EOS from invoke import run, task @task def clean(ctx, extra=''): patterns = ['foo'] if extra: patterns.append(extra) for pattern in patterns: run("rm -rf {}".format(pattern)) EOS (testpath/"foo"/"bar").mkpath (testpath/"baz").mkpath system bin/"invoke", "clean" refute_predicate testpath/"foo", :exist?, "\"pyinvoke clean\" should have deleted \"foo\"" assert_predicate testpath/"baz", :exist?, "pyinvoke should have left \"baz\"" system bin/"invoke", "clean", "--extra=baz" refute_predicate testpath/"foo", :exist?, "\"pyinvoke clean-extra\" should have still deleted \"foo\"" refute_predicate testpath/"baz", :exist?, "pyinvoke clean-extra should have deleted \"baz\"" end end