Add `metadata` module and read package attrs dynamically.

master
Fabio Caccamo 2023-02-09 19:14:33 +01:00
parent e2b23c238f
commit 71cc60bea3
7 changed files with 69 additions and 9 deletions

View File

@ -0,0 +1,17 @@
from admin_interface.metadata import (
__author__,
__copyright__,
__description__,
__license__,
__title__,
__version__,
)
__all__ = [
"__author__",
"__copyright__",
"__description__",
"__license__",
"__title__",
"__version__",
]

View File

@ -0,0 +1,10 @@
__author__ = "Fabio Caccamo"
__copyright__ = "Copyright (c) 2016-present Fabio Caccamo"
__description__ = (
"django's default admin interface with superpowers - "
"customizable themes, popup windows replaced by modals and many other features."
)
__email__ = "fabio.caccamo@gmail.com"
__license__ = "MIT"
__title__ = "django-admin-interface"
__version__ = "0.24.2"

View File

@ -8,8 +8,8 @@ from django.urls import NoReverseMatch, reverse
from django.utils import translation from django.utils import translation
from admin_interface.cache import get_cached_active_theme, set_cached_active_theme from admin_interface.cache import get_cached_active_theme, set_cached_active_theme
from admin_interface.metadata import __version__
from admin_interface.models import Theme from admin_interface.models import Theme
from admin_interface.version import __version__
register = template.Library() register = template.Library()

View File

@ -1 +0,0 @@
__version__ = "0.24.2"

View File

@ -1,11 +1,11 @@
[metadata] [metadata]
name = django-admin-interface name = django-admin-interface
version = attr: admin_interface.version.__version__ version = attr: admin_interface.metadata.__version__
author = Fabio Caccamo author = attr: admin_interface.metadata.__author__
author_email = fabio.caccamo@gmail.com author_email = attr: admin_interface.metadata.__email__
maintainer = Fabio Caccamo maintainer = attr: admin_interface.metadata.__author__
maintainer_email = fabio.caccamo@gmail.com maintainer_email = attr: admin_interface.metadata.__email__
description = django-admin-interface is a modern responsive flat admin interface customizable by the admin itself. description = attr: admin_interface.metadata.__description__
keywords = keywords =
django django
admin admin

View File

@ -0,0 +1,34 @@
import re
from django.test import TestCase
from admin_interface.metadata import (
__author__,
__copyright__,
__description__,
__email__,
__license__,
__title__,
__version__,
)
class MetadataTestCase(TestCase):
"""
This class describes a metadata test case.
"""
def test_metadata(self):
self.assertTrue(isinstance(__author__, str))
self.assertTrue(isinstance(__copyright__, str))
self.assertTrue(isinstance(__description__, str))
self.assertTrue(isinstance(__email__, str))
self.assertTrue(isinstance(__license__, str))
self.assertTrue(isinstance(__title__, str))
self.assertTrue(isinstance(__version__, str))
def test_version(self):
v = __version__
v_re = re.compile(r"^([0-9]+)(\.([0-9]+)){1,2}$")
v_match = v_re.match(v)
self.assertTrue(v_match is not None)

View File

@ -6,10 +6,10 @@ from django.template import Context, Template
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from django.test.client import RequestFactory from django.test.client import RequestFactory
from admin_interface.metadata import __version__
from admin_interface.models import Theme from admin_interface.models import Theme
from admin_interface.templatetags import admin_interface_tags as templatetags from admin_interface.templatetags import admin_interface_tags as templatetags
from admin_interface.templatetags.admin_interface_tags import hash_string from admin_interface.templatetags.admin_interface_tags import hash_string
from admin_interface.version import __version__
class AdminInterfaceTemplateTagsTestCase(TestCase): class AdminInterfaceTemplateTagsTestCase(TestCase):