Skip to content

Commit 285bb30

Browse files
authored
Merge pull request #697 from caphrim007/bugfix.add-more-py3-support-01
Adds various python3 fixes
2 parents 7cb7ef1 + db75a81 commit 285bb30

24 files changed

Lines changed: 95 additions & 61 deletions

conftest.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import os
2424
import pytest
2525
import requests
26+
27+
from six import itervalues
2628
from tempfile import NamedTemporaryFile
2729

2830

@@ -210,9 +212,9 @@ def _setup_boilerplate(bigip, request, pool_records):
210212
name=memconf.memname)
211213

212214
def deleter():
213-
for member_instance in members_registry.values():
215+
for member_instance in list(itervalues(members_registry)):
214216
member_instance.delete()
215-
for pool_instance in pool_registry.values():
217+
for pool_instance in list(itervalues(pool_registry)):
216218
pool_instance.delete()
217219
request.addfinalizer(deleter)
218220
return pool_registry, members_registry

devtools/template_engine.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from __future__ import print_function
21
# Copyright 2016 F5 Networks Inc.
32
#
43
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,14 +12,17 @@
1312
# See the License for the specific language governing permissions and
1413
# limitations under the License.
1514
#
15+
from __future__ import print_function
1616

1717
import io
1818
import jinja2
1919
import json
2020
import os
21-
from pprint import pprint as pp
2221
import re
2322

23+
from pprint import pprint as pp
24+
from six import iterkeys
25+
2426

2527
class UnexpectedOCItem(Exception):
2628
pass
@@ -68,10 +70,10 @@ def _consume_directory(self, dirname, consumer):
6870
os.path.walk(dirname, consumer, self)
6971

7072
def list_templates(self):
71-
pp(self.templates.keys())
73+
pp(list(iterkeys(self.templates)))
7274

7375
def list_raw_configs(self):
74-
pp(self.raw_configs.keys())
76+
pp(list(iterkeys(self.raw_configs)))
7577

7678
def process_config_from_fname(self, fname):
7779
if not fname.endswith('.json'):

f5/bigip/cm/autodeploy/test/test_software_image_uploads.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def test_software_image_uploads_80a(tmpdir, fakeicontrolsessionfactory):
3636
session_mock = mr._meta_data['icr_session']
3737
for i in range(4):
3838
d = session_mock.post.call_args_list[i][1]['data']
39-
assert d == 'a'*CHUNKSIZE
39+
assert d == b'a'*CHUNKSIZE
4040

4141

4242
def test_software_image_uploads_70a(tmpdir, fakeicontrolsessionfactory):
@@ -49,11 +49,10 @@ def test_software_image_uploads_70a(tmpdir, fakeicontrolsessionfactory):
4949
session_mock = mr._meta_data['icr_session']
5050
sius.upload_image(str(filepath), chunk_size=CHUNKSIZE)
5151
for i in range(3):
52-
print(i)
5352
d = session_mock.post.call_args_list[i][1]['data']
54-
assert d == 'a'*CHUNKSIZE
53+
assert d == b'a'*CHUNKSIZE
5554
lchunk = session_mock.post.call_args_list[3][1]['data']
56-
assert 10*'a' == lchunk
55+
assert b'a'*10 == lchunk
5756

5857

5958
def test_non_ISO_extension(tmpdir, fakeicontrolsessionfactory):
@@ -63,4 +62,4 @@ def test_non_ISO_extension(tmpdir, fakeicontrolsessionfactory):
6362
sius = mr.cm.autodeploy.software_image_uploads
6463
with pytest.raises(ImageFilesMustHaveDotISOExtension) as EIO:
6564
sius.upload_image(str(filepath), chunk_size=CHUNKSIZE)
66-
assert EIO.value.message == 'wrong.name'
65+
assert str(EIO.value) == 'wrong.name'

f5/bigip/shared/test/test_file_uploads.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def test_file_upload_80a(tmpdir, fakeicontrolsession):
3636
session_mock = mr._meta_data['icr_session']
3737
for i in range(4):
3838
d = session_mock.post.call_args_list[i][1]['data']
39-
assert d == 'aaaaaaaaaaaaaaaaaaaa'
39+
assert d == b'aaaaaaaaaaaaaaaaaaaa'
4040

4141

4242
def test_file_upload_70a(tmpdir, fakeicontrolsession):
@@ -50,9 +50,9 @@ def test_file_upload_70a(tmpdir, fakeicontrolsession):
5050
for i in range(3):
5151
print(i)
5252
d = session_mock.post.call_args_list[i][1]['data']
53-
assert d == 'aaaaaaaaaaaaaaaaaaaa'
53+
assert d == b'aaaaaaaaaaaaaaaaaaaa'
5454
lchunk = session_mock.post.call_args_list[3][1]['data']
55-
assert 10*'a' == lchunk
55+
assert b'a'*10 == lchunk
5656

5757

5858
def test_ISO_extension(tmpdir, fakeicontrolsession):
@@ -62,7 +62,7 @@ def test_ISO_extension(tmpdir, fakeicontrolsession):
6262
ftu = mr.shared.file_transfer.uploads
6363
with pytest.raises(FileMustNotHaveDotISOExtension) as EIO:
6464
ftu.upload_file(filepath.__str__(), chunk_size=21)
65-
assert EIO.value.message == 'wrongname.iso'
65+
assert str(EIO.value) == 'wrongname.iso'
6666

6767

6868
def test_stringio_upload_80a(tmpdir, fakeicontrolsession):

f5/bigip/test/test___init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def test___get__attr(FakeBigIP):
6161
def test_invalid_args():
6262
with pytest.raises(TypeError) as err:
6363
BigIP('FakeHostName', 'admin', 'admin', badArgs='foobar')
64-
assert 'Unexpected **kwargs' in err.value.message
64+
assert 'Unexpected **kwargs' in str(err.value)
6565

6666

6767
def test_icontrol_version(FakeBigIPWithPort):

f5/bigip/test/test_mixins.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ def test_list_and_int():
4444
MTCobj.x = [1, 'a']
4545
MTCobj.y = 1
4646
mtc_as_dict = MTCobj.to_dict()
47-
assert json.dumps(mtc_as_dict) == '{"y": 1, "x": [1, "a"]}'
47+
assert json.dumps(mtc_as_dict, sort_keys=True) == \
48+
'{"x": [1, "a"], "y": 1}'
4849

4950

5051
def test_list_and_int_and_list2():
@@ -53,15 +54,17 @@ def test_list_and_int_and_list2():
5354
MTCobj.y = 1
5455
MTCobj.z = [1, 'a']
5556
mtc_as_dict = MTCobj.to_dict()
56-
assert json.dumps(mtc_as_dict) == '{"y": 1, "x": [1, "a"], "z": [1, "a"]}'
57+
assert json.dumps(mtc_as_dict, sort_keys=True) == \
58+
'{"x": [1, "a"], "y": 1, "z": [1, "a"]}'
5759

5860

5961
def test_two_refs():
6062
MTCobj = MixinTestClass()
6163
MTCobj.x = [1, 'a']
6264
MTCobj.z = MTCobj.x
6365
mtc_as_dict = MTCobj.to_dict()
64-
assert json.dumps(mtc_as_dict) ==\
66+
dict1 = json.dumps(mtc_as_dict, sort_keys=True)
67+
assert dict1 ==\
6568
'{"x": [1, "a"], "z": ["TraversalRecord", "x"]}'
6669

6770

f5/bigip/tm/gtm/test/test_pool.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
from f5.bigip.tm.gtm.pool import PoolCollection
3030
from f5.bigip.tm.gtm.pool import Srv
3131

32+
from six import iterkeys
33+
3234

3335
@pytest.fixture
3436
def FakePoolv11():
@@ -83,7 +85,7 @@ def test_pool_attr_exists(self, fakeicontrolsession):
8385
test_meta = p._meta_data['attribute_registry']
8486
test_meta2 = p._meta_data['allowed_lazy_attributes']
8587
kind = 'tm:gtm:pool:poolstate'
86-
assert kind in test_meta.keys()
88+
assert kind in list(iterkeys(test_meta))
8789
assert Pool in test_meta2
8890

8991

@@ -129,7 +131,7 @@ def test_collections(self, fakeicontrolsession_v12, klass):
129131
test_meta = rc._meta_data['attribute_registry']
130132
test_meta2 = rc._meta_data['allowed_lazy_attributes']
131133
kind = self.poolkinds[self.urielementname()]
132-
assert kind in test_meta.keys()
134+
assert kind in list(iterkeys(test_meta))
133135
assert klass in test_meta2
134136

135137
def test_create_two_v12(self, fakeicontrolsession_v12):

f5/bigip/tm/gtm/test/test_server.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
from f5.bigip.tm.gtm.server import Server
2222
from f5.bigip.tm.gtm.server import Virtual_Servers
2323

24+
from six import iterkeys
25+
2426

2527
@pytest.fixture
2628
def FakeServer():
@@ -63,7 +65,7 @@ def test_vs_attr_exists(self, fakeicontrolsession):
6365
s = b.tm.gtm.servers.server
6466
test_meta = s._meta_data['attribute_registry']
6567
kind = 'tm:gtm:server:virtual-servers:virtual-serverscollectionstate'
66-
assert kind in test_meta.keys()
68+
assert kind in list(iterkeys(test_meta))
6769

6870
def test_create_no_args(self, FakeVS):
6971
with pytest.raises(MissingRequiredCreationParameter):

f5/bigip/tm/gtm/test/test_wideip.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
from f5.bigip.tm.gtm.wideip import Wideip
3030
from f5.bigip.tm.gtm.wideip import WideipCollection
3131

32+
from six import iterkeys
33+
3234

3335
@pytest.fixture
3436
def FakeWideipv11():
@@ -83,7 +85,7 @@ def test_wideip_attr_exists(self, fakeicontrolsession):
8385
test_meta = w._meta_data['attribute_registry']
8486
test_meta2 = w._meta_data['allowed_lazy_attributes']
8587
kind = 'tm:gtm:wideip:wideipstate'
86-
assert kind in test_meta.keys()
88+
assert kind in list(iterkeys(test_meta))
8789
assert Wideip in test_meta2
8890

8991

@@ -129,7 +131,7 @@ def test_collections(self, fakeicontrolsession_v12, klass):
129131
test_meta = rc._meta_data['attribute_registry']
130132
test_meta2 = rc._meta_data['allowed_lazy_attributes']
131133
kind = self.kinds[self.urielementname()]
132-
assert kind in test_meta.keys()
134+
assert kind in list(iterkeys(test_meta))
133135
assert klass in test_meta2
134136

135137
def test_create_two_v12(self, fakeicontrolsession_v12):

f5/bigip/tm/ltm/snat.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
from f5.bigip.resource import MissingRequiredCreationParameter
3232
from f5.bigip.resource import Resource
3333

34+
from six import iterkeys
35+
3436

3537
class RequireOneOf(MissingRequiredCreationParameter):
3638
pass
@@ -84,8 +86,8 @@ def create(self, **kwargs):
8486
"""
8587
rcp = self._meta_data['required_creation_parameters']
8688
required_singles = set(('automap', 'snatpool', 'translation'))
87-
pre_req_len = len(kwargs.keys())
88-
if len(rcp - required_singles) != (pre_req_len-1):
89+
pre_req_len = len(list(iterkeys(kwargs)))
90+
if len(rcp - required_singles) != (pre_req_len - 1):
8991
error_message = 'Creation requires one of the provided k,v:\n'
9092
for req_sing in required_singles:
9193
try:

0 commit comments

Comments
 (0)