-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add basic test coverage for linkstatetask
- Loading branch information
1 parent
ebebe7c
commit ba1bc37
Showing
3 changed files
with
250 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
1.3.6.1.2.1.1.1.0|4x|50726f4375727665204a34393030422053776974636820323632362c207265766973696f6e20482e30382e39382c20524f4d20482e30382e303220282f73772f636f64652f6275696c642f666973682874735f30385f352929 | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.11.2.3.7.11.45 | ||
1.3.6.1.2.1.1.3.0|67|3307498428 | ||
1.3.6.1.2.1.1.4.0|4x|45696e6172204c696c6c6562727967666a656c64 | ||
1.3.6.1.2.1.1.5.0|4|buick | ||
1.3.6.1.2.1.1.6.0|4x|4c43266262656e | ||
1.3.6.1.2.1.1.7.0|2|74 | ||
1.3.6.1.2.1.2.2.1.1.1|2|1 | ||
1.3.6.1.2.1.2.2.1.1.2|2|2 | ||
1.3.6.1.2.1.2.2.1.2.1|4|1 | ||
1.3.6.1.2.1.2.2.1.2.2|4|2 | ||
1.3.6.1.2.1.2.2.1.3.1|2|6 | ||
1.3.6.1.2.1.2.2.1.3.2|2|6 | ||
1.3.6.1.2.1.2.2.1.4.1|2|1514 | ||
1.3.6.1.2.1.2.2.1.4.2|2|1514 | ||
1.3.6.1.2.1.2.2.1.5.1|66|10000000 | ||
1.3.6.1.2.1.2.2.1.5.2|66|10000000 | ||
1.3.6.1.2.1.2.2.1.6.1|4x|0019bb8f4b7f | ||
1.3.6.1.2.1.2.2.1.6.2|4x|0019bb8f4b7e | ||
1.3.6.1.2.1.2.2.1.7.1|2|1 | ||
1.3.6.1.2.1.2.2.1.7.2|2|1 | ||
1.3.6.1.2.1.2.2.1.8.1|2|1 | ||
1.3.6.1.2.1.2.2.1.8.2|2|2 | ||
1.3.6.1.2.1.2.2.1.9.1|67|1737882440 | ||
1.3.6.1.2.1.2.2.1.9.2|67|1806268995 | ||
1.3.6.1.2.1.2.2.1.10.1|65|0 | ||
1.3.6.1.2.1.2.2.1.10.2|65|0 | ||
1.3.6.1.2.1.2.2.1.11.1|65|0 | ||
1.3.6.1.2.1.2.2.1.11.2|65|0 | ||
1.3.6.1.2.1.2.2.1.12.1|65|0 | ||
1.3.6.1.2.1.2.2.1.12.2|65|0 | ||
1.3.6.1.2.1.2.2.1.13.1|65|0 | ||
1.3.6.1.2.1.2.2.1.13.2|65|0 | ||
1.3.6.1.2.1.2.2.1.14.1|65|0 | ||
1.3.6.1.2.1.2.2.1.14.2|65|0 | ||
1.3.6.1.2.1.2.2.1.15.1|65|0 | ||
1.3.6.1.2.1.2.2.1.15.2|65|0 | ||
1.3.6.1.2.1.2.2.1.16.1|65|0 | ||
1.3.6.1.2.1.2.2.1.16.2|65|0 | ||
1.3.6.1.2.1.2.2.1.17.1|65|0 | ||
1.3.6.1.2.1.2.2.1.17.2|65|0 | ||
1.3.6.1.2.1.2.2.1.18.1|65|0 | ||
1.3.6.1.2.1.2.2.1.18.2|65|0 | ||
1.3.6.1.2.1.2.2.1.19.1|65|0 | ||
1.3.6.1.2.1.2.2.1.19.2|65|0 | ||
1.3.6.1.2.1.2.2.1.20.1|65|0 | ||
1.3.6.1.2.1.2.2.1.20.2|65|0 | ||
1.3.6.1.2.1.2.2.1.21.1|66|0 | ||
1.3.6.1.2.1.2.2.1.21.2|66|0 | ||
1.3.6.1.2.1.2.2.1.22.1|6|1.3.6.1.2.1.10.7 | ||
1.3.6.1.2.1.2.2.1.22.2|6|1.3.6.1.2.1.10.7 | ||
1.3.6.1.2.1.11.30.0|2|2 | ||
1.3.6.1.2.1.31.1.1.1.1.1|4|1 | ||
1.3.6.1.2.1.31.1.1.1.1.2|4|2 | ||
1.3.6.1.2.1.31.1.1.1.2.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.2.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.3.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.3.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.4.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.4.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.5.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.5.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.6.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.6.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.7.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.7.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.8.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.8.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.9.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.9.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.10.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.10.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.11.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.11.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.12.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.12.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.13.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.13.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.14.1|2|1 | ||
1.3.6.1.2.1.31.1.1.1.14.2|2|1 | ||
1.3.6.1.2.1.31.1.1.1.15.1|66|10 | ||
1.3.6.1.2.1.31.1.1.1.15.2|66|10 | ||
1.3.6.1.2.1.31.1.1.1.16.1|2|1 | ||
1.3.6.1.2.1.31.1.1.1.16.2|2|1 | ||
1.3.6.1.2.1.31.1.1.1.17.1|2|1 | ||
1.3.6.1.2.1.31.1.1.1.17.2|2|1 | ||
1.3.6.1.2.1.31.1.1.1.18.1|4x|4120706f656d | ||
1.3.6.1.2.1.31.1.1.1.18.2|4x|66726f6d20612066616d6f7573 | ||
1.3.6.1.2.1.31.1.1.1.19.1|67|1737882440 | ||
1.3.6.1.2.1.31.1.1.1.19.2|67|1806268995 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
1.3.6.1.2.1.1.1.0|4x|50726f4375727665204a34393030422053776974636820323632362c207265766973696f6e20482e30382e39382c20524f4d20482e30382e303220282f73772f636f64652f6275696c642f666973682874735f30385f352929 | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.11.2.3.7.11.45 | ||
1.3.6.1.2.1.1.3.0|67|3307498428 | ||
1.3.6.1.2.1.1.4.0|4x|45696e6172204c696c6c6562727967666a656c64 | ||
1.3.6.1.2.1.1.5.0|4|buick | ||
1.3.6.1.2.1.1.6.0|4x|4c43266262656e | ||
1.3.6.1.2.1.1.7.0|2|74 | ||
1.3.6.1.2.1.2.2.1.1.1|2|1 | ||
1.3.6.1.2.1.2.2.1.1.2|2|2 | ||
1.3.6.1.2.1.2.2.1.2.1|4|1 | ||
1.3.6.1.2.1.2.2.1.2.2|4|2 | ||
1.3.6.1.2.1.2.2.1.3.1|2|6 | ||
1.3.6.1.2.1.2.2.1.3.2|2|6 | ||
1.3.6.1.2.1.2.2.1.4.1|2|1514 | ||
1.3.6.1.2.1.2.2.1.4.2|2|1514 | ||
1.3.6.1.2.1.2.2.1.5.1|66|10000000 | ||
1.3.6.1.2.1.2.2.1.5.2|66|10000000 | ||
1.3.6.1.2.1.2.2.1.6.1|4x|0019bb8f4b7f | ||
1.3.6.1.2.1.2.2.1.6.2|4x|0019bb8f4b7e | ||
1.3.6.1.2.1.2.2.1.7.1|2|1 | ||
1.3.6.1.2.1.2.2.1.7.2|2|1 | ||
1.3.6.1.2.1.2.2.1.8.1|2|1 | ||
1.3.6.1.2.1.2.2.1.8.2|2|1 | ||
1.3.6.1.2.1.2.2.1.9.1|67|1737882440 | ||
1.3.6.1.2.1.2.2.1.9.2|67|1806268995 | ||
1.3.6.1.2.1.2.2.1.10.1|65|0 | ||
1.3.6.1.2.1.2.2.1.10.2|65|0 | ||
1.3.6.1.2.1.2.2.1.11.1|65|0 | ||
1.3.6.1.2.1.2.2.1.11.2|65|0 | ||
1.3.6.1.2.1.2.2.1.12.1|65|0 | ||
1.3.6.1.2.1.2.2.1.12.2|65|0 | ||
1.3.6.1.2.1.2.2.1.13.1|65|0 | ||
1.3.6.1.2.1.2.2.1.13.2|65|0 | ||
1.3.6.1.2.1.2.2.1.14.1|65|0 | ||
1.3.6.1.2.1.2.2.1.14.2|65|0 | ||
1.3.6.1.2.1.2.2.1.15.1|65|0 | ||
1.3.6.1.2.1.2.2.1.15.2|65|0 | ||
1.3.6.1.2.1.2.2.1.16.1|65|0 | ||
1.3.6.1.2.1.2.2.1.16.2|65|0 | ||
1.3.6.1.2.1.2.2.1.17.1|65|0 | ||
1.3.6.1.2.1.2.2.1.17.2|65|0 | ||
1.3.6.1.2.1.2.2.1.18.1|65|0 | ||
1.3.6.1.2.1.2.2.1.18.2|65|0 | ||
1.3.6.1.2.1.2.2.1.19.1|65|0 | ||
1.3.6.1.2.1.2.2.1.19.2|65|0 | ||
1.3.6.1.2.1.2.2.1.20.1|65|0 | ||
1.3.6.1.2.1.2.2.1.20.2|65|0 | ||
1.3.6.1.2.1.2.2.1.21.1|66|0 | ||
1.3.6.1.2.1.2.2.1.21.2|66|0 | ||
1.3.6.1.2.1.2.2.1.22.1|6|1.3.6.1.2.1.10.7 | ||
1.3.6.1.2.1.2.2.1.22.2|6|1.3.6.1.2.1.10.7 | ||
1.3.6.1.2.1.11.30.0|2|2 | ||
1.3.6.1.2.1.31.1.1.1.1.1|4|1 | ||
1.3.6.1.2.1.31.1.1.1.1.2|4|2 | ||
1.3.6.1.2.1.31.1.1.1.2.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.2.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.3.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.3.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.4.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.4.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.5.1|65|0 | ||
1.3.6.1.2.1.31.1.1.1.5.2|65|0 | ||
1.3.6.1.2.1.31.1.1.1.6.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.6.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.7.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.7.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.8.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.8.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.9.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.9.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.10.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.10.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.11.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.11.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.12.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.12.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.13.1|70|0 | ||
1.3.6.1.2.1.31.1.1.1.13.2|70|0 | ||
1.3.6.1.2.1.31.1.1.1.14.1|2|1 | ||
1.3.6.1.2.1.31.1.1.1.14.2|2|1 | ||
1.3.6.1.2.1.31.1.1.1.15.1|66|10 | ||
1.3.6.1.2.1.31.1.1.1.15.2|66|10 | ||
1.3.6.1.2.1.31.1.1.1.16.1|2|1 | ||
1.3.6.1.2.1.31.1.1.1.16.2|2|1 | ||
1.3.6.1.2.1.31.1.1.1.17.1|2|1 | ||
1.3.6.1.2.1.31.1.1.1.17.2|2|1 | ||
1.3.6.1.2.1.31.1.1.1.18.1|4x|4120706f656d | ||
1.3.6.1.2.1.31.1.1.1.18.2|4x|66726f6d20612066616d6f7573 | ||
1.3.6.1.2.1.31.1.1.1.19.1|67|1737882440 | ||
1.3.6.1.2.1.31.1.1.1.19.2|67|1806268995 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
import pytest | ||
|
||
from zino.config.models import PollDevice | ||
from zino.state import ZinoState | ||
from zino.tasks.linkstatetask import BaseInterfaceRow, LinkStateTask | ||
|
||
|
||
class TestLinkStateTask: | ||
@pytest.mark.asyncio | ||
async def test_run_should_not_create_event_if_links_are_up(self, linkstatetask_with_links_up): | ||
task = linkstatetask_with_links_up | ||
assert (await task.run()) is None | ||
assert len(task.state.events) == 0 | ||
|
||
@pytest.mark.asyncio | ||
async def test_run_should_create_event_if_at_least_one_link_is_down(self, linkstatetask_with_one_link_down): | ||
task = linkstatetask_with_one_link_down | ||
assert (await task.run()) is None | ||
assert len(task.state.events) == 1 | ||
|
||
def test_when_patterns_are_empty_interface_should_not_be_ignored(self, task_with_dummy_device): | ||
data = BaseInterfaceRow( | ||
index=2, descr="GigabitEthernet1/2", alias="uplink", admin_status="up", oper_status="up", last_change=0 | ||
) | ||
assert task_with_dummy_device._is_interface_watched(data) | ||
|
||
def test_when_interface_matches_watchpat_it_should_not_be_ignored(self, task_with_dummy_device): | ||
data = BaseInterfaceRow( | ||
index=2, descr="GigabitEthernet1/2", alias="uplink", admin_status="up", oper_status="up", last_change=0 | ||
) | ||
task_with_dummy_device.device.watchpat = "Gigabit" | ||
assert task_with_dummy_device._is_interface_watched(data) | ||
|
||
def test_when_interface_doesnt_match_watchpat_it_should_be_ignored(self, task_with_dummy_device): | ||
data = BaseInterfaceRow( | ||
index=2, descr="GigabitEthernet1/2", alias="uplink", admin_status="up", oper_status="up", last_change=0 | ||
) | ||
task_with_dummy_device.device.watchpat = "TenGiga" | ||
assert not task_with_dummy_device._is_interface_watched(data) | ||
|
||
def test_when_interface_matches_ignorepat_it_should_be_ignored(self, task_with_dummy_device): | ||
data = BaseInterfaceRow( | ||
index=2, descr="GigabitEthernet1/2", alias="uplink", admin_status="up", oper_status="up", last_change=0 | ||
) | ||
task_with_dummy_device.device.ignorepat = ".*Ethernet" | ||
assert not task_with_dummy_device._is_interface_watched(data) | ||
|
||
|
||
@pytest.fixture | ||
def linkstatetask_with_links_up(snmpsim, snmp_test_port): | ||
device = PollDevice(name="buick.lab.example.org", address="127.0.0.1", port=snmp_test_port, community="linksup") | ||
state = ZinoState() | ||
task = LinkStateTask(device, state) | ||
yield task | ||
|
||
|
||
@pytest.fixture | ||
def linkstatetask_with_one_link_down(snmpsim, snmp_test_port): | ||
device = PollDevice(name="buick.lab.example.org", address="127.0.0.1", port=snmp_test_port, community="linksdown") | ||
state = ZinoState() | ||
task = LinkStateTask(device, state) | ||
yield task | ||
|
||
|
||
@pytest.fixture | ||
def task_with_dummy_device(): | ||
device = PollDevice(name="test", address="127.0.0.1") | ||
state = ZinoState() | ||
task = LinkStateTask(device, state) | ||
yield task |