mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-09-19 04:59:01 +00:00
app: Add unique ID to each app class
Also maintain a global list of apps Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
parent
e55a85bdd1
commit
46f162d093
@ -31,10 +31,24 @@ class App:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
app_id = None
|
||||||
|
_all_apps = collections.OrderedDict()
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Initialize the app object."""
|
"""Initialize the app object."""
|
||||||
|
if not self.app_id:
|
||||||
|
raise ValueError('Invalid app ID configured')
|
||||||
|
|
||||||
self.components = collections.OrderedDict()
|
self.components = collections.OrderedDict()
|
||||||
|
|
||||||
|
# Add self to global list of apps
|
||||||
|
self._all_apps[self.app_id] = self
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get(cls, app_id):
|
||||||
|
"""Return an app with given ID."""
|
||||||
|
return cls._all_apps[app_id]
|
||||||
|
|
||||||
def add(self, component):
|
def add(self, component):
|
||||||
"""Add a component to an app."""
|
"""Add a component to an app."""
|
||||||
self.components[component.component_id] = component
|
self.components[component.component_id] = component
|
||||||
|
|||||||
@ -38,6 +38,8 @@ app = None
|
|||||||
class ApacheApp(app_module.App):
|
class ApacheApp(app_module.App):
|
||||||
"""FreedomBox app for Apache web server."""
|
"""FreedomBox app for Apache web server."""
|
||||||
|
|
||||||
|
app_id = 'apache'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -63,6 +63,8 @@ app = None
|
|||||||
class AvahiApp(app_module.App):
|
class AvahiApp(app_module.App):
|
||||||
"""FreedomBox app for Avahi."""
|
"""FreedomBox app for Avahi."""
|
||||||
|
|
||||||
|
app_id = 'avahi'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -59,6 +59,8 @@ app = None
|
|||||||
class BackupsApp(app_module.App):
|
class BackupsApp(app_module.App):
|
||||||
"""FreedomBox app for backup and restore."""
|
"""FreedomBox app for backup and restore."""
|
||||||
|
|
||||||
|
app_id = 'backups'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -90,6 +90,8 @@ app = None
|
|||||||
class BindApp(app_module.App):
|
class BindApp(app_module.App):
|
||||||
"""FreedomBox app for Bind."""
|
"""FreedomBox app for Bind."""
|
||||||
|
|
||||||
|
app_id = 'bind'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -68,6 +68,8 @@ app = None
|
|||||||
class CockpitApp(app_module.App):
|
class CockpitApp(app_module.App):
|
||||||
"""FreedomBox app for Cockpit."""
|
"""FreedomBox app for Cockpit."""
|
||||||
|
|
||||||
|
app_id = 'cockpit'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -53,6 +53,8 @@ app = None
|
|||||||
class ConfigApp(app_module.App):
|
class ConfigApp(app_module.App):
|
||||||
"""FreedomBox app for basic system configuration."""
|
"""FreedomBox app for basic system configuration."""
|
||||||
|
|
||||||
|
app_id = 'config'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -61,6 +61,8 @@ app = None
|
|||||||
class CoquelicotApp(app_module.App):
|
class CoquelicotApp(app_module.App):
|
||||||
"""FreedomBox app for Coquelicot."""
|
"""FreedomBox app for Coquelicot."""
|
||||||
|
|
||||||
|
app_id = 'coquelicot'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -53,6 +53,8 @@ app = None
|
|||||||
class DateTimeApp(app_module.App):
|
class DateTimeApp(app_module.App):
|
||||||
"""FreedomBox app for date and time."""
|
"""FreedomBox app for date and time."""
|
||||||
|
|
||||||
|
app_id = 'datetime'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -64,6 +64,8 @@ app = None
|
|||||||
class DelugeApp(app_module.App):
|
class DelugeApp(app_module.App):
|
||||||
"""FreedomBox app for Deluge."""
|
"""FreedomBox app for Deluge."""
|
||||||
|
|
||||||
|
app_id = 'deluge'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -46,6 +46,8 @@ app = None
|
|||||||
class DiagnosticsApp(app_module.App):
|
class DiagnosticsApp(app_module.App):
|
||||||
"""FreedomBox app for diagnostics."""
|
"""FreedomBox app for diagnostics."""
|
||||||
|
|
||||||
|
app_id = 'diagnostics'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -81,6 +81,8 @@ app = None
|
|||||||
class DiasporaApp(app_module.App):
|
class DiasporaApp(app_module.App):
|
||||||
"""FreedomBox app for Diaspora."""
|
"""FreedomBox app for Diaspora."""
|
||||||
|
|
||||||
|
app_id = 'diaspora'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -64,6 +64,8 @@ app = None
|
|||||||
class DynamicDNSApp(app_module.App):
|
class DynamicDNSApp(app_module.App):
|
||||||
"""FreedomBox app for Dynamic DNS."""
|
"""FreedomBox app for Dynamic DNS."""
|
||||||
|
|
||||||
|
app_id = 'dynamicdns'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -81,6 +81,8 @@ app = None
|
|||||||
class EjabberdApp(app_module.App):
|
class EjabberdApp(app_module.App):
|
||||||
"""FreedomBox app for ejabberd."""
|
"""FreedomBox app for ejabberd."""
|
||||||
|
|
||||||
|
app_id = 'ejabberd'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -53,6 +53,8 @@ app = None
|
|||||||
class FirewallApp(app_module.App):
|
class FirewallApp(app_module.App):
|
||||||
"""FreedomBox app for Firewall."""
|
"""FreedomBox app for Firewall."""
|
||||||
|
|
||||||
|
app_id = 'firewall'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -38,6 +38,8 @@ app = None
|
|||||||
class HelpApp(app_module.App):
|
class HelpApp(app_module.App):
|
||||||
"""FreedomBox app for showing help."""
|
"""FreedomBox app for showing help."""
|
||||||
|
|
||||||
|
app_id = 'help'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -80,6 +80,8 @@ app = None
|
|||||||
class I2PApp(app_module.App):
|
class I2PApp(app_module.App):
|
||||||
"""FreedomBox app for I2P."""
|
"""FreedomBox app for I2P."""
|
||||||
|
|
||||||
|
app_id = 'i2p'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -72,6 +72,8 @@ app = None
|
|||||||
class IkiwikiApp(app_module.App):
|
class IkiwikiApp(app_module.App):
|
||||||
"""FreedomBox app for Ikiwiki."""
|
"""FreedomBox app for Ikiwiki."""
|
||||||
|
|
||||||
|
app_id = 'ikiwiki'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -62,6 +62,8 @@ app = None
|
|||||||
class InfinotedApp(app_module.App):
|
class InfinotedApp(app_module.App):
|
||||||
"""FreedomBox app for infinoted."""
|
"""FreedomBox app for infinoted."""
|
||||||
|
|
||||||
|
app_id = 'infinoted'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -55,6 +55,8 @@ app = None
|
|||||||
class JSXCApp(app_module.App):
|
class JSXCApp(app_module.App):
|
||||||
"""FreedomBox app for JSXC."""
|
"""FreedomBox app for JSXC."""
|
||||||
|
|
||||||
|
app_id = 'jsxc'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -74,6 +74,8 @@ app = None
|
|||||||
class LetsEncryptApp(app_module.App):
|
class LetsEncryptApp(app_module.App):
|
||||||
"""FreedomBox app for Let's Encrypt."""
|
"""FreedomBox app for Let's Encrypt."""
|
||||||
|
|
||||||
|
app_id = 'letsencrypt'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -77,6 +77,8 @@ app = None
|
|||||||
class MatrixSynapseApp(app_module.App):
|
class MatrixSynapseApp(app_module.App):
|
||||||
"""FreedomBox app for Matrix Synapse."""
|
"""FreedomBox app for Matrix Synapse."""
|
||||||
|
|
||||||
|
app_id = 'matrixsynapse'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -64,6 +64,8 @@ app = None
|
|||||||
class MediaWikiApp(app_module.App):
|
class MediaWikiApp(app_module.App):
|
||||||
"""FreedomBox app for MediaWiki."""
|
"""FreedomBox app for MediaWiki."""
|
||||||
|
|
||||||
|
app_id = 'mediawiki'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -81,6 +81,8 @@ app = None
|
|||||||
class MinetestApp(app_module.App):
|
class MinetestApp(app_module.App):
|
||||||
"""FreedomBox app for Minetest."""
|
"""FreedomBox app for Minetest."""
|
||||||
|
|
||||||
|
app_id = 'minetest'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -70,6 +70,8 @@ app = None
|
|||||||
class MLDonkeyApp(app_module.App):
|
class MLDonkeyApp(app_module.App):
|
||||||
"""FreedomBox app for MLDonkey."""
|
"""FreedomBox app for MLDonkey."""
|
||||||
|
|
||||||
|
app_id = 'mldonkey'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -60,6 +60,8 @@ app = None
|
|||||||
class MonkeysphereApp(app_module.App):
|
class MonkeysphereApp(app_module.App):
|
||||||
"""FreedomBox app for Monkeysphere."""
|
"""FreedomBox app for Monkeysphere."""
|
||||||
|
|
||||||
|
app_id = 'monkeysphere'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -67,6 +67,8 @@ app = None
|
|||||||
class MumbleApp(app_module.App):
|
class MumbleApp(app_module.App):
|
||||||
"""FreedomBox app for Mumble."""
|
"""FreedomBox app for Mumble."""
|
||||||
|
|
||||||
|
app_id = 'mumble'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -63,6 +63,8 @@ app = None
|
|||||||
class NamesApp(app_module.App):
|
class NamesApp(app_module.App):
|
||||||
"""FreedomBox app for names."""
|
"""FreedomBox app for names."""
|
||||||
|
|
||||||
|
app_id = 'names'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -45,6 +45,8 @@ app = None
|
|||||||
class NetworksApp(app_module.App):
|
class NetworksApp(app_module.App):
|
||||||
"""FreedomBox app for Networks."""
|
"""FreedomBox app for Networks."""
|
||||||
|
|
||||||
|
app_id = 'networks'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -63,6 +63,8 @@ app = None
|
|||||||
class OpenVPNApp(app_module.App):
|
class OpenVPNApp(app_module.App):
|
||||||
"""FreedomBox app for OpenVPN."""
|
"""FreedomBox app for OpenVPN."""
|
||||||
|
|
||||||
|
app_id = 'openvpn'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -82,6 +82,8 @@ app = None
|
|||||||
class PagekiteApp(app_module.App):
|
class PagekiteApp(app_module.App):
|
||||||
"""FreedomBox app for Pagekite."""
|
"""FreedomBox app for Pagekite."""
|
||||||
|
|
||||||
|
app_id = 'pagekite'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -70,6 +70,8 @@ app = None
|
|||||||
class PrivoxyApp(app_module.App):
|
class PrivoxyApp(app_module.App):
|
||||||
"""FreedomBox app for Privoxy."""
|
"""FreedomBox app for Privoxy."""
|
||||||
|
|
||||||
|
app_id = 'privoxy'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -73,6 +73,8 @@ app = None
|
|||||||
class QuasselApp(app_module.App):
|
class QuasselApp(app_module.App):
|
||||||
"""FreedomBox app for Quassel."""
|
"""FreedomBox app for Quassel."""
|
||||||
|
|
||||||
|
app_id = 'quassel'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@ -88,8 +90,8 @@ class QuasselApp(app_module.App):
|
|||||||
login_required=True)
|
login_required=True)
|
||||||
self.add(shortcut)
|
self.add(shortcut)
|
||||||
|
|
||||||
firewall = Firewall('firewall-quassel', name,
|
firewall = Firewall('firewall-quassel', name, ports=['quassel-plinth'],
|
||||||
ports=['quassel-plinth'], is_external=True)
|
is_external=True)
|
||||||
self.add(firewall)
|
self.add(firewall)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -78,6 +78,8 @@ app = None
|
|||||||
class RadicaleApp(app_module.App):
|
class RadicaleApp(app_module.App):
|
||||||
"""FreedomBox app for Radicale."""
|
"""FreedomBox app for Radicale."""
|
||||||
|
|
||||||
|
app_id = 'radicale'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -76,6 +76,8 @@ app = None
|
|||||||
class ReproApp(app_module.App):
|
class ReproApp(app_module.App):
|
||||||
"""FreedomBox app for Repro."""
|
"""FreedomBox app for Repro."""
|
||||||
|
|
||||||
|
app_id = 'repro'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -62,6 +62,8 @@ app = None
|
|||||||
class RestoreApp(app_module.App):
|
class RestoreApp(app_module.App):
|
||||||
"""FreedomBox app for Restore."""
|
"""FreedomBox app for Restore."""
|
||||||
|
|
||||||
|
app_id = 'restore'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -69,6 +69,8 @@ app = None
|
|||||||
class RoundcubeApp(app_module.App):
|
class RoundcubeApp(app_module.App):
|
||||||
"""FreedomBox app for Roundcube."""
|
"""FreedomBox app for Roundcube."""
|
||||||
|
|
||||||
|
app_id = 'roundcube'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -63,6 +63,8 @@ app = None
|
|||||||
class SearxApp(app_module.App):
|
class SearxApp(app_module.App):
|
||||||
"""FreedomBox app for Searx."""
|
"""FreedomBox app for Searx."""
|
||||||
|
|
||||||
|
app_id = 'searx'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -50,6 +50,8 @@ app = None
|
|||||||
class SecurityApp(app_module.App):
|
class SecurityApp(app_module.App):
|
||||||
"""FreedomBox app for security."""
|
"""FreedomBox app for security."""
|
||||||
|
|
||||||
|
app_id = 'security'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -56,6 +56,8 @@ app = None
|
|||||||
class ShaarliApp(app_module.App):
|
class ShaarliApp(app_module.App):
|
||||||
"""FreedomBox app for Shaarli."""
|
"""FreedomBox app for Shaarli."""
|
||||||
|
|
||||||
|
app_id = 'shaarli'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -64,6 +64,8 @@ app = None
|
|||||||
class ShadowsocksApp(app_module.App):
|
class ShadowsocksApp(app_module.App):
|
||||||
"""FreedomBox app for Shadowsocks."""
|
"""FreedomBox app for Shadowsocks."""
|
||||||
|
|
||||||
|
app_id = 'shadowsocks'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -46,6 +46,8 @@ app = None
|
|||||||
class SharingApp(app_module.App):
|
class SharingApp(app_module.App):
|
||||||
"""FreedomBox app for sharing files."""
|
"""FreedomBox app for sharing files."""
|
||||||
|
|
||||||
|
app_id = 'sharing'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -64,6 +64,8 @@ app = None
|
|||||||
class SnapshotApp(app_module.App):
|
class SnapshotApp(app_module.App):
|
||||||
"""FreedomBox app for snapshots."""
|
"""FreedomBox app for snapshots."""
|
||||||
|
|
||||||
|
app_id = 'snapshot'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -56,6 +56,8 @@ app = None
|
|||||||
class SSHApp(app_module.App):
|
class SSHApp(app_module.App):
|
||||||
"""FreedomBox app for SSH."""
|
"""FreedomBox app for SSH."""
|
||||||
|
|
||||||
|
app_id = 'ssh'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -61,6 +61,8 @@ app = None
|
|||||||
class StorageApp(app_module.App):
|
class StorageApp(app_module.App):
|
||||||
"""FreedomBox app for storage."""
|
"""FreedomBox app for storage."""
|
||||||
|
|
||||||
|
app_id = 'storage'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -73,6 +73,8 @@ app = None
|
|||||||
class SyncthingApp(app_module.App):
|
class SyncthingApp(app_module.App):
|
||||||
"""FreedomBox app for Syncthing."""
|
"""FreedomBox app for Syncthing."""
|
||||||
|
|
||||||
|
app_id = 'syncthing'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -66,6 +66,8 @@ app = None
|
|||||||
class TahoeApp(app_module.App):
|
class TahoeApp(app_module.App):
|
||||||
"""FreedomBox app for Tahoe LAFS."""
|
"""FreedomBox app for Tahoe LAFS."""
|
||||||
|
|
||||||
|
app_id = 'tahoe'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -69,6 +69,8 @@ app = None
|
|||||||
class TorApp(app_module.App):
|
class TorApp(app_module.App):
|
||||||
"""FreedomBox app for Tor."""
|
"""FreedomBox app for Tor."""
|
||||||
|
|
||||||
|
app_id = 'tor'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -65,6 +65,8 @@ app = None
|
|||||||
class TransmissionApp(app_module.App):
|
class TransmissionApp(app_module.App):
|
||||||
"""FreedomBox app for Transmission."""
|
"""FreedomBox app for Transmission."""
|
||||||
|
|
||||||
|
app_id = 'transmission'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -72,6 +72,8 @@ app = None
|
|||||||
class TTRSSApp(app_module.App):
|
class TTRSSApp(app_module.App):
|
||||||
"""FreedomBox app for TT-RSS."""
|
"""FreedomBox app for TT-RSS."""
|
||||||
|
|
||||||
|
app_id = 'ttrss'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -49,6 +49,8 @@ app = None
|
|||||||
class UpgradesApp(app_module.App):
|
class UpgradesApp(app_module.App):
|
||||||
"""FreedomBox app for software upgrades."""
|
"""FreedomBox app for software upgrades."""
|
||||||
|
|
||||||
|
app_id = 'upgrades'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -54,6 +54,8 @@ app = None
|
|||||||
class UsersApp(app_module.App):
|
class UsersApp(app_module.App):
|
||||||
"""FreedomBox app for users and groups management."""
|
"""FreedomBox app for users and groups management."""
|
||||||
|
|
||||||
|
app_id = 'users'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Create components for the app."""
|
"""Create components for the app."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@ -25,6 +25,11 @@ import pytest
|
|||||||
from plinth.app import App, Component, FollowerComponent, LeaderComponent
|
from plinth.app import App, Component, FollowerComponent, LeaderComponent
|
||||||
|
|
||||||
|
|
||||||
|
class TestApp(App):
|
||||||
|
"""Sample App for testing."""
|
||||||
|
app_id = 'test-app'
|
||||||
|
|
||||||
|
|
||||||
class LeaderTest(FollowerComponent):
|
class LeaderTest(FollowerComponent):
|
||||||
"""Test class for using LeaderComponent in tests."""
|
"""Test class for using LeaderComponent in tests."""
|
||||||
is_leader = True
|
is_leader = True
|
||||||
@ -33,7 +38,7 @@ class LeaderTest(FollowerComponent):
|
|||||||
@pytest.fixture(name='app_with_components')
|
@pytest.fixture(name='app_with_components')
|
||||||
def fixture_app_with_components():
|
def fixture_app_with_components():
|
||||||
"""Setup an app with some components."""
|
"""Setup an app with some components."""
|
||||||
app = App()
|
app = TestApp()
|
||||||
app.add(FollowerComponent('test-follower-1'))
|
app.add(FollowerComponent('test-follower-1'))
|
||||||
app.add(FollowerComponent('test-follower-2'))
|
app.add(FollowerComponent('test-follower-2'))
|
||||||
app.add(LeaderTest('test-leader-1'))
|
app.add(LeaderTest('test-leader-1'))
|
||||||
@ -41,16 +46,31 @@ def fixture_app_with_components():
|
|||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(name='empty_apps', autouse=True)
|
||||||
|
def fixture_empty_apps():
|
||||||
|
"""Remove all apps from global list before starting a test."""
|
||||||
|
App._all_apps = collections.OrderedDict()
|
||||||
|
|
||||||
|
|
||||||
def test_app_instantiation():
|
def test_app_instantiation():
|
||||||
"""Test that App is instantiated properly."""
|
"""Test that App is instantiated properly."""
|
||||||
app = App()
|
app = TestApp()
|
||||||
assert isinstance(app.components, collections.OrderedDict)
|
assert isinstance(app.components, collections.OrderedDict)
|
||||||
assert not app.components
|
assert not app.components
|
||||||
|
assert app.app_id == 'test-app'
|
||||||
|
assert app._all_apps['test-app'] == app
|
||||||
|
assert len(app._all_apps) == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_get():
|
||||||
|
"""Test that an app can be correctly retrieved."""
|
||||||
|
app = TestApp()
|
||||||
|
assert App.get(app.app_id) == app
|
||||||
|
|
||||||
|
|
||||||
def test_app_add():
|
def test_app_add():
|
||||||
"""Test adding a components to an App."""
|
"""Test adding a components to an App."""
|
||||||
app = App()
|
app = TestApp()
|
||||||
component = Component('test-component')
|
component = Component('test-component')
|
||||||
return_value = app.add(component)
|
return_value = app.add(component)
|
||||||
assert len(app.components) == 1
|
assert len(app.components) == 1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user