<commit_before>typ (Test Your Program)
=======================

typ is a simple program for testing command line executables and Python code.

Introduction
------------

typ originated out of work on the Blink and Chromium projects, as a way to 
provide a friendly interface on top of the Python unittest modules.

It supports test discovery, parallel test execution,
clean logging of progress and results in the style of the Ninja build tool,

When testing Python code it also supports integrated code coverage reporting
and debugging (pdb) support.

Work remaining
--------------

typ is still a work in progress, but it's getting close to being done.
Things remaining, roughly in priority order:

- Clean up the API and refactor the tester module
- investigate unittest.TestResult.buffer
- Support for per-process setup and teardown entry points (for telemetry
  and run-webkit-tests to support efficient per-process launching of
  browsers)
- Write documentation
- Support for test sharding in addition to parallel execution (so that
  run-webkit-tests can re-use as much of the code as possible
- Support for non-unittest runtest invocation (for run-webkit-tests,
  other harnesses?)
- (Re-)test on Windows, Linux to check for regressions
- Add more testing of the exact output
- Implement a non-python file format for testing command line interfaces
- Testing intra-method test skipping (a la @unittest.skip)
- Remove as many of the "pragma: no-cover" hacks as possible and get test
  coverage for the remaining blocks of "uncovered" code:
  - figure out how to get coverage of the command-line based tests
  - figure out how to get output trapping working inside tests
  - add fakes for coverage and pdb
  - test tests failing a second time
  - test failing uploads
<commit_msg>update README, reprioritize tasks<commit_after>typ (Test Your Program)
=======================

typ is a simple program for testing command line executables and Python code.

Introduction
------------

typ originated out of work on the Blink and Chromium projects, as a way to 
provide a friendly interface on top of the Python unittest modules.

It supports test discovery, parallel test execution,
clean logging of progress and results in the style of the Ninja build tool,

When testing Python code it also supports integrated code coverage reporting
and debugging (pdb) support.

Work remaining
--------------

typ is still a work in progress, but it's getting close to being done.
Things remaining for 1.0, roughly in priority order:

- Testing intra-method test skipping (a la @unittest.skip) and 
  expected failures
- Clean up the API and refactor the tester module
- Support for per-process setup and teardown entry points (for telemetry
  and run-webkit-tests to support efficient per-process launching of
  browsers)
- (Re-)test on Windows, Linux to check for regressions
- Add more testing of the exact output
- Remove as many of the "pragma: no-cover" hacks as possible and get test
  coverage for the remaining blocks of "uncovered" code:
  - figure out how to get coverage of the command-line based tests
  - figure out how to get output trapping working inside tests
  - add fakes for coverage and pdb
  - test tests failing a second time
  - test failing uploads
- Write documentation

Possible future work
--------------------

- investigate unittest.TestResult.buffer
- support testing javascript, c++/gtest-style binaries
- Implement a non-python file format for testing command line interfaces
- Support for test sharding in addition to parallel execution (so that
  run-webkit-tests can re-use as much of the code as possible
- Support for non-unittest runtest invocation (for run-webkit-tests,
  other harnesses?)

{'fraction_non_alphanumeric': 0.07254164427727028, 'fraction_numerical': 0.0005373455131649651, 'mean_word_length': 3.7853470437017993, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2782879', 'n_tokens_mistral': 944, 'n_tokens_neox': 902, 'n_words': 522}