Source code for unittests.test_plugins.test_pidchecker

# Copyright (c) 2011 - 2017, Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""``test_pidchecker.py``

`Unittests for pytest_pidchecker.py`

"""

from testlib.common3 import Environment
from plugins.pytest_pidchecker import PidChecker

# golden setup with TG
SETUP = {"env": [{"id": 0, "ports": [[1, 1, 1]]},
                 {"id": 412},
                 {"id": "31"}],
         "cross": {"31": [[0, 1, 412, 1]]}}

# config of environment
ENV = [{"name": "IXIA-103", "entry_type": "tg", "instance_type": "ixiahl", "id": 0, "ip_host": "121.224.187.103"},
       {"name": "Zero Cross", "entry_type": "cross", "instance_type": "zero", "id": "31"},
       {"name": "seacliff12", "entry_type": "switch", "instance_type": "seacliff", "id": 412,
        "ip_host": "127.0.0.1", "ip_port": "8081",
        "use_sshtun": 1, "sshtun_user": "unittester", "sshtun_pass": "unittester", "sshtun_port": 22,
        "default_gw": "121.224.187.1", "net_mask": "255.255.255.0",
        "ports_count": "52", "pwboard_host": "121.224.187.94", "pwboard_port": "12", "halt": 0,
        "portserv_host": "121.224.187.93", "portserv_user": "root", "portserv_pass": "dbps", "portserv_tty": 12, "portserv_port": 2012,
        "telnet_loginprompt": "seacliff12 login:", "telnet_passprompt": "Password:",
        "telnet_user": "admin", "telnet_pass": "admin", "telnet_prompt": "[admin@seacliff12 ~]$",
        "cli_user": "admin", "cli_user_passw": "admin", "cli_user_prompt": "Switch",
        "ports": [24, 25, 26],
        "related_id": ["31", "156"]},
       {"name": "loghost", "entry_type": "linux_host", "instance_type": "generic", "id": "156",
        "ip_host": "127.0.0.1", "sshtun_port": 22, "sshtun_user": "unittester", "sshtun_pass": "unittester"}]


[docs]class Config(object): def __init__(self, pidchecker): # self.pytest_runtest_call_status = True self.option = Option(pidchecker)
[docs] def __call__(self, x): """ """ return ENV
[docs]class Option(object): def __init__(self, pidchecker): self.pidchecker = pidchecker
[docs]class Setup(object):
[docs] def __call__(self, x): """ """ return SETUP
[docs]class FakeOpts(object):
[docs] def __init__(self): """ """ self.setup = "setup.json" self.env = "" self.get_only = False self.build_path = '' self.ui = 'ons_xmlrpc' self.lhost_ui = 'linux_bash'
[docs]class GetProc(object):
[docs] def __call__(self, x, skip_prcheck=None): """ """ return {x: 1}
[docs]class FakeItem(object): def __init__(self, monkeypatch, pidchecker): self.keywords = [] self.runtest_protocol_status = {"skipped": False, "skipped_on_call": False, "call_status": True} self.name = "some_name" self.actual_pidchecker = False self.config = Config(pidchecker) self.get_marker = GetMarker() monkeypatch.setattr(Environment, "_get_conf", Config(pidchecker)) monkeypatch.setattr(Environment, "_get_setup", Setup()) self.config.env = Environment(FakeOpts()) for switch in list(self.config.env.switch.values()): # pylint: disable=no-member switch.status = True monkeypatch.setattr(switch, "get_processes", GetProc())
[docs]class GetMarker(object):
[docs] def __call__(self, x): """ """ return None
# Test cases:
[docs]def test_pidchecker_setup_true(monkeypatch): """ """ item = FakeItem(monkeypatch, True) pidchecker = PidChecker(item.config.env, True, item) pidchecker.setup() assert list(pidchecker.processes.values()) == [{'some_name': 1}]
[docs]def test_pidchecker_setup_false(monkeypatch): """ """ item = FakeItem(monkeypatch, False) pidchecker = PidChecker(item.config.env, False, item) pidchecker.setup() assert list(pidchecker.processes.values()) == []
[docs]def test_pidchecker_teardown_true(monkeypatch): """ """ item = FakeItem(monkeypatch, True) pidchecker = PidChecker(item.config.env, True, item) pidchecker.setup() pidchecker.teardown()
[docs]def test_pidchecker_teardown_false(monkeypatch): """ """ item = FakeItem(monkeypatch, False) pidchecker = PidChecker(item.config.env, False, item) pidchecker.setup() pidchecker.teardown()