Skip to content

Commit 247e8b4

Browse files
committed
wip
1 parent fcf95c6 commit 247e8b4

1 file changed

Lines changed: 84 additions & 0 deletions

File tree

f5/bigip/test/test_resource.py

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,90 @@ def test_reduce_boolean_same_value(self, fake_rsrc):
313313
assert msg == ex.value.message
314314

315315

316+
class TestResource_modify(object):
317+
318+
def test__meta_data_state(self):
319+
r = Resource(mock.MagicMock())
320+
r._meta_data['allowed_lazy_attributes'] = []
321+
r._meta_data['uri'] = 'URI'
322+
r._meta_data['bigip']._meta_data['icr_session'].get.return_value =\
323+
MockResponse({u"generation": 0})
324+
r._meta_data['bigip']._meta_data['icr_session'].patch.return_value =\
325+
MockResponse({u"generation": 0})
326+
r.generation = 0
327+
pre_meta = r._meta_data.copy()
328+
r.modify(a=u"b")
329+
assert pre_meta == r._meta_data
330+
331+
def test_Collection_removal(self):
332+
r = Resource(mock.MagicMock())
333+
r._meta_data['allowed_lazy_attributes'] = []
334+
r._meta_data['uri'] = 'URI'
335+
attrs = {'put.return_value': MockResponse({u"generation": 0}),
336+
'get.return_value': MockResponse({u"generation": 0})}
337+
mock_session = mock.MagicMock(**attrs)
338+
r._meta_data['bigip']._meta_data = {'icr_session': mock_session}
339+
r.generation = 0
340+
r.contained = Collection(mock.MagicMock())
341+
assert 'contained' in r.__dict__
342+
r.modify(a=u"b")
343+
submitted = r._meta_data['bigip']. \
344+
_meta_data['icr_session'].patch.call_args[1]['json']
345+
346+
assert 'contained' not in submitted
347+
348+
def test_read_only_removal(self):
349+
r = Resource(mock.MagicMock())
350+
r._meta_data['allowed_lazy_attributes'] = []
351+
r._meta_data['uri'] = 'URI'
352+
r._meta_data['read_only_attributes'] = [u"READONLY"]
353+
attrs = {'put.return_value': MockResponse({u"generation": 0}),
354+
'get.return_value': MockResponse({u"generation": 0})}
355+
mock_session = mock.MagicMock(**attrs)
356+
r._meta_data['bigip']._meta_data = {'icr_session': mock_session}
357+
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
369+
assert kwargs['json']['disabled'] is True
370+
assert 'enabled' not in kwargs['json']
371+
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
376+
assert kwargs['json']['enabled'] is True
377+
assert 'disabled' not in kwargs['json']
378+
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
383+
assert kwargs['json']['enabled'] is True
384+
assert 'disabled' not in kwargs['json']
385+
386+
def test_reduce_boolean_same_value(self, fake_rsrc):
387+
with pytest.raises(BooleansToReduceHaveSameValue) as ex:
388+
fake_rsrc.update(
389+
partition='Common',
390+
name='test_create',
391+
enabled=True,
392+
disabled=True
393+
)
394+
msg = 'Boolean pair, enabled and disabled, have same value: True. ' \
395+
'If both are given to this method, they cannot be the same, as ' \
396+
'this method cannot decide which one should be True.'
397+
assert msg == ex.value.message
398+
399+
316400
class TestResource_delete(object):
317401
def test_success(self):
318402
r = Resource(mock.MagicMock())

0 commit comments

Comments
 (0)