Skip to content

Commit 55d93c1

Browse files
committed
Add 4 FAILing unittests for modify
1 parent 247e8b4 commit 55d93c1

2 files changed

Lines changed: 28 additions & 25 deletions

File tree

f5/bigip/resource.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,11 @@ class BooleansToReduceHaveSameValue(F5SDKError):
166166
pass
167167

168168

169+
class AttemptedMutationOfReadOnly(F5SDKError):
170+
"""Read only parameters cannot be set."""
171+
pass
172+
173+
169174
class PathElement(LazyAttributeMixin):
170175
"""Base class to represent a URI path element that does not contain data.
171176

f5/bigip/test/test_resource.py

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
from f5.bigip.resource import BooleansToReduceHaveSameValue
2020
from f5.bigip.resource import Collection
21+
from f5.bigip.resource import AttemptedMutationOfReadOnly
2122
from f5.bigip.resource import DeviceProvidesIncompatibleKey
2223
from f5.bigip.resource import ExclusiveAttributesPresent
2324
from f5.bigip.resource import GenerationMismatch
@@ -332,7 +333,7 @@ def test_Collection_removal(self):
332333
r = Resource(mock.MagicMock())
333334
r._meta_data['allowed_lazy_attributes'] = []
334335
r._meta_data['uri'] = 'URI'
335-
attrs = {'put.return_value': MockResponse({u"generation": 0}),
336+
attrs = {'patch.return_value': MockResponse({u"generation": 0}),
336337
'get.return_value': MockResponse({u"generation": 0})}
337338
mock_session = mock.MagicMock(**attrs)
338339
r._meta_data['bigip']._meta_data = {'icr_session': mock_session}
@@ -341,51 +342,48 @@ def test_Collection_removal(self):
341342
assert 'contained' in r.__dict__
342343
r.modify(a=u"b")
343344
submitted = r._meta_data['bigip']. \
344-
_meta_data['icr_session'].patch.call_args[1]['json']
345+
_meta_data['r_session'].patch.call_args[1]['json']
345346

346347
assert 'contained' not in submitted
347348

348-
def test_read_only_removal(self):
349+
def test_read_only_validate(self):
349350
r = Resource(mock.MagicMock())
350351
r._meta_data['allowed_lazy_attributes'] = []
351352
r._meta_data['uri'] = 'URI'
352353
r._meta_data['read_only_attributes'] = [u"READONLY"]
353-
attrs = {'put.return_value': MockResponse({u"generation": 0}),
354+
attrs = {'patch.return_value': MockResponse({u"generation": 0}),
354355
'get.return_value': MockResponse({u"generation": 0})}
355356
mock_session = mock.MagicMock(**attrs)
356357
r._meta_data['bigip']._meta_data = {'icr_session': mock_session}
357358
r.generation = 0
358-
r.READONLY = True
359-
assert 'READONLY' in r.__dict__
360-
r.update(a=u"b")
361-
submitted = r._meta_data['bigip'].\
362-
_meta_data['icr_session'].put.call_args[1]['json']
363-
assert 'READONLY' not in submitted
364-
365-
def test_reduce_boolean_removes_enabled(self, fake_rsrc):
366-
fake_rsrc.update(enabled=False)
367-
pos, kwargs = fake_rsrc._meta_data['bigip']._meta_data['icr_session'].put.\
368-
call_args
359+
with pytest.raises(AttemptedMutationOfReadOnly) as AMOROEIO:
360+
r.modify(READONLY=True)
361+
assert "READONLY" in AMOROEIO.value.message
362+
363+
def itest_reduce_boolean_removes_enabled(self, fake_rsrc):
364+
fake_rsrc.modify(enabled=False)
365+
pos, kwargs = fake_rsrc._meta_data['bigip'].\
366+
_meta_data['icr_session'].patch.call_args
369367
assert kwargs['json']['disabled'] is True
370368
assert 'enabled' not in kwargs['json']
371369

372-
def test_reduce_boolean_removes_disabled(self, fake_rsrc):
373-
fake_rsrc.update(disabled=False)
374-
pos, kwargs = fake_rsrc._meta_data['bigip']._meta_data['icr_session'].put.\
375-
call_args
370+
def itest_reduce_boolean_removes_disabled(self, fake_rsrc):
371+
fake_rsrc.modify(disabled=False)
372+
pos, kwargs = fake_rsrc._meta_data['bigip'].\
373+
_meta_data['icr_session'].patch.call_args
376374
assert kwargs['json']['enabled'] is True
377375
assert 'disabled' not in kwargs['json']
378376

379-
def test_reduce_boolean_removes_nothing(self, fake_rsrc):
380-
fake_rsrc.update(partition='Common', name='test_create', enabled=True)
381-
pos, kwargs = fake_rsrc._meta_data['bigip']._meta_data['icr_session'].put.\
382-
call_args
377+
def itest_reduce_boolean_removes_nothing(self, fake_rsrc):
378+
fake_rsrc.modify(partition='Common', name='test_create', enabled=True)
379+
pos, kwargs = fake_rsrc._meta_data['bigip'].\
380+
_meta_data['icr_session'].patch.call_args
383381
assert kwargs['json']['enabled'] is True
384382
assert 'disabled' not in kwargs['json']
385383

386-
def test_reduce_boolean_same_value(self, fake_rsrc):
384+
def itest_reduce_boolean_same_value(self, fake_rsrc):
387385
with pytest.raises(BooleansToReduceHaveSameValue) as ex:
388-
fake_rsrc.update(
386+
fake_rsrc.modify(
389387
partition='Common',
390388
name='test_create',
391389
enabled=True,

0 commit comments

Comments
 (0)