from __future__ import absolute_import
# Copyright (c) 2010-2017 openpyxl
from copy import copy
import pytest
@pytest.fixture
[docs]def dummy_object():
class Dummy:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def __repr__(self):
return "dummy object"
def __add__(self, other):
if self.a is None:
self.a = other.a
return self
return Dummy(a=1, b=2, c=3)
@pytest.fixture
[docs]def proxy(dummy_object):
from .. proxy import StyleProxy
return StyleProxy(dummy_object)
[docs]def test_ctor(proxy):
assert proxy.a == 1
assert proxy.b == 2
assert proxy.c == 3
[docs]def test_non_writable(proxy):
with pytest.raises(AttributeError):
proxy.a = 5
[docs]def test_repr(proxy):
assert repr(proxy) == "dummy object"
[docs]def test_copy(proxy):
cp = copy(proxy)
assert cp is not proxy
assert cp.a == 1
assert cp.b == 2
assert cp.c == 3
[docs]def test_add(dummy_object):
from ..proxy import StyleProxy
o1 = dummy_object
o2 = copy(dummy_object)
o1.a = None
o1 = StyleProxy(dummy_object)
combined = o1 + o2
assert combined.a == 1