mirror of
https://github.com/craigerl/aprsd.git
synced 2024-11-16 05:12:01 -05:00
Hemna
0ad791bdd9
This patch restructures the unit tests for plugins. This also adds unit tests for the NotifyPlugin
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from unittest import mock
|
|
|
|
import pytz
|
|
|
|
from aprsd.fuzzyclock import fuzzy
|
|
from aprsd.plugins import time as time_plugin
|
|
|
|
from .. import fake, test_plugin
|
|
|
|
|
|
class TestTimePlugins(test_plugin.TestPlugin):
|
|
|
|
@mock.patch("aprsd.plugins.time.TimePlugin._get_local_tz")
|
|
@mock.patch("aprsd.plugins.time.TimePlugin._get_utcnow")
|
|
def test_time(self, mock_utcnow, mock_localtz):
|
|
utcnow = pytz.datetime.datetime.utcnow()
|
|
mock_utcnow.return_value = utcnow
|
|
tz = pytz.timezone("US/Pacific")
|
|
mock_localtz.return_value = tz
|
|
|
|
gmt_t = pytz.utc.localize(utcnow)
|
|
local_t = gmt_t.astimezone(tz)
|
|
|
|
fake_time = mock.MagicMock()
|
|
h = int(local_t.strftime("%H"))
|
|
m = int(local_t.strftime("%M"))
|
|
fake_time.tm_sec = 13
|
|
time = time_plugin.TimePlugin(self.config)
|
|
|
|
packet = fake.fake_packet(
|
|
message="location",
|
|
msg_number=1,
|
|
)
|
|
|
|
actual = time.filter(packet)
|
|
self.assertEqual(None, actual)
|
|
|
|
cur_time = fuzzy(h, m, 1)
|
|
|
|
packet = fake.fake_packet(
|
|
message="time",
|
|
msg_number=1,
|
|
)
|
|
local_short_str = local_t.strftime("%H:%M %Z")
|
|
expected = "{} ({})".format(
|
|
cur_time,
|
|
local_short_str,
|
|
)
|
|
actual = time.filter(packet)
|
|
self.assertEqual(expected, actual)
|