1. 05 Oct, 2018 1 commit
  2. 21 Sep, 2018 3 commits
  3. 03 Sep, 2018 1 commit
    • Ola Nilsson's avatar
      Set failure-description for pending specs · 0d742b00
      Ola Nilsson authored
      The status slot in buttercup-suite-or-spec is set ahead of time for
      pending (not skipped) specs.  This meant that the failure-description
      and failure-stack of pending specs were never set in
      buttercup--update-with-funcall.  This in turn meant that the output of
      pending specs was
      
          a pending spec
      
      rather than
      
          a pending spec  PENDING
      
      which it should have been.
      
      The failure-stack will still always be nil for pending specs.
      0d742b00
  4. 31 Aug, 2018 1 commit
  5. 28 Aug, 2018 2 commits
  6. 22 Aug, 2018 1 commit
    • Ola Nilsson's avatar
      Add more markdown running functions · 63306108
      Ola Nilsson authored
      Add function buttercup-run-markdown-buffer that runs all tests found
      in the current buffer and buttercup-run-markdown-file that runs all
      tests in a specified file.
      
      These new functions are convenient to run markdown tests
      interactively.
      63306108
  7. 21 Aug, 2018 2 commits
  8. 29 Jun, 2018 2 commits
  9. 23 Feb, 2018 1 commit
  10. 28 Jan, 2018 1 commit
  11. 29 Oct, 2017 1 commit
  12. 20 Oct, 2017 10 commits
  13. 15 Oct, 2017 1 commit
  14. 29 Sep, 2017 1 commit
  15. 22 Sep, 2017 2 commits
  16. 27 Aug, 2017 6 commits
    • Ryan C. Thompson's avatar
      5d1f338a
    • Ryan C. Thompson's avatar
      Rename functions and arguments for closure manipulation · 20ec520c
      Ryan C. Thompson authored
      Since the "closures" can also be non-closure lambda expressions (in
      the case where lexical binding is disabled), it's more appropriate to
      refer to them as functions. The names of functions and arguments
      dealing with argument wrapper functions have been modified
      accordingly, as have references to closures in function docstrings.
      20ec520c
    • Ryan C. Thompson's avatar
      Declare all variables before first use · b97714df
      Ryan C. Thompson authored
      This eliminates all compiler warnings about free variables.
      b97714df
    • Ryan C. Thompson's avatar
      Implement closure-based expect macro · 929a904d
      Ryan C. Thompson authored
      This redefines the "expect" macro to wrap all its arguments (except
      the matcher) in closures. Matchers are now expected to accept all
      arguments as closures and must "funcall" them to obtain their value.
      This allows matchers to also obtain the unevaluated expression for
      each of their arguments in order to generate more informative error
      messages. All built-in matchers are reimplemented to conform to this
      requirement. This fixes #54.
      
      In addition, this adds some convenience macros for defining matchers.
      The macro "buttercup-define-matcher-for-unary-function" automatically
      generates a matcher for any predicate function, while
      "buttercup-define-matcher-for-binary-function" does the same for a
      comparison function, and also automatically uses any explainer defined
      by ERT for that function for more precise messages in case of a
      mismatch. This fixes #28. More generally, the
      "buttercup--test-expectation" macro makes it easier to construct the
      non-intuitive return values required by buttercup matchers. This fixes
      
      the change to closure-based matchers is mostly backward-compatible,
      with the only user-visible diferences being better error messages.
      However, one major backward-incompatible change is the handling of the
      ":to-throw" matcher, which no longer requires its argument to be
      wrapped in a lambda form, since the "expect" macro now does so
      automatically for all matchers. This fixes #41. In order to aid
      migration, it would be helpful to add a warning when a function
      returns another function, which is a likely indicator that the desired
      expression was wrongly wrapped in a lambda form and wasn't evaluated.
      
      Another new feature is support for issuing warnings during tests. Any
      warning issued during a test is collected in a special buffer and
      displayed after the test finishes.
      
      Tests are added for all new functionality, and existing tests are
      adapted to the new code.
      929a904d
    • Ryan C. Thompson's avatar
      Do not suppress errors while loading test files · 31e765b9
      Ryan C. Thompson authored
      This commit removes the "condition-case" that suppresses errors while
      loading test files. Suppressing these errors can cause buttercup to
      only run the tests that were defined before the error occurred. This
      can cause buttercup to report a successful outcome even though some
      tests were never run.
      
      Fixes #107.
      31e765b9
    • Ryan C. Thompson's avatar
      Exec code blocks in markdown labeled as "emacs-lisp" and "elisp" · c032c8fb
      Ryan C. Thompson authored
      Markdown mode's "markdown-edit-code-block" command automatically uses
      "emacs-lisp-mode" for the code block if the type is "emacs-lisp" or
      "elisp", so those should be supported.
      c032c8fb
  17. 26 Aug, 2017 1 commit
  18. 25 Aug, 2017 1 commit
  19. 12 Aug, 2017 2 commits
    • Ryan C. Thompson's avatar
      Fix several edge cases in "spy-on" · 6ad9565c
      Ryan C. Thompson authored
      The "spy-on" function now works on commands and autoloaded functions,
      and checks for the right number of arguments for each modifier.
      
      For commands, it preserves the interactive form of the original
      command, unless the given replacement overrides it (in which case a
      warning is issued). This means that the spy can be executed as a
      command in the same way as the original.
      
      For autoloads, "spy-on" simply forces the load to happen so that the
      function becomes an ordinary function instead of an autoloaded one.
      
      Finally, all modifiers now check whether the correct number of args
      was provided instead of silently ignoring extra ones. In addition, the
      argument for ":and-throw-error" now defaults to "error" if a more
      specific error type is not specified.
      
      Tests are added for all three features.
      
      This should fix #56 and #103.
      
      Add autoload test
      6ad9565c
    • Ryan C. Thompson's avatar
      Implement configurable stack traces · e8140aa8
      Ryan C. Thompson authored
      Use the "--traceback" command-line option or set the
      "buttercup-stack-frame-style" variable to use this. Possible values
      are "crop", "full", and "pretty". This option still needs to be added
      to the documentation.
      e8140aa8