Skip to content

Commit

Permalink
Merge pull request #2969 from freenas/FIX-unit-tests
Browse files Browse the repository at this point in the history
Fix unit tests
  • Loading branch information
themylogin committed Apr 29, 2019
2 parents 95a97ac + 53c823d commit a2c4ad3
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 57 deletions.
68 changes: 35 additions & 33 deletions src/middlewared/middlewared/pytest/conftest.py
Expand Up @@ -2,48 +2,50 @@
import os
import pytest

from .client import Client

from middlewared.client import Client as WSClient

try:
from .client import Client
except ImportError:
pass
else:
class ConfigTarget(object):

class ConfigTarget(object):

def __init__(self):
self.config = configparser.ConfigParser()
self.file_path = 'target.conf'
self.config_section = 'Target'
self.config.read(self.file_path)
def __init__(self):
self.config = configparser.ConfigParser()
self.file_path = 'target.conf'
self.config_section = 'Target'
self.config.read(self.file_path)

def target_hostname(self):
return os.environ.get('TEST_HOSTNAME') or self.config.get(self.config_section, 'hostname')
def target_hostname(self):
return os.environ.get('TEST_HOSTNAME') or self.config.get(self.config_section, 'hostname')

def target_api(self):
return os.environ.get('TEST_API') or self.config.get(self.config_section, 'api')
def target_api(self):
return os.environ.get('TEST_API') or self.config.get(self.config_section, 'api')

def target_username(self):
return os.environ.get('TEST_USERNAME') or self.config.get(self.config_section, 'username')
def target_username(self):
return os.environ.get('TEST_USERNAME') or self.config.get(self.config_section, 'username')

def target_password(self):
return os.environ.get('TEST_PASSWORD') or self.config.get(self.config_section, 'password')
def target_password(self):
return os.environ.get('TEST_PASSWORD') or self.config.get(self.config_section, 'password')


class Connection(object):
class Connection(object):

def __init__(self):
self.conf = ConfigTarget()
self.rest = Client(
f'http://{self.conf.target_hostname()}',
self.conf.target_api(),
self.conf.target_username(),
self.conf.target_password(),
)
self.ws = WSClient(f'ws://{self.conf.target_hostname()}/websocket')
self.ws.call('auth.login', self.conf.target_username(), self.conf.target_password())
def __init__(self):
self.conf = ConfigTarget()
self.rest = Client(
f'http://{self.conf.target_hostname()}',
self.conf.target_api(),
self.conf.target_username(),
self.conf.target_password(),
)
self.ws = WSClient(f'ws://{self.conf.target_hostname()}/websocket')
self.ws.call('auth.login', self.conf.target_username(), self.conf.target_password())

connection = Connection()
connection = Connection()

@pytest.fixture
def conn():
global connection
return connection
@pytest.fixture
def conn():
global connection
return connection
Expand Up @@ -2,11 +2,12 @@
from datetime import datetime
import textwrap

from mock import Mock
from mock import ANY, Mock
import pytest

from middlewared.alert.source.ipmi_sel import (
IPMISELRecord, parse_ipmitool_output, parse_sel_information,
IPMISELAlertClass, IPMISELSpaceLeftAlertClass,
IPMISELAlertSource, IPMISELSpaceLeftAlertSource,
Alert
)
Expand Down Expand Up @@ -77,13 +78,14 @@ async def test_ipmi_sel_alert_source__works():
9,04/20/2017,06:03:07,Watchdog2 #0xca,Timer interrupt (),Asserted
""")) == [
Alert(
title="%(sensor)s %(direction)s %(event)s",
IPMISELAlertClass,
args=dict(
sensor="Watchdog2 #0xca",
event="Timer interrupt ()",
direction="Asserted",
verbose=None
),
_key=ANY,
datetime=datetime(2017, 4, 20, 6, 3, 7),
)
]
Expand All @@ -108,13 +110,14 @@ async def test_ipmi_sel_alert_source__works_filters_dismissed_events():
9,04/20/2017,06:03:08,Watchdog2 #0xca,Timer interrupt (),Asserted
""")) == [
Alert(
title="%(sensor)s %(direction)s %(event)s",
IPMISELAlertClass,
args=dict(
sensor="Watchdog2 #0xca",
event="Timer interrupt ()",
direction="Asserted",
verbose=None
),
_key=ANY,
datetime=datetime(2017, 4, 20, 6, 3, 8),
)
]
Expand Down Expand Up @@ -178,7 +181,7 @@ def test_ipmi_sel_space_left_alert_source__emits():
Largest Free Blk : 493
Max Record Size : 20
""")) == Alert(
title="IPMI SEL Low Space Left: %(free)s (used %(used)s)",
IPMISELSpaceLeftAlertClass,
args={
"free": "260 bytes",
"used": "98%",
Expand Down
Expand Up @@ -109,7 +109,7 @@ async def test_get_disk__unknown_usb_bridge():
}) == ["/dev/ada0", "-d", "sat"]

run.assert_called_once_with(["smartctl", "-i", "/dev/ada0"], stderr=subprocess.STDOUT, check=False,
encoding="utf8")
encoding="utf8", errors="ignore")


@pytest.mark.asyncio
Expand Down
4 changes: 3 additions & 1 deletion src/middlewared/middlewared/pytest/unit/middleware.py
@@ -1,4 +1,4 @@
from asynctest import Mock
from asynctest import CoroutineMock, Mock
from middlewared.utils import filter_list
from middlewared.schema import Schemas, resolve_methods

Expand All @@ -10,6 +10,8 @@ def __init__(self, *args, **kwargs):
self['system.is_freenas'] = Mock(return_value=True)
self.__schemas = Schemas()

self.call_hook = CoroutineMock()

async def _call(self, name, serviceobj, method, args):
to_resolve = [getattr(serviceobj, attr) for attr in dir(serviceobj) if attr != 'query']
resolve_methods(self.__schemas, to_resolve)
Expand Down
17 changes: 0 additions & 17 deletions src/middlewared/middlewared/pytest/unit/plugins/test_interface.py
Expand Up @@ -349,23 +349,6 @@ async def test__interfaces_service__update_two_same_network():
assert 'interface_update.aliases.0' in ve.value


@pytest.mark.asyncio
async def test__interfaces_service__update_mtu():

m = Middleware()
m['interface.query'] = m._query_filter(INTERFACES)
m['datastore.query'] = Mock(return_value=[])
m['datastore.insert'] = Mock(return_value=5)

update_interface = INTERFACES[1]

await InterfaceService(m).update(
update_interface['id'], {
'mtu': 1550,
},
)


@pytest.mark.asyncio
async def test__interfaces_service__update_mtu_options():

Expand Down
2 changes: 1 addition & 1 deletion src/middlewared/middlewared/pytest/unit/test_schema.py
Expand Up @@ -224,7 +224,7 @@ def dictnull(self, data):

self = Mock()

assert dictnull(self, None) == {}
assert dictnull(self, None) == None


def test__schema_dict_not_null():
Expand Down

0 comments on commit a2c4ad3

Please sign in to comment.