Python: class Assertions

assertions = class Assertions(__builtin__.object)
`` |  | Methods defined here: assert_call_nothing_raised(self, *args, **kw_args) `非推奨です。assert_nothing_raised_call()を使ってください。` assert_call_raise(self, *args, **kw_args) `非推奨です。assert_raise_call()を使ってください。` assert_callable(self, object, message=None) `callable(object)がTrueを返すとパスします。 assert_callable(lambda: 1) # => パス assert_callable("string") # => 失敗` assert_equal(self, expected, actual, message=None) `expected == actualのときパスします。 assert_equal(5, 2 + 3) # => パス` assert_exists(self, path) `パスが存在したらパスします。 assert_exists("/tmp/exist") # => パス assert_exists("/tmp/nonexistence") # => 失敗` assert_false(self, expression, message=None) `expressionが偽の値のときパスします。 assert_false(False) # => パス assert_false("") # => パス` assert_hasattr(self, object, name, message=None) `hasattr(object, name)がTrueを返すとパスします。 assert_hasattr("string", "strip") # => パス assert_hasattr("string", "unknown") # => 失敗` assert_in_delta(self, expected, actual, delta, message=None) `(expected - delta) <= actual <= (expected + delta)のときパスします。 assert_in_delta(3, 3.01, 0.001) # => パス` assert_kernel_symbol(self, name) `/proc/kallsymsをオープンできて、読み込んだリストの中にnameがあればパスします。 assert_kernel_symbol("printk") # => パス # printkのアドレスを返す assert_kernel_symbol("non_existent") # => 失敗` assert_match(self, pattern, target, message=None) `re.match(pattern, target)がNoneを返さなければパスします。 assert_match("abc", "abcde") # => パス assert_match("abc", "deabc") # => 失敗` assert_none(self, expression, message=None) `expressionがNoneのときパスします。 assert_none(None) # => パス` assert_not_equal(self, not_expected, actual, message=None) `not_expected != actualのときパスします。 assert_not_equal(-5, 2 + 3) # => パス` assert_not_exists(self, path) `パスが存在しなかったらパスします。 assert_not_exists("/tmp/nonexistence") # => パス assert_not_exists("/tmp/exist") # => 失敗` assert_not_found(self, pattern, target, message=None) `re.search(pattern, target)がNoneを返すとパスします。 assert_search("abc", "deABC") # => パス assert_search("abc", "deabc") # => 失敗` assert_not_match(self, pattern, target, message=None) `re.match(pattern, target)がNoneを返すとパスします。 assert_not_match("abc", "deabc") # => パス assert_not_match("abc", "abcde") # => 失敗` assert_not_none(self, expression, message=None) `expressionがNoneではないときパスします。 assert_not_none("not none") # => パス` assert_nothing_raised_call(self, callable_object, *args, **kw_args) `callable_object(*args, **kw_args)が例外exceptionを発生させるとパスします。 assert_call_raise(NameError, lambda: unknown_variable) # => パス assert_call_raise(NameError, lambda: 1) # => 失敗` assert_open_file(self, name, *args) `open(name, *args)が成功するとパスします。 file = assert_open_file("/tmp/exist", "w") # => パス assert_open_file("/tmp/nonexistence") # => 失敗` assert_raise_call(self, exception, callable_object, *args, **kw_args) `callable_object(*args, **kw_args)が例外を発生させたらパスします。そして、発生した例外を返します。 assert_raise_call(NameError, lambda: unknown_variable) # => パス # => NameErrorを返す assert_raise_call(NameError, lambda: 1) # => 失敗 もし、例外インスタンスが比較可能であれば、例外インスタンスを渡すこともできます。 class ComparableError(Exception): def __init__(self, message): self.message = message def __repr__(self): return "%s(%r,)" % (type(self).__name__, self.message) def __eq__(self, other): return isinstance(other, self.__class__) and self.message == other.message def raise_error(): raise ComparableError("value") assert_raise_call(ComparableError("value"), raise_error) # => パス # => ComparableErrorを返す assert_raise_call(ComparableError("key"), raise_error) # => 失敗` assert_run_command(self, command, **kw_args) `コマンドが正常終了するとパスします。subprocess.Popenオブジェクトを返します。 process = assert_run_command(["echo", "123"]) # => パス assert_equal("123\n", process.stdout.read()) # => パス assert_run_command("false") # => 失敗 assert_run_command("unknown-command") # => 失敗` assert_search(self, pattern, target, message=None) `re.search(pattern, target)がNoneを返さなければパスします。 assert_search("abc", "deabc") # => パス assert_search("abc", "deABC") # => 失敗` assert_search_syslog_call(self, pattern, callable_object, *args, **kw_args) `callable_object(*args, **kw_args)の後にre.search(pattern, SYSLOG_CONTENT)がNoneを返さなければパスします。 assert_search_syslog_call("X", syslog.syslog, "XYZ") # => パス assert_search_syslog_call("X", syslog.syslog, "ABC") # => 失敗` assert_true(self, expression, message=None) `expressionが真の値のときパスします。 assert_true(True) # => パス assert_true("string") # => パス` assert_try_call(self, timeout, interval, callable_object, *args, **kw_args) `callable_object(*args, **kw_args)が<timeout>秒の間に1つでもアサーションがパスすればパスします。（約<timeout / interval>回callable_object()が呼び出されます） def random_number(): number = random.randint(0, 9) assert_in_delta(5, number, 1) return number assert_try_call(1, 0.1, random_number) # => たぶんパス # 4か5か6を返す assert_try_call(1, 0.1, self.fail, "Never succeed") # => 失敗` fail(self, message) `Always fails with message. fail("must not happen!") # => fail` notify(self, message) `実行中のテスト用メッセージを通知します。 if command_not_found: notify("コマンドがみつからないので省略します") # => メッセージを通知 return` omit(self, message) `実行中のテストを省略します。 if module_not_found: omit("モジュールが見つからないので省略します") # => テストを省略` pend(self, message) `実行中のテストを保留します。 pend("モジュールXXXが見つかりません") # => テストを保留` Data descriptors defined here: __dict__ `dictionary for instance variables (if defined)` __weakref__ `list of weak references to the object (if defined)`