Spaces Data
Minimal test - lines (1101, 1151)
path: .spaces[3].spaces[52].metrics.mi.mi_visual_studio
old: 40.38612165502555
new: 40.00712374815891
path: .spaces[3].spaces[52].metrics.mi.mi_sei
old: 36.027628364625606
new: 42.4648794814417
path: .spaces[3].spaces[52].metrics.mi.mi_original
old: 69.06026803009368
new: 68.41218160935173
path: .spaces[3].spaces[52].metrics.loc.cloc
old: 1.0
new: 3.0
path: .spaces[3].spaces[52].metrics.loc.sloc
old: 49.0
new: 51.0
Code
def test_mock_add_spec(self):
class _One(object):
one = 1
class _Two(object):
two = 2
class Anything(object):
one = two = three = 'four'
klasses = [
Mock, MagicMock, NonCallableMock, NonCallableMagicMock
]
for Klass in list(klasses):
klasses.append(lambda K=Klass: K(spec=Anything))
klasses.append(lambda K=Klass: K(spec_set=Anything))
for Klass in klasses:
for kwargs in dict(), dict(spec_set=True):
mock = Klass()
#no error
mock.one, mock.two, mock.three
for One, Two in [(_One, _Two), (['one'], ['two'])]:
for kwargs in dict(), dict(spec_set=True):
mock.mock_add_spec(One, **kwargs)
mock.one
self.assertRaises(
AttributeError, getattr, mock, 'two'
)
self.assertRaises(
AttributeError, getattr, mock, 'three'
)
if 'spec_set' in kwargs:
self.assertRaises(
AttributeError, setattr, mock, 'three', None
)
mock.mock_add_spec(Two, **kwargs)
self.assertRaises(
AttributeError, getattr, mock, 'one'
)
mock.two
self.assertRaises(
AttributeError, getattr, mock, 'three'
)
if 'spec_set' in kwargs:
self.assertRaises(
AttributeError, setattr, mock, 'three', None
)
# note that creating a mock, setting an instance attribute, and
# *then* setting a spec doesn't work. Not the intended use case