Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

testix

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

testix

Mocking framework Python with *exact* Scenarios

  • 12.0.1
  • PyPI
  • Socket score

Maintainers
1

TESTIX

Testix is a Mocking framework for Python, meant to be used with pytest.

MIT license GitHub release

Testix is special because it allows you to specify what your mock objects do, and it then enforces your specifications automatically. It also reduces (albeit not entirely) mock setup. Other frameworks usually have a flow like this:

  • setup mock
  • let code do something with mock
  • assert mock used in correct way

Testix flow is a bit different

  • setup mock objects (sock in the following example)
  • specify exactly what should happen to them using a Scenario context

TOC

Documentation

Read the full docs at readthedocs

Small Example

Here's a small example:

    # create your object under test, pass in some mock objects
    # in production, Chatbot will receive and actual socket object
    # here we want to test what it does with the socket it receives
    # and we do not want it to actually communicate with anyone
    # to both those ends, we pass a mock, or fake, object.
    self.tested = chatbot.Chatbot(Fake('sock')) # Fake('sock') is a mock object named "sock"

    # create a Scenario context
    # inside, you specify exactly what the unit should do with the objects its handed
    with Scenario() as s:

        # we can refer here to s.sock, because there is a mock named `sock`
        s.sock.recv(4096) >> 'request text'  # unit must call sock.recv(4096).
                                             # this call will return 'request text'
        s.sock.send('response text')

        # call your unit's code
        self.tested.go()


# Scenario context ends, and verifies everything happened exactly as specified
# No more, no less

Note that you do not have to setup sock.recv or sock.send - once sock is set up, it will generate other mock objects automatically as you go along with it. Only "top level" mock objects need to be setup explicitly.

Continue reading for further examples.

Installation

With pip:

$ pip install testix

Python 3 and Legacy Python (Python 2)

Testix works with Python 3. It will not work with legacy python.

Credit Where it's due

Testix started as a re-implementation of ideas from the Voodoo-Mock unit-testing framework. Since then it has evolved some different traits though.

License

This software is available under the MIT License, see the LICENSE file.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc