1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
import re
import six
from mock import patch
import invoke
import invoke.collection
import invoke.exceptions
import invoke.tasks
import invoke.program
class Init:
"__init__"
def dunder_version_info(self):
assert hasattr(invoke, "__version_info__")
ver = invoke.__version_info__
assert isinstance(ver, tuple)
assert all(isinstance(x, int) for x in ver)
def dunder_version(self):
assert hasattr(invoke, "__version__")
ver = invoke.__version__
assert isinstance(ver, six.string_types)
assert re.match(r"\d+\.\d+\.\d+", ver)
def dunder_version_looks_generated_from_dunder_version_info(self):
# Meh.
ver_part = invoke.__version__.split(".")[0]
ver_info_part = invoke.__version_info__[0]
assert ver_part == str(ver_info_part)
class exposes_bindings:
def task_decorator(self):
assert invoke.task is invoke.tasks.task
def task_class(self):
assert invoke.Task is invoke.tasks.Task
def collection_class(self):
assert invoke.Collection is invoke.collection.Collection
def context_class(self):
assert invoke.Context is invoke.context.Context
def mock_context_class(self):
assert invoke.MockContext is invoke.context.MockContext
def config_class(self):
assert invoke.Config is invoke.config.Config
def pty_size_function(self):
assert invoke.pty_size is invoke.terminals.pty_size
def local_class(self):
assert invoke.Local is invoke.runners.Local
def runner_class(self):
assert invoke.Runner is invoke.runners.Runner
def promise_class(self):
assert invoke.Promise is invoke.runners.Promise
def failure_class(self):
assert invoke.Failure is invoke.runners.Failure
def exceptions(self):
# Meh
for obj in vars(invoke.exceptions).values():
if isinstance(obj, type) and issubclass(obj, BaseException):
top_level = getattr(invoke, obj.__name__)
real = getattr(invoke.exceptions, obj.__name__)
assert top_level is real
def runner_result(self):
assert invoke.Result is invoke.runners.Result
def watchers(self):
assert invoke.StreamWatcher is invoke.watchers.StreamWatcher
assert invoke.Responder is invoke.watchers.Responder
assert invoke.FailingResponder is invoke.watchers.FailingResponder
def program(self):
assert invoke.Program is invoke.program.Program
def filesystemloader(self):
assert invoke.FilesystemLoader is invoke.loader.FilesystemLoader
def argument(self):
assert invoke.Argument is invoke.parser.Argument
def parsercontext(self):
assert invoke.ParserContext is invoke.parser.ParserContext
def parser(self):
assert invoke.Parser is invoke.parser.Parser
def parseresult(self):
assert invoke.ParseResult is invoke.parser.ParseResult
def executor(self):
assert invoke.Executor is invoke.executor.Executor
def call(self):
assert invoke.call is invoke.tasks.call
def Call(self):
# Starting to think we shouldn't bother with lowercase-c call...
assert invoke.Call is invoke.tasks.Call
class offers_singletons:
@patch("invoke.Context")
def run(self, Context):
result = invoke.run("foo", bar="biz")
ctx = Context.return_value
ctx.run.assert_called_once_with("foo", bar="biz")
assert result is ctx.run.return_value
@patch("invoke.Context")
def sudo(self, Context):
result = invoke.sudo("foo", bar="biz")
ctx = Context.return_value
ctx.sudo.assert_called_once_with("foo", bar="biz")
assert result is ctx.sudo.return_value
|