Files

60 lines
2.1 KiB
Python

#!/usr/bin/env python
# coding=utf-8
from __future__ import absolute_import
import unittest
import mock
from octoprint_tailscale_funnel import TailscaleFunnelPlugin
import octoprint_tailscale_funnel
class TestTailscaleFunnelPlugin(unittest.TestCase):
def setUp(self):
self.plugin = TailscaleFunnelPlugin()
def test_plugin_name(self):
# Test that the plugin has the correct name
self.assertEqual(octoprint_tailscale_funnel.__plugin_name__, "Tailscale Funnel Plugin")
def test_get_settings_defaults(self):
# Test that the default settings are correct
defaults = self.plugin.get_settings_defaults()
self.assertIn("enabled", defaults)
self.assertIn("port", defaults)
self.assertIn("confirm_enable", defaults)
self.assertEqual(defaults["enabled"], False)
self.assertEqual(defaults["port"], 80)
self.assertEqual(defaults["confirm_enable"], True)
def test_get_assets(self):
# Test that the assets are correctly defined
assets = self.plugin.get_assets()
self.assertIn("js", assets)
self.assertIn("css", assets)
self.assertIn("less", assets)
self.assertIn("js/tailscale_funnel.js", assets["js"])
self.assertIn("css/tailscale_funnel.css", assets["css"])
self.assertIn("less/tailscale_funnel.less", assets["less"])
@mock.patch('octoprint_tailscale_funnel.tailscale_interface.subprocess.run')
def test_get_update_information(self, mock_run):
# Setup
self.plugin._plugin_version = "1.0.0"
# Execute
update_info = self.plugin.get_update_information()
# Assert
self.assertIn("tailscale_funnel", update_info)
plugin_info = update_info["tailscale_funnel"]
self.assertEqual(plugin_info["displayName"], "Tailscale Funnel Plugin")
self.assertEqual(plugin_info["displayVersion"], "1.0.0")
self.assertEqual(plugin_info["type"], "github_release")
self.assertEqual(plugin_info["user"], "markus")
self.assertEqual(plugin_info["repo"], "OctoPrint-Tailscale-Funnel")
if __name__ == '__main__':
unittest.main()