Skip to content

Commit abab879

Browse files
authored
Merge pull request #592 from pjbreaux/bugfix.virt_11_5_4
During functional testing against 11.5.4, test/functional/tm/ltm/test_virtual.py test fails
2 parents e9bd3bf + ab98333 commit abab879

2 files changed

Lines changed: 50 additions & 18 deletions

File tree

f5/bigip/tm/ltm/virtual.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ class Profiles(Resource):
5555
def __init__(self, Profiles_s):
5656
'''Autogenerated constructor.'''
5757
super(Profiles, self).__init__(Profiles_s)
58+
self._meta_data['required_creation_parameters'].update(('partition',))
59+
self._meta_data['required_load_parameters'].update(('partition',))
5860
self._meta_data['template_generated'] = True
5961
self._meta_data['required_json_kind'] =\
6062
u"tm:ltm:virtual:profiles:profilesstate"

test/functional/tm/ltm/test_virtual.py

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
# limitations under the License.
1414
#
1515

16-
from distutils.version import LooseVersion
16+
from f5.bigip.resource import MissingRequiredCreationParameter
17+
from f5.bigip.resource import MissingRequiredReadParameter
18+
1719
from pprint import pprint as pp
1820
import pytest
1921

@@ -25,19 +27,23 @@ def delete_resource(resources):
2527
resource.delete()
2628

2729

28-
def setup_virtual_test(request, bigip, partition, name):
30+
def setup_virtual_test(request, mgmt_root, partition, name):
2931
def teardown():
3032
delete_resource(vc1)
3133
request.addfinalizer(teardown)
32-
vc1 = bigip.ltm.virtuals
34+
vc1 = mgmt_root.tm.ltm.virtuals
3335
pp('****')
3436
virtual1 = vc1.virtual.create(name=name, partition=partition)
3537
return virtual1, vc1
3638

3739

3840
class TestVirtual(object):
39-
def test_virtual_create_refresh_update_delete_load(self, request, bigip):
40-
virtual1, vc1 = setup_virtual_test(request, bigip, 'Common', 'vstest1')
41+
def test_virtual_create_refresh_update_delete_load(
42+
self, request, mgmt_root, setup_device_snapshot
43+
):
44+
virtual1, vc1 = setup_virtual_test(
45+
request, mgmt_root, 'Common', 'vstest1'
46+
)
4147
assert virtual1.name == 'vstest1'
4248
virtual1.description = TESTDESCRIPTION
4349
virtual1.update()
@@ -49,24 +55,48 @@ def test_virtual_create_refresh_update_delete_load(self, request, bigip):
4955
assert virtual2.selfLink == virtual1.selfLink
5056

5157

52-
@pytest.mark.skipif(LooseVersion(pytest.config.getoption('--release')) <
53-
LooseVersion('11.6.0'),
54-
reason='This test fails in 11.5.4. Will '
55-
'revert this change in next PR.'
56-
)
57-
def test_profiles_CE(bigip, opt_release):
58-
v1 = bigip.ltm.virtuals.virtual.create(name="tv1", partition="Common")
59-
p1 = v1.profiles_s.profiles.create(name="http")
60-
pp(p1.raw)
58+
def test_profiles_CE(
59+
mgmt_root, opt_release, setup_device_snapshot
60+
):
61+
v1 = mgmt_root.tm.ltm.virtuals.virtual.create(
62+
name="tv1", partition="Common"
63+
)
64+
p1 = v1.profiles_s.profiles.create(name="http", partition='Common')
6165
test_profiles_s = v1.profiles_s
62-
pp(test_profiles_s.raw)
6366
test_profiles_s.context = 'all'
64-
pp(test_profiles_s.raw)
6567
assert p1.selfLink ==\
6668
u"https://localhost/mgmt/tm/ltm/virtual/"\
67-
"~Common~tv1/profiles/http?ver="+opt_release
69+
"~Common~tv1/profiles/~Common~http?ver="+opt_release
6870

6971
p2 = v1.profiles_s.profiles
70-
assert p2.exists(name='http')
72+
assert p2.exists(name='http', partition='Common')
73+
74+
v1.delete()
75+
76+
77+
def test_profiles_CE_check_create_params(mgmt_root, setup_device_snapshot):
78+
v1 = mgmt_root.tm.ltm.virtuals.virtual.create(
79+
name="tv2", partition="Common"
80+
)
81+
with pytest.raises(MissingRequiredCreationParameter) as ex:
82+
v1.profiles_s.profiles.create(name="http")
83+
assert "Missing required params: ['partition']" in ex.value.message
84+
v1.delete()
85+
86+
87+
def test_profiles_CE_check_load_params(mgmt_root, setup_device_snapshot):
88+
v1 = mgmt_root.tm.ltm.virtuals.virtual.create(
89+
name="tv3", partition="Common"
90+
)
91+
p1 = v1.profiles_s.profiles.create(name="http", partition="Common")
92+
93+
with pytest.raises(MissingRequiredReadParameter) as ex:
94+
assert v1.profiles_s.profiles.load(name='http')
95+
assert "Missing required params: ['partition']" in ex.value.message
96+
97+
v1.profiles_s.profiles.load(name="http", partition="Common")
98+
99+
# Check for existence with partition given
100+
p1.exists(name='http', partition='Common')
71101

72102
v1.delete()

0 commit comments

Comments
 (0)