Skip to main content

No project description provided

Project description

# pytest-dictsdiff


## Installation

$ pip install pytest-dictsdiff

## Usage


At your test use `dicts_are_same` fixture and use it to compare two
objects:

```python

def test_dicts(dicts_are_same):
dict1 = {'a': 1, 'b': 2, 'c': {'d': 4, 'e': 5}}
dict2 = {'a': 100, 'f': 2, 'c': {'d': 400, 'g': 5}}
assert dicts_are_same(dict1, dict2)

## Todos

- [ ] Use `pprint` instead of `json` when showing objects (currently it would fail
if data would contain any non-json-serializable objects)


## Example

Save following snippet as `dicts.py` and run `pytest dicts.py`.

```python
from collections import OrderedDict


RESULT = OrderedDict({
"cell": "(056)-022-8631",
"dob": {
"age": 44,
"date": "1983-11-04T01:21:14Z"
},
"email": "zeyneb.elfring@example.com",
"gender": "female",
"id": {
"name": "BSN",
"value": "36180866"
},
"location": {
"city": "tholen",
"coordinates": {
"latitude": "46.8823",
"longitude": "175.8856"
},
"postcode": 64504,
"state": "groningen",
"street": "2074 adriaen van ostadelaan",
"timezone": {
"description": "Adelaide, Darwin",
"offset": "+9:30"
}
},
"login": {
"md5": "bafe8cf9d37806a7b13edc218d5ff762",
"password": "ontario",
"salt": "QVBKgEjy",
"sha1": "cacef09ff61072d1c55732963766fa84e919aa7a",
"sha256": "cc86af47aedbdbb1de73ff10484996fe9785c47c0fc191b7c67eaf71e0782300",
"username": "smallgorilla897",
"uuid": "37e30c59-bc79-4172-aac6-e2c640e165fa"
},
"name": {
"first": "zeyneb",
"last": "elfring",
"title": "mrs"
},
"nat": "NL",
"phone": "(209)-143-9697",
"picture": {
"large": "https://randomuser.me/api/portraits/women/37.jpg",
"medium": "https://randomuser.me/api/portraits/med/women/37.jpg",
"thumbnail": "https://randomuser.me/api/portraits/thumb/women/37.jpg"
},
"registered": {
"age": 3,
"date": "2014-12-07T06:54:14Z"
}
})

EXPECTED_DATA = {
"cell": "(056)-022-8631",
"dob": {
"age": 34,
"date": "1953-11-04T01:21:04Z"
},
"email": "zeyneb.elfring@example.com",
"gender": "female",
"id": {
"name": "BSN",
"value": "36180866"
},
"location": {
"city": "Tholen",
"coordinates": {
"latitude": "46.8823",
"longitude": "175.8856"
},
"postcode": 64509,
"state": "groningen",
"street": "2074 adriaen van ostadelaan",
"timezone": {
"description": "Adelaide, Darwin",
"offset": "+9:30"
}
},
"login": {
"md5": "bafe8cf9d37806a7b13edc218d5ff762",
"password": "ontario",
"salt": "QVBKgEjy",
"sha1": "cacef09ff61072d1c55732963766fa84e919aa7a",
"sha256": "cc86af47aedbdbb1de73ff10484996fe9785c47c0fc191b7c67eaf71e0782300",
"username": "smallgorilla897",
"uuid": "37e30c59-bc79-4172-aac6-e2c640e165fa"
},
"name": {
"first": "Zeyneb",
"last": "Elfring",
"title": "mrs"
},
"nat": "NL",
"phone": "(209)-143-9697",
"picture": {
"large": "https://randomuser.me/api/portraits/women/37.jpg",
"medium": "https://randomuser.me/api/portraits/med/women/37.jpg",
"thumbnail": "https://randomuser.me/api/portraits/thumb/women/37.jpg"
},
"registered": {
"age": 3,
"date": "2014-12-07T06:54:14Z"
}
}


def test_compare_dicts(dicts_are_same):
assert dicts_are_same(RESULT, EXPECTED_DATA)

```


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

pytest-dictsdiff-0.5.2.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

pytest_dictsdiff-0.5.2-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file pytest-dictsdiff-0.5.2.tar.gz.

File metadata

File hashes

Hashes for pytest-dictsdiff-0.5.2.tar.gz
Algorithm Hash digest
SHA256 8dc120630b1257f1dd07ab652f484441f3fae9a38e0fa1d5f150dbafd5a187bc
MD5 673ce2dd84570929d42308c48f36c8d1
BLAKE2b-256 e5a9a2e7b604c8df20e2127dabdb81233bbb6a58e2fba1d63d7b5bec472a42b6

See more details on using hashes here.

Provenance

File details

Details for the file pytest_dictsdiff-0.5.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_dictsdiff-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fcf0b3736965aae941d2fe0f19dcf96dfa30b52e14c2eb57359032f24fad016e
MD5 aae5ed1dfe7a529c6aa1e238ca1d2712
BLAKE2b-256 8ac49e4c09a19e33b7fee69436fe6e83a6792158e7df53207b6fdf9d0ecd81f9

See more details on using hashes here.

Provenance

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