Skip to content

Commit

Permalink
Unit test PaloaltoArp._do_request()
Browse files Browse the repository at this point in the history
  • Loading branch information
lunkwill42 committed May 2, 2024
1 parent 303197f commit 7ff53ee
Showing 1 changed file with 30 additions and 2 deletions.
32 changes: 30 additions & 2 deletions tests/unittests/ipdevpoll/plugins_paloaltoarp_test.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from unittest.mock import patch
from unittest.mock import patch, Mock

from IPy import IP
from nav.ipdevpoll.plugins.paloaltoarp import PaloaltoArp, parse_arp
from twisted.internet import defer
from twisted.internet.defer import inlineCallbacks
from twisted.internet.defer import inlineCallbacks, succeed
from twisted.web.client import Agent, Response

mock_data = b'''
<response status="success">
Expand Down Expand Up @@ -79,3 +80,30 @@ def test_get_mappings():
('ifindex', IP('192.168.0.2'), '00:00:00:00:00:02'),
('ifindex', IP('192.168.0.3'), '00:00:00:00:00:03'),
]


@inlineCallbacks
def test_do_request():
mock_response = Mock(spec=Response)
mock_agent = Mock(spec=Agent)
mock_agent.request.return_value = succeed(mock_response)

with patch(
'nav.ipdevpoll.plugins.paloaltoarp.Agent', return_value=mock_agent
), patch('twisted.web.client.readBody', return_value="test content"):
mock_address = "paloalto.example.org"
mock_key = "secret"

mock_netbox = Mock(sysname=mock_address, ip="127.0.0.1")

plugin = PaloaltoArp(netbox=mock_netbox, agent=Mock(), containers=Mock())
result = yield plugin._do_request(mock_address, mock_key)

expected_url = f"https://{mock_address}/api/?type=op&cmd=<show><arp><entry+name+=+'all'/></arp></show>&key={mock_key}".encode(
"utf-8"
)
mock_agent.request.assert_called()
args, kwargs = mock_agent.request.call_args
assert expected_url in args

assert result == "test content"

0 comments on commit 7ff53ee

Please sign in to comment.