DominaresTools

Your test suite is green. falsify checks whether it can fail.

A pytest plugin and command that finds tests which pass for the wrong reason: assertions that are always true, assertions that never run, patches aimed at names that don't exist, and checks that only a comment satisfies.

Buy falsify for $49

One payment of $49, plus sales tax where it applies, and every future update. Delivered as a private GitHub repository you're invited to.

What it does

Assertions that cannot fail
Flags asserts that are always true: or True, constants and literals, the same expression on both sides of ==, and unittest forms such as assertTrue(1). Values that can be empty are left alone.
Assertions that never ran
falsify dead-asserts runs your suite under coverage.py and lists every assert that never executed, reading skips from pytest's own report.
Patches that patch nothing
Finds monkeypatch and mock.patch calls aimed at a name that doesn't exist, so the real code was never replaced.
Checks only a comment satisfies
falsify comment-guards reruns suspect tests against a copy of your project with comments stripped, and names each one that then fails. Your working tree is never touched.
Breakage waiting for one line to run
Lazy imports of names that no longer exist, calls with more arguments than the function takes, and a name used above its own local import.
Hangs and hidden failures
Waits with no timeout, await inside a lock, and except blocks that return success.
Fits your workflow
pytest --falsify fails the session on a finding. Configure it in pyproject.toml, get text or JSON, and excuse a line only with a written reason.

Try it

pip install "./falsify[coverage]"
falsify check
falsify dead-asserts
pytest --falsify

What you get

falsify 1.0.0: the pytest plugin and the falsify command, with 208 automated tests. Python 3.10 or newer.

A commercial license. Use it and change it in your own projects and your clients' projects. Don't share or resell the source. Read the license.

Every update. New versions land in the same repository; git pull to get them.

How buying works

  1. Enter your GitHub username. You'll see the account before you pay, so you can check it's yours.
  2. Pay $49, plus any sales tax shown at checkout, on Stripe's checkout page.
  3. Accept the invitation GitHub emails you. Signed in as that account, you'll also find it at github.com/dominares-tools/falsify/invitations. Invitations expire after 7 days; you can get a new one any time.
  4. Clone and install:
    git clone https://github.com/dominares-tools/falsify.git
    pip install ./falsify

Questions

Do I need GitHub?
Yes. Access is a read-only invitation to a private repository, sent to the GitHub account you choose.
Can I get a refund?
Yes, within 14 days, no questions asked. Access ends when the refund goes through. Refund policy.
Who takes the payment?
Stripe. Your purchase is sold through Link, Stripe's checkout service, which also works out sales tax and sends your receipt.
Something wrong?
Email josephlinares02@gmail.com. Every buyer of a tool shares its repository, so support happens by email rather than in GitHub issues.