Accepting request 674883 from home:jayvdb:coala:python3-bears
- Activate test suite - Update to v1.0.9 * Make 'stub' object callable * Build and doc enhancements - Remove superfluous devel dependency for noarch package - Switch to singlespec approach - Initial version for v1.0.8 OBS-URL: https://build.opensuse.org/request/show/674883 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pretend?expand=0&rev=9
This commit is contained in:
parent
86137c8483
commit
4c2ae5ab3e
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:930f2c1e18503e8f8c403abe2e02166c4a881941745147e712cdd4f49f3fb964
|
|
||||||
size 4848
|
|
BIN
pretend-1.0.9.tar.gz
(Stored with Git LFS)
Normal file
BIN
pretend-1.0.9.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 14 08:25:57 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
|
||||||
|
|
||||||
|
- Activate test suite
|
||||||
|
- Update to v1.0.9
|
||||||
|
* Make 'stub' object callable
|
||||||
|
* Build and doc enhancements
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Dec 4 12:51:39 UTC 2018 - Matej Cepl <mcepl@suse.com>
|
Tue Dec 4 12:51:39 UTC 2018 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
@ -11,5 +19,4 @@ Thu Mar 16 14:48:02 UTC 2017 - tbechtold@suse.com
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Mar 31 14:59:55 UTC 2014 - speilicke@suse.com
|
Mon Mar 31 14:59:55 UTC 2014 - speilicke@suse.com
|
||||||
|
|
||||||
- Initial version
|
- Initial version for v1.0.8
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-pretend
|
# spec file for package python-pretend
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -18,13 +18,15 @@
|
|||||||
|
|
||||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
Name: python-pretend
|
Name: python-pretend
|
||||||
Version: 1.0.8
|
Version: 1.0.9
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A library for stubbing in Python
|
Summary: A library for stubbing in Python
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
Group: Development/Languages/Python
|
Group: Development/Languages/Python
|
||||||
URL: https://github.com/alex/pretend
|
URL: https://github.com/alex/pretend
|
||||||
Source: https://files.pythonhosted.org/packages/source/p/pretend/pretend-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/p/pretend/pretend-%{version}.tar.gz
|
||||||
|
Source1: https://raw.githubusercontent.com/alex/pretend/master/test_pretend.py
|
||||||
|
BuildRequires: %{python_module pytest}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -35,6 +37,7 @@ Pretend is a library to make stubbing with Python easier.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n pretend-%{version}
|
%setup -q -n pretend-%{version}
|
||||||
|
cp %{SOURCE1} .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%python_build
|
%python_build
|
||||||
@ -42,6 +45,9 @@ Pretend is a library to make stubbing with Python easier.
|
|||||||
%install
|
%install
|
||||||
%python_install
|
%python_install
|
||||||
|
|
||||||
|
%check
|
||||||
|
%python_exec -m pytest
|
||||||
|
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%license LICENSE.rst
|
%license LICENSE.rst
|
||||||
%doc README.rst
|
%doc README.rst
|
||||||
|
184
test_pretend.py
Normal file
184
test_pretend.py
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
import operator
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from pretend import stub, raiser, call, call_recorder, PY3K
|
||||||
|
|
||||||
|
|
||||||
|
class TestStub(object):
|
||||||
|
def test_attribute(self):
|
||||||
|
x = stub(attr=3)
|
||||||
|
assert hasattr(x, "attr")
|
||||||
|
assert x.attr == 3
|
||||||
|
|
||||||
|
def test_function(self):
|
||||||
|
x = stub(meth=lambda x, y: x + y)
|
||||||
|
assert x.meth(3, 4) == 7
|
||||||
|
|
||||||
|
def test_iter(self):
|
||||||
|
x = stub(__iter__=lambda: iter([1, 2, 3]))
|
||||||
|
iterator = iter(x)
|
||||||
|
assert next(iterator) == 1
|
||||||
|
|
||||||
|
@pytest.mark.skipif("not PY3K")
|
||||||
|
def test_next(self):
|
||||||
|
x = stub(__next__=lambda: 12)
|
||||||
|
assert next(x) == 12
|
||||||
|
|
||||||
|
def test_contains(self):
|
||||||
|
x = stub(__contains__=lambda other: True)
|
||||||
|
assert "hello world" in x
|
||||||
|
|
||||||
|
@pytest.mark.skipif("PY3K")
|
||||||
|
def test_nonzero(self):
|
||||||
|
x = stub(__nonzero__=lambda: False)
|
||||||
|
assert not bool(x)
|
||||||
|
|
||||||
|
@pytest.mark.skipif("not PY3K")
|
||||||
|
def test_bool(self):
|
||||||
|
x = stub(__bool__=lambda: False)
|
||||||
|
assert not bool(x)
|
||||||
|
|
||||||
|
def test_len(self):
|
||||||
|
x = stub(__len__=lambda: 12)
|
||||||
|
assert len(x) == 12
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(("func", "op"), [
|
||||||
|
(operator.lt, "__lt__"),
|
||||||
|
(operator.le, "__le__"),
|
||||||
|
(operator.eq, "__eq__"),
|
||||||
|
(operator.ne, "__ne__"),
|
||||||
|
(operator.gt, "__gt__"),
|
||||||
|
(operator.ge, "__ge__"),
|
||||||
|
|
||||||
|
(operator.add, "__add__"),
|
||||||
|
(operator.and_, "__and__"),
|
||||||
|
(divmod, "__divmod__"),
|
||||||
|
(operator.floordiv, "__floordiv__"),
|
||||||
|
(operator.lshift, "__lshift__"),
|
||||||
|
(operator.mod, "__mod__"),
|
||||||
|
(operator.mul, "__mul__"),
|
||||||
|
(operator.or_, "__or__"),
|
||||||
|
(operator.pow, "__pow__"),
|
||||||
|
(operator.rshift, "__rshift__"),
|
||||||
|
(operator.sub, "__sub__"),
|
||||||
|
(operator.truediv, "__truediv__"),
|
||||||
|
(operator.xor, "__xor__"),
|
||||||
|
])
|
||||||
|
def test_special_binops(self, func, op):
|
||||||
|
x = stub(**{
|
||||||
|
op: lambda y: func(2, y)
|
||||||
|
})
|
||||||
|
assert func(x, 4) == func(2, 4)
|
||||||
|
assert func(x, 2) == func(2, 2)
|
||||||
|
|
||||||
|
@pytest.mark.skipif("PY3K")
|
||||||
|
def test_div(self):
|
||||||
|
x = stub(
|
||||||
|
__div__=lambda y: 4
|
||||||
|
)
|
||||||
|
assert x / 3 == 4
|
||||||
|
|
||||||
|
def test_missing_op_error(self):
|
||||||
|
x = stub()
|
||||||
|
with pytest.raises(TypeError):
|
||||||
|
x + 2
|
||||||
|
|
||||||
|
def test_subscript(self):
|
||||||
|
x = stub(
|
||||||
|
__getitem__=lambda idx: idx
|
||||||
|
)
|
||||||
|
assert x[5] == 5
|
||||||
|
assert x[1, 2] == (1, 2)
|
||||||
|
|
||||||
|
def test_setitem(self):
|
||||||
|
d = {}
|
||||||
|
x = stub(
|
||||||
|
__setitem__=d.__setitem__
|
||||||
|
)
|
||||||
|
x[5] = 'a'
|
||||||
|
x['b'] = 6
|
||||||
|
assert d == {5: 'a', 'b': 6}
|
||||||
|
|
||||||
|
def test_delitem(self):
|
||||||
|
d = {5: 'a', 'b': 6}
|
||||||
|
x = stub(
|
||||||
|
__delitem__=d.__delitem__
|
||||||
|
)
|
||||||
|
del x['b']
|
||||||
|
assert d == {5: 'a'}
|
||||||
|
|
||||||
|
def test_context_manager(self):
|
||||||
|
should_reraise = True
|
||||||
|
x = stub(
|
||||||
|
__enter__=lambda: 3,
|
||||||
|
__exit__=lambda exc_type, exc_value, tb: should_reraise
|
||||||
|
)
|
||||||
|
with x as value:
|
||||||
|
assert value == 3
|
||||||
|
raise ValueError
|
||||||
|
should_reraise = False
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
with x as value:
|
||||||
|
assert value == 3
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
|
def test_default_repr(self):
|
||||||
|
x = stub(a=10)
|
||||||
|
|
||||||
|
assert repr(x) == "<stub(a=10)>"
|
||||||
|
|
||||||
|
def test_custom_repr(self):
|
||||||
|
x = stub(id=300, __repr__=lambda: '<Something>')
|
||||||
|
|
||||||
|
assert x.id == 300
|
||||||
|
assert repr(x) == '<Something>'
|
||||||
|
|
||||||
|
def test_callable(self):
|
||||||
|
x = stub(__call__=lambda: 4)
|
||||||
|
|
||||||
|
assert x() == 4
|
||||||
|
|
||||||
|
|
||||||
|
class TestRaiser(object):
|
||||||
|
def test_call_raiser(self):
|
||||||
|
f = raiser(ValueError)
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
f()
|
||||||
|
|
||||||
|
def test_call_raiser_exc_value(self):
|
||||||
|
exc = ValueError(14)
|
||||||
|
f = raiser(exc)
|
||||||
|
with pytest.raises(ValueError) as exc_info:
|
||||||
|
f()
|
||||||
|
assert exc_info.value is exc
|
||||||
|
|
||||||
|
def test_non_exc_raiser(self):
|
||||||
|
with pytest.raises(TypeError):
|
||||||
|
raiser("test")
|
||||||
|
|
||||||
|
|
||||||
|
class TestCallRecorder(object):
|
||||||
|
def test_call_eq(self):
|
||||||
|
assert call(a=2) == call(a=2)
|
||||||
|
assert not (call(a=2) != call(a=2))
|
||||||
|
assert call(a=2) != call(a=3)
|
||||||
|
assert not (call(a=2) == call(a=3))
|
||||||
|
|
||||||
|
assert call() != []
|
||||||
|
|
||||||
|
def test_call_repr(self):
|
||||||
|
assert repr(call(1, 2, a=3)) == "<call(1, 2, a=3)>"
|
||||||
|
assert repr(call(a=2)) == "<call(a=2)>"
|
||||||
|
|
||||||
|
def test_call_hash(self):
|
||||||
|
c1 = call(a=2)
|
||||||
|
c2 = call(a=2)
|
||||||
|
assert hash(c1) == hash(c2)
|
||||||
|
|
||||||
|
def test_simple(self):
|
||||||
|
f = call_recorder(lambda *args, **kwargs: 3)
|
||||||
|
assert f() == 3
|
||||||
|
assert f.calls == [
|
||||||
|
call()
|
||||||
|
]
|
Loading…
x
Reference in New Issue
Block a user