mirror of
https://github.com/craigerl/aprsd.git
synced 2024-12-23 18:15:57 -05:00
Added some plugin unit tests
This patch adds some real unit tests for the following plugins PingPlugin TimePlugin VersionPlugin
This commit is contained in:
parent
f65707cb8c
commit
171703ac1a
95
tests/test_plugin.py
Normal file
95
tests/test_plugin.py
Normal file
@ -0,0 +1,95 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
import unittest
|
||||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
|
||||
import aprsd
|
||||
from aprsd import plugin
|
||||
from aprsd.fuzzyclock import fuzzy
|
||||
|
||||
|
||||
class testPlugin(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.config = mock.MagicMock()
|
||||
|
||||
@mock.patch("time.localtime")
|
||||
def test_Time(self, mock_time):
|
||||
fake_time = mock.MagicMock()
|
||||
h = fake_time.tm_hour = 16
|
||||
m = fake_time.tm_min = 12
|
||||
s = fake_time.tm_sec = 55
|
||||
mock_time.return_value = fake_time
|
||||
time_plugin = plugin.TimePlugin(self.config)
|
||||
|
||||
fromcall = "KFART"
|
||||
message = "location"
|
||||
ack = 1
|
||||
|
||||
actual = time_plugin.run(fromcall, message, ack)
|
||||
self.assertEqual(None, actual)
|
||||
|
||||
cur_time = fuzzy(h, m, 1)
|
||||
|
||||
message = "time"
|
||||
expected = "{} ({}:{} PDT) ({})".format(
|
||||
cur_time, str(h), str(m).rjust(2, "0"), message.rstrip()
|
||||
)
|
||||
actual = time_plugin.run(fromcall, message, ack)
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
@mock.patch("time.localtime")
|
||||
def test_Ping(self, mock_time):
|
||||
fake_time = mock.MagicMock()
|
||||
h = fake_time.tm_hour = 16
|
||||
m = fake_time.tm_min = 12
|
||||
s = fake_time.tm_sec = 55
|
||||
mock_time.return_value = fake_time
|
||||
|
||||
ping = plugin.PingPlugin(self.config)
|
||||
|
||||
fromcall = "KFART"
|
||||
message = "location"
|
||||
ack = 1
|
||||
|
||||
result = ping.run(fromcall, message, ack)
|
||||
self.assertEqual(None, result)
|
||||
|
||||
def ping_str(h, m, s):
|
||||
return (
|
||||
"Pong! "
|
||||
+ str(h).zfill(2)
|
||||
+ ":"
|
||||
+ str(m).zfill(2)
|
||||
+ ":"
|
||||
+ str(s).zfill(2)
|
||||
)
|
||||
|
||||
message = "Ping"
|
||||
actual = ping.run(fromcall, message, ack)
|
||||
expected = ping_str(h, m, s)
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
message = "ping"
|
||||
actual = ping.run(fromcall, message, ack)
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
def test_version(self):
|
||||
expected = "APRSD version '{}'".format(aprsd.__version__)
|
||||
version_plugin = plugin.VersionPlugin(self.config)
|
||||
|
||||
fromcall = "KFART"
|
||||
message = "No"
|
||||
ack = 1
|
||||
|
||||
actual = version_plugin.run(fromcall, message, ack)
|
||||
self.assertEqual(None, actual)
|
||||
|
||||
message = "version"
|
||||
actual = version_plugin.run(fromcall, message, ack)
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
message = "Version"
|
||||
actual = version_plugin.run(fromcall, message, ack)
|
||||
self.assertEqual(expected, actual)
|
Loading…
Reference in New Issue
Block a user