Collection of helper utilities for testing.
Project description
cykooz.testing is collection of helper utilities for testing.
Utilities
Dict
A dict object that can be compared with other dict object without regard to keys that did not presents in the Dict instance.
>>> from cykooz.testing import Dict
>>> d1 = Dict(a=1, b='foo')
>>> d2 = {'a': 1, 'b': 'foo', 'c': True}
>>> d1 == d2
True
>>> d2 == d1
True
>>> d1 != d2
False
>>> d3 = {'a': 1, 'c': True}
>>> d1 == d3
False
>>> d3 == d1
False
>>> d1 != d3
True
>>> Dict({'a': 1})
Dict({'a': 1})
Short alias:
>>> from cykooz.testing import D
>>> {'a': 1, 'b': 'foo'} == D({'a': 1})
True
List
A list object that can be compared with other list object without regard to extra items contains in the other list object.
>>> from cykooz.testing import List
>>> l1 = List([1, 'foo'])
>>> l2 = [1, 'foo', True]
>>> l1 == l2
True
>>> l2 == l1
True
>>> l1 != l2
False
>>> l3 = [1, True]
>>> l1 == l3
False
>>> l3 == l1
False
>>> l1 != l3
True
>>> l1 == [1]
False
>>> List([1, 'foo', True])
List([1, 'foo', True])
>>> List([Dict(), Dict()]) == [{'a': 1}, {'b': 2}]
True
Short alias:
>>> from cykooz.testing import L
>>> [1, 'foo', True] == L([1, 'foo'])
True
AnyValue
Instance of this class is equal to any other values.
>>> from cykooz.testing import AnyValue
>>> v = AnyValue()
>>> v == 1
True
>>> 1 == v
True
>>> v != 1
False
>>> v == {'a': 1, 'b': 'foo'}
True
>>> v == [1, 2, 3, 'b']
True
>>> v == AnyValue()
True
>>> v
<any value>
>>> {v: 1}
Traceback (most recent call last):
...
TypeError: unhashable type: 'AnyValue'
>>> [v, v, v] == [1, 2, 'foo']
True
>>> [v, v, 1] == [1, 2, 'foo']
False
>>> [v, v] == [1, 2, 'foo']
False
>>> {'a': v, 'b': 2} == {'a': 1, 'b': 2}
True
Short alias:
>>> from cykooz.testing import ANY
>>> 1 == ANY
True
RegExpString
Instance of this class is equal to any other values if it is matched to give regexp pattern.
>>> v = RegExpString('first.*')
>>> v == 1
False
>>> 1 == v
False
>>> v != 1
True
>>> v == 'first class'
True
>>> 'first class' == v
True
>>> v != 'first class'
False
>>> v
<RegExpString: first.*>
>>> {v: 1}
Traceback (most recent call last):
...
TypeError: unhashable type: 'RegExpString'
>>> [v, v, v] == [1, 2, 'first class']
False
>>> [v, v, v] == ['first class', 'first bus', 'first time']
True
Short alias:
>>> from cykooz.testing import R
>>> 'first class' == R('first.*')
True
Url
A url object that can be compared with other url objects without regard to the vagaries of encoding, escaping, and ordering of parameters in query strings.
>>> from cykooz.testing import Url
>>> url1 = Url('http://domain.com/container?limit=6&offset=0')
>>> url2 = Url('http://domain.com/container?offset=0&limit=6')
>>> url1 == url2
True
>>> url2 = Url('http://domain.com/container?limit=6')
>>> url1 == url2
False
>>> url1 == 'http://domain.com/container?offset=0&limit=6'
True
>>> 'http://domain.com/container?offset=0&limit=6' == url1
True
>>> {'key': 'http://domain.com/container?offset=0&limit=6'} == {'key': url1}
True
CHANGELOG
1.0 (2019-07-12)
Features
Initial release.
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
Built Distribution
File details
Details for the file cykooz.testing-1.0.tar.gz
.
File metadata
- Download URL: cykooz.testing-1.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88ec5a01bd6391ecafe1905c8831411ebf7f1a9e55750da1e6b7ffd97669ddb7 |
|
MD5 | 5fb2f7aad7f4dc29f6e9620421952d5a |
|
BLAKE2b-256 | 21fb6114eb892a683a26df0c29d0014180e64b10031046cf308a6fced17f7f59 |
File details
Details for the file cykooz.testing-1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: cykooz.testing-1.0-py2.py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc712fe81a1b54062239c160fc14944b03679d0331c7901d64151d53062675e8 |
|
MD5 | 8708a8b2a9cac6d99a23af91c82d762d |
|
BLAKE2b-256 | ec97b059d21d58d1e4d5662039daf35e710e8621af07a4f6398a479687b2bb2d |