Cram

Latest version: v0.7

Safety actively analyzes 682404 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.7

---------------------------

* Added the ``-d``/``--debug`` flag that disables diffing of
expected/actual output and instead passes through script output to
``stdout``/``stderr``.

* Added the ``--shell-opts`` flag for specifying flags to invoke the
shell with. By setting ``--shell-opts='-x'`` and ``--debug``
together, this can be used to see shell commands as they're run and
their output in real time which can be useful for debugging slow or
hanging tests.

* Added xUnit XML output support (for better integration of test
results with Bamboo and other continuous integration tools).

* Added support for using (esc) on expected out lines that aren't
automatically escaped in actual output.

* Added the ``$TESTSHELL`` environment variable. This allows a test to
portably check what shell it was invoked with.

* Added an error message for when no tests are found in a directory.

* Changed ``Makefile`` to install into ``/usr/local`` by default.

* Simplified the ``Makefile``'s targets. The targets available now are
``all``, ``build``, ``check``/``test``, ``clean``, ``dist``,
``install``, and ``quicktest`` (for running the test suite without
checking test coverage).

* Fixed non-ASCII strings not being escaped with ``(esc)`` on Python 3.

* Fixed a crash on tests that don't have a trailing newline.

* Fixed a crash when using ``set -x`` with zsh.

0.6

--------------------------

* Added the long option ``--preserve-env`` for ``-E``.

* Added support for specifying options in ``.cramrc`` (configurable
with the ``CRAMRC`` environment variable).

* Added a ``--shell`` option to change the shell tests are run
with. Contributed by `Kamil Kisiel`_.

* Added Arch Linux package metadata (in ``contrib/``). Contributed by
`Andrey Vlasovskikh`_.

* Fixed shell commands unintentionally inheriting Python's ``SIGPIPE``
handler (causing commands that close pipes to print ``broken pipe``
messages).

* Fixed ``EPIPE`` under PyPy when applying patches in
``--interactive`` mode.

* Added ``TESTFILE`` test environment variable (set to the name of the
current test).

* Fixed GNU patch 2.7 compatibility by using relative paths instead of
absolute paths. Contributed by `Douglas Creager`_.

* Fixed name clashes in temporary test directories (e.g., when running
two tests with the same name in different folders).

* **Backwards compatibility:** Fixed improper usage of the subprocess
library under Python 3. This fixes Python 3.3 support, but breaks
support for Python 3.1-3.2.3 due to a bug in Python. If you're using
Python 3.0-3.2, you must upgrade to Python 3.2.4 or newer.

.. _Kamil Kisiel: http://kamilkisiel.net/
.. _Andrey Vlasovskikh: https://twitter.com/vlasovskikh
.. _Douglas Creager: http://dcreager.net/

0.5

--------------------------

* **The test format has changed:** Matching output not ending in a
newline now requires the ``(no-eol)`` keyword instead of ending the
line in ``%``.

* Matching output containing unprintable characters now requires the
``(esc)`` keyword. Real output containing unprintable characters
will automatically receive ``(esc)``.

* If an expected line matches its real output line exactly, special
matching like ``(re)`` or ``(glob)`` will be ignored.

* Regular expressions ending in a trailing backslash are now
considered invalid.

* Added an ``--indent`` option for changing the default amount of
indentation required to specify commands and output.

* Added support for specifying command line options in the ``CRAM``
environment variable.

* The ``--quiet`` and ``--verbose`` options can now be used together.

* When running Cram under Python 3, Unicode-specific line break
characters will no longer be parsed as newlines.

* Tests are no longer required to end in a trailing newline.

0.4

---------------------------

* **The test format has changed:** Output lines containing regular
expressions must now end in ``(re)`` or they'll be matched
literally. Lines ending with keywords are matched literally first,
however.

* Regular expressions are now matched from beginning to end. In other
words ``\d (re)`` is matched as ``^\d$``.

* In addition to ``(re)``, ``(glob)`` has been added. It supports
``*``, ``?``, and escaping both characters (and backslashes) using
``\``.

* **Environment settings have changed:** The ``-D`` flag has been
removed, ``$TESTDIR`` is now set to the directory containing the
``.t`` file, and ``$CRAMTMP`` is set to the test runner's temporary
directory.

* ``-i``/``--interactive`` now requires ``patch(1)``. Instead of
``.err`` files replacing ``.t`` files during merges, diffs are
applied using ``patch(1)``. This prevents matching regular
expressions and globs from getting clobbered.

* Previous ``.err`` files are now removed when tests pass.

* Cram now exits with return code ``1`` if any tests failed.

* If a test exits with return code ``80``, it's considered a skipped a
test. This is useful for intentionally disabling tests when they
only work on certain platforms or in certain settings.

* The number of tests, the number of skipped tests, and the number of
failed tests are now printed after all tests are finished.

* Added ``-q``/``--quiet`` to suppress diff output.

* Added `contrib/cram.vim`_ syntax file for Vim. Contributed by `Steve
Losh`_.

.. _contrib/cram.vim: https://bitbucket.org/brodie/cram/src/default/contrib/cram.vim
.. _Steve Losh: http://stevelosh.com/

0.3

---------------------------

* Implemented resetting of common environment variables. This behavior
can be disabled using the ``-E`` flag.

* Changed the test runner to first make its own overall random
temporary directory, make ``tmp`` inside of it and set ``TMPDIR``,
etc. to its path, and run each test with a random temporary working
directory inside of that.

* Added ``--keep-tmpdir``. Temporary directories are named by test
filename (along with a random string).

* Added ``-i``/``--interactive`` to merge actual output back to into
tests interactively.

* Added ability to match command output not ending in a newline by
suffixing output in the test with ``%``.

0.2

---------------------------

* Changed the test runner to run tests with a random temporary working
directory.

Page 1 of 2

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.