Skip to main content

Serverboards Mock library

Project description

Serverboards Mock Library -- SMock

SMock is a simple mocking library that helps automated testing of Python code.

Basic usage is to create a yaml file with the mocked functions as keys, and a list of marching args list/kwargs object to a result.

All possible matches are checked in order, and if any matches, that response is given to the caller. A special * marker can be used to match any.

Example of use

Generate a yaml file with the data to mock, mock.yaml:

requests.get:
  - args: https://example.com/item/1
  - result:
    status_code: 200
    json:
      desription: Mocked
requests.get:
  - args: "*"
    result:
      status_code: 404
      content: Not found

This file says that if the user asks for the https://mock.example, it gets a status_code 200 and more info. Any other request, gets a 404.

To use it:

import requests

def get_item_description(id):
  data = requests.get("https://example.com/item/%s" % id)
  return data.json()["description"]

def test():
  smock import SMock
  smock = SMock("data.yaml")
  requests.get = smock.mock_method("requests.get")

  assert get_item_description(1) == "Mocked"

if __name__ == "__main__":
  test()

Tis hypotetical library, has a function get_item_description. When calling this file as a script (__main__), the test is called which monkey patches the requests.get function with our mocked data.

This mocked data returns a special object that behaves like a dict, an object a callable function and so on. In this case we call the json() virtual method to just get an object with a description field.

Extra goodies

  • All data is mocked to behave like a dict, a object and a function
  • Can load external data with file:FILENAME

Contributing

If you have ideas, improvements or comments, please open a github issue.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smock-0.2.13.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file smock-0.2.13.tar.gz.

File metadata

  • Download URL: smock-0.2.13.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.5

File hashes

Hashes for smock-0.2.13.tar.gz
Algorithm Hash digest
SHA256 1a05aae74d3757843ad20009189efb98f0bcfe67828496d5348025c550418f6d
MD5 be9cd93f2ed18358552c38d78fac1897
BLAKE2b-256 27235ef9917fc3a1478bbc7b888db8887c185069d872c4ad3b2d1ce676e3ab66

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page