Skip to content

Commit 0d50b11

Browse files
committed
Add fixture for mocking iCRSSession
Issues: Fixes #<issueid> Problem: Analysis: Tests:
1 parent 7c6d825 commit 0d50b11

13 files changed

Lines changed: 47 additions & 25 deletions

File tree

conftest.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@
1414
#
1515

1616
from f5.bigip import BigIP
17+
import mock
1718
import pytest
1819

20+
from icontrol.session import iControlRESTSession
21+
1922

2023
def pytest_addoption(parser):
2124
parser.addoption("--bigip", action="store",
@@ -33,6 +36,19 @@ def pytest_addoption(parser):
3336
default='11.6.0')
3437

3538

39+
@pytest.fixture
40+
def fakeicontrolsession(monkeypatch):
41+
class Response(object):
42+
def json(self):
43+
return {'selfLink': 'https://localhost/mgmt/tm/sys?ver=11.6.0'}
44+
fakesessionclass = mock.create_autospec(iControlRESTSession, spec_set=True)
45+
fakesessioninstance =\
46+
mock.create_autospec(iControlRESTSession('A', 'B'), spec_set=True)
47+
fakesessioninstance.get = mock.MagicMock(return_value=Response())
48+
fakesessionclass.return_value = fakesessioninstance
49+
monkeypatch.setattr('f5.bigip.iControlRESTSession', fakesessionclass)
50+
51+
3652
@pytest.fixture
3753
def opt_bigip(request):
3854
return request.config.getoption("--bigip")

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
CHUNKSIZE = 20
2525

2626

27-
def test_software_image_uploads_80a(tmpdir):
27+
def test_software_image_uploads_80a(tmpdir, fakeicontrolsession):
2828
filepath = tmpdir.mkdir('testdir').join('eightya.iso')
2929
filepath.write(80*'a')
3030
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
@@ -37,7 +37,7 @@ def test_software_image_uploads_80a(tmpdir):
3737
assert d == 'a'*CHUNKSIZE
3838

3939

40-
def test_software_image_uploads_70a(tmpdir):
40+
def test_software_image_uploads_70a(tmpdir, fakeicontrolsession):
4141
filepath = tmpdir.mkdir('testdir').join('seventya.iso')
4242
filepath.write(70*'a')
4343
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
@@ -53,7 +53,7 @@ def test_software_image_uploads_70a(tmpdir):
5353
assert 10*'a' == lchunk
5454

5555

56-
def test_non_ISO_extension(tmpdir):
56+
def test_non_ISO_extension(tmpdir, fakeicontrolsession):
5757
filepath = tmpdir.mkdir('testdir').join('wrong.name')
5858
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
5959
sius = mr.cm.autodeploy.software_image_uploads

f5/bigip/shared/test/test_file_uploads.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
FileMustNotHaveDotISOExtension
2323

2424

25-
def test_file_upload_80a(tmpdir):
25+
def test_file_upload_80a(tmpdir, fakeicontrolsession):
2626
filepath = tmpdir.mkdir('testdir').join('eightya.txt')
2727
filepath.write(80*'a')
2828
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
@@ -35,7 +35,7 @@ def test_file_upload_80a(tmpdir):
3535
assert d == 'aaaaaaaaaaaaaaaaaaaa'
3636

3737

38-
def test_file_upload_70a(tmpdir):
38+
def test_file_upload_70a(tmpdir, fakeicontrolsession):
3939
filepath = tmpdir.mkdir('testdir').join('seventya.txt')
4040
filepath.write(70*'a')
4141
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
@@ -51,7 +51,7 @@ def test_file_upload_70a(tmpdir):
5151
assert 10*'a' == lchunk
5252

5353

54-
def test_ISO_extension(tmpdir):
54+
def test_ISO_extension(tmpdir, fakeicontrolsession):
5555
filepath = tmpdir.mkdir('testdir').join('wrongname.iso')
5656
filepath.write('fake')
5757
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
@@ -61,7 +61,7 @@ def test_ISO_extension(tmpdir):
6161
assert EIO.value.message == 'wrongname.iso'
6262

6363

64-
def test_stringio_upload_80a(tmpdir):
64+
def test_stringio_upload_80a(tmpdir, fakeicontrolsession):
6565
sio = StringIO(80*'a')
6666
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
6767
mr._meta_data['icr_session'] = mock.MagicMock()
@@ -73,7 +73,7 @@ def test_stringio_upload_80a(tmpdir):
7373
assert d == 'aaaaaaaaaaaaaaaaaaaa'
7474

7575

76-
def test_stringio_upload_70a(tmpdir):
76+
def test_stringio_upload_70a(tmpdir, fakeicontrolsession):
7777
sio = StringIO(70*'a')
7878
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
7979
mr._meta_data['icr_session'] = mock.MagicMock()
@@ -87,7 +87,7 @@ def test_stringio_upload_70a(tmpdir):
8787
assert 10*'a' == lchunk
8888

8989

90-
def test_bytes_upload_80a(tmpdir):
90+
def test_bytes_upload_80a(tmpdir, fakeicontrolsession):
9191
bytestring80a = 80*'a'
9292
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
9393
mr._meta_data['icr_session'] = mock.MagicMock()
@@ -99,7 +99,7 @@ def test_bytes_upload_80a(tmpdir):
9999
assert d == 'aaaaaaaaaaaaaaaaaaaa'
100100

101101

102-
def test_bytes_upload_70a(tmpdir):
102+
def test_bytes_upload_70a(tmpdir, fakeicontrolsession):
103103
bytestring70a = 70*'a'
104104
mr = ManagementRoot('FAKENETLOC', 'FAKENAME', 'FAKEPASSWORD')
105105
mr._meta_data['icr_session'] = mock.MagicMock()

f5/bigip/test/test___init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626

2727

2828
@pytest.fixture
29-
def FakeBigIP():
29+
def FakeBigIP(fakeicontrolsession):
3030
FBIP = BigIP('FakeHostName', 'admin', 'admin')
3131
FBIP.icontrol = mock.MagicMock()
3232
return FBIP
3333

3434

3535
@pytest.fixture
36-
def FakeBigIPWithPort():
36+
def FakeBigIPWithPort(fakeicontrolsession):
3737
FBIP = BigIP('FakeHostName', 'admin', 'admin', port='10443')
3838
FBIP.icontrol = mock.MagicMock()
3939
return FBIP

f5/bigip/tm/auth/test/test_user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def FakeUser():
2929

3030

3131
class TestCreate(object):
32-
def test_create_two(self):
32+
def test_create_two(self, fakeicontrolsession):
3333
b = BigIP('localhost', 'admin', 'admin')
3434
n1 = b.auth.users.user
3535
n2 = b.auth.users.user

f5/bigip/tm/cm/test/test___init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121

2222
@pytest.fixture
23-
def FakeiControl():
23+
def FakeiControl(fakeicontrolsession):
2424
bigip = BigIP('host', 'fake_admin', 'fake_admin')
2525
mock_session = mock.MagicMock()
2626
mock_session.post.return_value.json.return_value = {}

f5/bigip/tm/ltm/test/test_nat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def FakeNat():
2929

3030

3131
class TestCreate(object):
32-
def test_create_two(self):
32+
def test_create_two(self, fakeicontrolsession):
3333
b = BigIP('192.168.1.1', 'admin', 'admin')
3434
n1 = b.ltm.nats.nat
3535
n2 = b.ltm.nats.nat

f5/bigip/tm/ltm/test/test_rule.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def FakeRule():
2929

3030

3131
class TestCreate(object):
32-
def test_create_two(self):
32+
def test_create_two(self, fakeicontrolsession):
3333
b = BigIP('192.168.1.1', 'admin', 'admin')
3434
r1 = b.ltm.rules.rule
3535
r2 = b.ltm.rules.rule

f5/bigip/tm/sys/test/test_db.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,15 @@
2222
@pytest.fixture
2323
def fake_dbs():
2424
fake_sys = mock.MagicMock()
25-
return Dbs(fake_sys)
25+
dbs = Dbs(fake_sys)
26+
dbs._meta_data['bigip'].tmos_version = '11.6.0'
27+
return dbs
2628

2729

2830
class TestDb(object):
2931
def test_create_raises(self):
3032
dbs = fake_dbs()
33+
print(dbs.raw)
3134
db = dbs.db
3235
with pytest.raises(UnsupportedOperation):
3336
db.create()

f5/bigip/tm/sys/test/test_folder.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
@pytest.fixture
2424
def FakeFolders():
2525
fake_sys = mock.MagicMock()
26-
return Folders(fake_sys)
26+
folders = Folders(fake_sys)
27+
folders._meta_data['bigip'].tmos_version = '11.6.0'
28+
return folders
2729

2830

2931
class TestFolder(object):

0 commit comments

Comments
 (0)