69 lines
2.5 KiB
Python
69 lines
2.5 KiB
Python
#!/usr/bin/env python
|
|
# coding=utf-8
|
|
from __future__ import absolute_import
|
|
|
|
import unittest
|
|
import mock
|
|
|
|
from octoprint_tailscale_funnel import TailscaleFunnelPlugin
|
|
|
|
|
|
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(self.plugin._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"])
|
|
|
|
def test_get_template_configs(self):
|
|
# Test that the template configs are correctly defined
|
|
configs = self.plugin.get_template_configs()
|
|
self.assertIsInstance(configs, list)
|
|
self.assertEqual(len(configs), 1)
|
|
self.assertIn("type", configs[0])
|
|
self.assertIn("custom_bindings", configs[0])
|
|
self.assertEqual(configs[0]["type"], "settings")
|
|
self.assertEqual(configs[0]["custom_bindings"], False)
|
|
|
|
@mock.patch('octoprint_tailscale_funnel.TailscaleFunnelPlugin._run_command')
|
|
def test_get_update_information(self, mock_run_command):
|
|
# 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() |