コード例 #1
0
    def __exit__(self, exc_type, exc_value, exc_tb):
        if exc_type is None:
            expected = pp.format_exception_class(self.exception_class)
            message = "expected: %s is raised\n" \
                      " but was: no exception raised" % expected
            self.test_case._fail(message)

        if not isinstance(exc_value, BaseException):
            # In Python 2.6, exc_value is not always normalized to an
            # exception instance, so we convert it manually here.
            exc_value = exc_type(exc_value)

        if self.exception_class == exc_type:
            if self.exception == exc_type:
                self.test_case._pass_assertion()
            else:
                self.test_case.assert_equal(self.exception, exc_value)
        else:
            expected = pp.format_exception_class(self.exception_class)
            actual = pp.format_exception_class(exc_type)
            message = \
                "expected: %s is raised\n" \
                " but was: %s(%s)" % (expected, actual, str(exc_value))
            self.test_case._fail(message)
        return True
コード例 #2
0
ファイル: assertions.py プロジェクト: clear-code/pikzie
    def __exit__(self, exc_type, exc_value, exc_tb):
        if exc_type is None:
            expected = pp.format_exception_class(self.exception_class)
            message = "expected: %s is raised\n" \
                      " but was: no exception raised" % expected
            self.test_case._fail(message)

        if not isinstance(exc_value, BaseException):
            # In Python 2.6, exc_value is not always normalized to an
            # exception instance, so we convert it manually here.
            exc_value = exc_type(exc_value)

        if self.exception_class == exc_type:
            if self.exception == exc_type:
                self.test_case._pass_assertion()
            else:
                self.test_case.assert_equal(self.exception, exc_value)
        else:
            expected = pp.format_exception_class(self.exception_class)
            actual = pp.format_exception_class(exc_type)
            message = \
                "expected: %s is raised\n" \
                " but was: %s(%s)" % (expected, actual, str(exc_value))
            self.test_case._fail(message)
        return True
コード例 #3
0
    def assert_run_command(self, command, **kw_args):
        """
        Passes if command is successfully ran and returns subprocess.Popen.

          process = self.assert_run_command(["echo", "123"])    # => pass
          self.assert_equal("123\\n", process.stdout.read())    # => pass
          self.assert_run_command("false")                      # => fail
          self.assert_run_command("unknown-command")            # => fail
        """
        import subprocess
        popen_kw_args = {
            "stdin": subprocess.PIPE,
            "stdout": subprocess.PIPE,
            "stderr": subprocess.PIPE,
        }
        popen_kw_args.update(kw_args)
        try:
            process = subprocess.Popen(command, **popen_kw_args)
        except OSError:
            exception_class, exception_value = sys.exc_info()[:2]
            message = "expected: <%s> is successfully ran\n" \
                " but was: <%s>(%s) is raised and failed to ran" % \
                (pp.format(command),
                 pp.format_exception_class(exception_class),
                 str(exception_value))
            self._fail(message)
        return_code = process.wait()
        if return_code != 0:
            message = "expected: <%s> is successfully finished\n" \
                " but was: <%d> is returned as exit code" % \
                (pp.format(command), return_code)
            self._fail(message)
        self._pass_assertion()
        return process
コード例 #4
0
ファイル: assertions.py プロジェクト: clear-code/pikzie
    def assert_run_command(self, command, **kw_args):
        """
        Passes if command is successfully ran and returns subprocess.Popen.

          process = self.assert_run_command(["echo", "123"])    # => pass
          self.assert_equal("123\\n", process.stdout.read())    # => pass
          self.assert_run_command("false")                      # => fail
          self.assert_run_command("unknown-command")            # => fail
        """
        import subprocess
        popen_kw_args = {
            "stdin": subprocess.PIPE,
            "stdout": subprocess.PIPE,
            "stderr": subprocess.PIPE,
        }
        popen_kw_args.update(kw_args)
        try:
            process = subprocess.Popen(command, **popen_kw_args)
        except OSError:
            exception_class, exception_value = sys.exc_info()[:2]
            message = "expected: <%s> is successfully ran\n" \
                " but was: <%s>(%s) is raised and failed to ran" % \
                (pp.format(command),
                 pp.format_exception_class(exception_class),
                 str(exception_value))
            self._fail(message)
        return_code = process.wait()
        if return_code != 0:
            message = "expected: <%s> is successfully finished\n" \
                " but was: <%d> is returned as exit code" % \
                (pp.format(command), return_code)
            self._fail(message)
        self._pass_assertion()
        return process
コード例 #5
0
    def assert_open_file(self, name, *args):
        """
        Passes if open(name, *args) succeeds.

          file = self.assert_open_file("/tmp/exist", "w") # => pass
          self.assert_open_file("/tmp/nonexistence")      # => fail
        """
        try:
            result = open(name, *args)
        except IOError:
            exception_class, exception_value = sys.exc_info()[:2]
            message = \
                "expected: open(%s) succeeds\n" \
                " but was: <%s>(%s) is raised" % \
                (pp.format_call_arguments((name,) + args, {}),
                 pp.format_exception_class(exception_class),
                 str(exception_value))
            self._fail(message)
        self._pass_assertion()
        return result
コード例 #6
0
ファイル: assertions.py プロジェクト: clear-code/pikzie
    def assert_open_file(self, name, *args):
        """
        Passes if open(name, *args) succeeds.

          file = self.assert_open_file("/tmp/exist", "w") # => pass
          self.assert_open_file("/tmp/nonexistence")      # => fail
        """
        try:
            result = open(name, *args)
        except IOError:
            exception_class, exception_value = sys.exc_info()[:2]
            message = \
                "expected: open(%s) succeeds\n" \
                " but was: <%s>(%s) is raised" % \
                (pp.format_call_arguments((name,) + args, {}),
                 pp.format_exception_class(exception_class),
                 str(exception_value))
            self._fail(message)
        self._pass_assertion()
        return result
コード例 #7
0
    def assert_nothing_raised_call(self, callable_object, *args, **kw_args):
        """
        Passes if callable_object(*args, **kw_args) raises nothing exception
        and returns called result.

          self.assert_nothing_raised_call(lambda: 1)                # => pass
                                                                    # => returns 1
          self.assert_nothing_raised_call(lambda: unknown_variable) # => fail
        """
        self.assert_callable(callable_object)
        try:
            result = callable_object(*args, **kw_args)
        except:
            actual = sys.exc_info()[:2]
            actual_exception_class, actual_exception_value = actual
            message = \
                "expected: %s nothing raised\n" \
                " but was: <%s>(%s) is raised" % \
                (pp.format_call(callable_object, args, kw_args),
                 pp.format_exception_class(actual_exception_class),
                 str(actual_exception_value))
            self._fail(message)
        self._pass_assertion()
        return result
コード例 #8
0
ファイル: assertions.py プロジェクト: clear-code/pikzie
    def assert_nothing_raised_call(self, callable_object, *args, **kw_args):
        """
        Passes if callable_object(*args, **kw_args) raises nothing exception
        and returns called result.

          self.assert_nothing_raised_call(lambda: 1)                # => pass
                                                                    # => returns 1
          self.assert_nothing_raised_call(lambda: unknown_variable) # => fail
        """
        self.assert_callable(callable_object)
        try:
            result = callable_object(*args, **kw_args)
        except:
            actual = sys.exc_info()[:2]
            actual_exception_class, actual_exception_value = actual
            message = \
                "expected: %s nothing raised\n" \
                " but was: <%s>(%s) is raised" % \
                (pp.format_call(callable_object, args, kw_args),
                 pp.format_exception_class(actual_exception_class),
                 str(actual_exception_value))
            self._fail(message)
        self._pass_assertion()
        return result
コード例 #9
0
    def assert_raise_call(self, exception, callable_object, *args, **kw_args):
        """
        Passes if callable_object(*args, **kw_args) raises exception and
        returns raised exception value.

          self.assert_raise_call(NameError,
                                 lambda: unknown_variable) # => pass
                                                           # => returns NameError
                                                           #    value
          self.assert_raise_call(NameError, lambda: 1)     # => fail

        Exception instance can be also passed if it's comparable.

          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")
          self.assert_raise_call(ComparableError("value"),
                                 raise_error)              # => pass
                                                           # => returns
                                                           #    ComparableError
                                                           #    value
          self.assert_raise_call(ComparableError("key"),
                                 raise_error)              # => fail
        """
        self.assert_callable(callable_object)
        if isinstance(exception, Exception):
            exception_class = exception.__class__
        else:
            exception_class = exception
        try:
            callable_object(*args, **kw_args)
        except exception_class:
            actual = sys.exc_info()[1]
            if exception_class == exception:
                self._pass_assertion()
            else:
                self.assert_equal(exception, actual)
            return actual
        except:
            actual = sys.exc_info()
            actual_exception_class, actual_exception_value = actual[:2]
            if exception_class == exception:
                expected = "<%s>" % pp.format_exception_class(exception_class)
            else:
                expected = "<%s>(%s)" % \
                    (pp.format_exception_class(exception_class),
                     str(exception))
            actual = "<%s>(%s)" % \
                (pp.format_exception_class(actual_exception_class),
                 str(actual_exception_value))
            message = \
                "expected: %s is raised\n" \
                " but was: %s" % (expected, actual)
            self._fail(message)
        else:
            message = \
                "expected: <%s> is raised\n" \
                " but was: %s nothing raised" % \
                (pp.format_exception_class(exception_class),
                 pp.format_call(callable_object, args, kw_args))
            self._fail(message)
コード例 #10
0
ファイル: assertions.py プロジェクト: clear-code/pikzie
    def assert_raise_call(self, exception, callable_object, *args, **kw_args):
        """
        Passes if callable_object(*args, **kw_args) raises exception and
        returns raised exception value.

          self.assert_raise_call(NameError,
                                 lambda: unknown_variable) # => pass
                                                           # => returns NameError
                                                           #    value
          self.assert_raise_call(NameError, lambda: 1)     # => fail

        Exception instance can be also passed if it's comparable.

          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")
          self.assert_raise_call(ComparableError("value"),
                                 raise_error)              # => pass
                                                           # => returns
                                                           #    ComparableError
                                                           #    value
          self.assert_raise_call(ComparableError("key"),
                                 raise_error)              # => fail
        """
        self.assert_callable(callable_object)
        if isinstance(exception, Exception):
            exception_class = exception.__class__
        else:
            exception_class = exception
        try:
            callable_object(*args, **kw_args)
        except exception_class:
            actual = sys.exc_info()[1]
            if exception_class == exception:
                self._pass_assertion()
            else:
                self.assert_equal(exception, actual)
            return actual
        except:
            actual = sys.exc_info()
            actual_exception_class, actual_exception_value = actual[:2]
            if exception_class == exception:
                expected = "<%s>" % pp.format_exception_class(exception_class)
            else:
                expected = "<%s>(%s)" % \
                    (pp.format_exception_class(exception_class),
                     str(exception))
            actual = "<%s>(%s)" % \
                (pp.format_exception_class(actual_exception_class),
                 str(actual_exception_value))
            message = \
                "expected: %s is raised\n" \
                " but was: %s" % (expected, actual)
            self._fail(message)
        else:
            message = \
                "expected: <%s> is raised\n" \
                " but was: %s nothing raised" % \
                (pp.format_exception_class(exception_class),
                 pp.format_call(callable_object, args, kw_args))
            self._fail(message)