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:
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 ofjson
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
.
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
Release history Release notifications | RSS feed
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.4.tar.gz
(2.9 kB
view hashes)
Built Distribution
Close
Hashes for pytest_dictsdiff-0.5.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 282394a18bb6b65f6b2a15c3a09f46f5bad3355aa8b1fb22e550854ac4611339 |
|
MD5 | aa553474c1587d09d6205fedd1a3ef3c |
|
BLAKE2b-256 | 25f7aa21ecf65524e3214d1dbe0fb0a0251c68b6688d44a279339ca55a8f401e |