Skip to main content

testvars - Place-holders in complex test assertions

Project description

testvars - Place-holders in complex test assertions

Sometimes, when writing tests, you want to assert that a data structure computed in a test matches some expected value, but the expected value might have components, such as times or generated ids that can’t be predicted ahead of time. Options in this situation include:

  • break the assertion into many assertions about various parts of the data structure.

  • Use mocking/stubbing to control things like time and ids to make unpredictable parts of the data predictable.

Both of these approaches tend to be pretty tedious and potentially error prone.

The tiny testvars package provides an alternative that is much easier to use in many cases. The package provides a Vars class:

>>> import testvars
>>> vars = testvars.Vars()

When Vars attributes are compared equal the first time, the comparison succeeds and alse sets their value:

>>> vars.x == 1
True

At that point, the value is set, and you can make assertions against it:

>>> vars.x
1
>>> vars.x > 0
True

Further comparisons are against this set value:

>>> vars.x == 2
False

This is useful when dealing with data structures with unpredictable parts:

>>> expected = {'id': vars.child_id, 'name':"Alex"}
>>> {'id': 32, 'name':"Alex"} == expected
True

It’s also interesting when, while you don’t know what values will be, you can make assertions about how values are related:

>>> expected = {'id': vars.parent_id, 'name':'Cas',
...             'children': [vars.child_id]}
>>> expected == {'id': 42, 'name':'Cas', 'children':[32]}
True
>>> expected == {'id': 42, 'name':'Cas', 'children':[33]}
False
>>> [vars.y, 2, 3, vars.y] == [9, 2, 3, 9]
True
>>> [vars.z, 2, 3, vars.z] == [8, 2, 3, 9]
False

Changes

1.0.0 (2017-07-07)

Initial release

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

testvars-1.0.0.tar.gz (3.5 kB view details)

Uploaded Source

File details

Details for the file testvars-1.0.0.tar.gz.

File metadata

  • Download URL: testvars-1.0.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for testvars-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ce3c6bfae70b7be4f96a6b659958a242ac1fa7ac079d97b27693f31591da868e
MD5 275329b37a2b6a59223225b0dfcf9921
BLAKE2b-256 eeba8d21aa805bdb7ae8801a0debba66af0dab741a35521bbffefa0b5a635542

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