Merge pull request #704 from izn/add-uptime-and-public-ip-tests

Add uptime and public ip tests
This commit is contained in:
tobi-wan-kenobi 2020-09-03 03:42:38 +02:00 committed by GitHub
commit ecf1825c00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 5 deletions

View file

@ -1,5 +1,41 @@
import pytest
from unittest import TestCase, mock
def test_load_module():
__import__("modules.contrib.publicip")
import core.config
import core.widget
import modules.contrib.publicip
def build_module():
config = core.config.Config([])
return modules.contrib.publicip.Module(config=config, theme=None)
def widget(module):
return module.widgets()[0]
class PublicIPTest(TestCase):
def test_load_module(self):
__import__("modules.contrib.publicip")
@mock.patch('util.location.public_ip')
def test_public_ip(self, public_ip_mock):
public_ip_mock.return_value = '5.12.220.2'
module = build_module()
module.update()
assert widget(module).full_text() == '5.12.220.2'
@mock.patch('util.location.public_ip')
def test_public_ip_with_exception(self, public_ip_mock):
public_ip_mock.side_effect = Exception
module = build_module()
module.update()
assert widget(module).full_text() == 'n/a'
def test_interval_seconds(self):
module = build_module()
assert module.parameter('interval') == 3600

View file

@ -1,7 +1,26 @@
import pytest
from unittest import TestCase, mock
pytest.importorskip("datetime")
import core.config
import core.widget
import modules.contrib.uptime
def test_load_module():
__import__("modules.contrib.uptime")
def build_module():
config = core.config.Config([])
return modules.contrib.uptime.Module(config=config, theme=None)
def widget(module):
return module.widgets()[0]
class UptimeTest(TestCase):
def test_load_module(self):
__import__("modules.contrib.uptime")
@mock.patch('builtins.open', new_callable=mock.mock_open, read_data='300000 10.45')
def test_uptime(self, uptime_mock):
module = build_module()
module.update()
uptime_mock.assert_called_with('/proc/uptime', 'r')
assert widget(module).full_text() == '3 days, 11:20:00'