mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -16,16 +16,22 @@ class ModoExtension(object):
|
||||
label = None
|
||||
version = "NA"
|
||||
description = ""
|
||||
url = None
|
||||
needs_media = False
|
||||
always_active = False
|
||||
url = None
|
||||
topredirection_url = None
|
||||
|
||||
def get_url(self):
|
||||
"""Return extension base url."""
|
||||
if self.url is None:
|
||||
return self.name
|
||||
return self.url
|
||||
|
||||
def infos(self):
|
||||
"""Information about this extension."""
|
||||
return {
|
||||
"name": self.name, "label": self.label, "version": self.version,
|
||||
"description": self.description, "url": self.url,
|
||||
"description": self.description, "url": self.get_url(),
|
||||
"topredirection_url": self.topredirection_url,
|
||||
"always_active": self.always_active
|
||||
}
|
||||
@@ -101,8 +107,7 @@ class ExtensionsPool(object):
|
||||
root = ""
|
||||
pattern = "{}.urls_api"
|
||||
else:
|
||||
baseurl = getattr(ext, "url", ext_name)
|
||||
root = r"^{}/".format(baseurl)
|
||||
root = r"^{}/".format(ext.get_url())
|
||||
options.update({"namespace": ext_name})
|
||||
pattern = "{}.urls"
|
||||
try:
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
"""Custom urls."""
|
||||
|
||||
urlpatterns = []
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
url("^$", views.test_view, name="index")
|
||||
]
|
||||
|
||||
@@ -6,6 +6,7 @@ import sys
|
||||
from testfixtures import compare
|
||||
|
||||
from django.core import management
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
from .. import extensions
|
||||
@@ -57,7 +58,7 @@ class ExtensionTestCase(TestCase):
|
||||
compare(infos, {
|
||||
"name": "stupid_extension_1", "label": "Stupid extension",
|
||||
"version": "1.0.0", "description": "A stupid extension",
|
||||
"url": None, "always_active": False,
|
||||
"url": "stupid_extension_1", "always_active": False,
|
||||
"topredirection_url": None
|
||||
})
|
||||
|
||||
@@ -72,3 +73,14 @@ class ExtensionTestCase(TestCase):
|
||||
"""Check if method is called."""
|
||||
with self.assertRaises(RuntimeError):
|
||||
management.call_command("load_initial_data")
|
||||
|
||||
def test_get_urls(self):
|
||||
"""Load extensions urls."""
|
||||
urls = self.pool.get_urls()
|
||||
self.assertEqual(len(urls), 1)
|
||||
|
||||
url = reverse("stupid_extension_2:index")
|
||||
self.assertEqual(url, "/stupid_extension_2/")
|
||||
|
||||
urls = self.pool.get_urls(category="api")
|
||||
self.assertEqual(len(urls), 0)
|
||||
|
||||
Reference in New Issue
Block a user