Add management command to run tests from app list built dynamically.
This commit is contained in:
@@ -11,6 +11,7 @@ from .models import AccessControlList
|
|||||||
|
|
||||||
class ACLsApp(MayanAppConfig):
|
class ACLsApp(MayanAppConfig):
|
||||||
name = 'acls'
|
name = 'acls'
|
||||||
|
test = True
|
||||||
verbose_name = _('ACLs')
|
verbose_name = _('ACLs')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class AuthenticationApp(MayanAppConfig):
|
class AuthenticationApp(MayanAppConfig):
|
||||||
name = 'authentication'
|
name = 'authentication'
|
||||||
|
test = True
|
||||||
verbose_name = _('Authentication')
|
verbose_name = _('Authentication')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ from .tasks import task_check_expired_check_outs # NOQA
|
|||||||
|
|
||||||
class CheckoutsApp(MayanAppConfig):
|
class CheckoutsApp(MayanAppConfig):
|
||||||
name = 'checkouts'
|
name = 'checkouts'
|
||||||
|
test = True
|
||||||
verbose_name = _('Checkouts')
|
verbose_name = _('Checkouts')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ class MayanAppConfig(apps.AppConfig):
|
|||||||
class CommonApp(MayanAppConfig):
|
class CommonApp(MayanAppConfig):
|
||||||
app_url = ''
|
app_url = ''
|
||||||
name = 'common'
|
name = 'common'
|
||||||
|
test = True
|
||||||
verbose_name = _('Common')
|
verbose_name = _('Common')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
26
mayan/apps/common/management/commands/runtests.py
Normal file
26
mayan/apps/common/management/commands/runtests.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from optparse import make_option
|
||||||
|
|
||||||
|
from django import apps
|
||||||
|
from django.core import management
|
||||||
|
|
||||||
|
|
||||||
|
class Command(management.BaseCommand):
|
||||||
|
help = 'Run all configured tests for the project.'
|
||||||
|
|
||||||
|
option_list = management.BaseCommand.option_list + (
|
||||||
|
make_option('--nomigrations', action='store_true', dest='nomigrations', default=False,
|
||||||
|
help='Don\'t use migrations when creating the test database.'),
|
||||||
|
)
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
kwargs = {}
|
||||||
|
if options.get('nomigrations'):
|
||||||
|
kwargs['nomigrations'] = True
|
||||||
|
|
||||||
|
test_apps = [app.name for app in apps.apps.get_app_configs() if getattr(app, 'test', False)]
|
||||||
|
|
||||||
|
print 'Testing: {}'.format(', '.join(test_apps))
|
||||||
|
|
||||||
|
management.call_command('test', *test_apps, interactive=False, **kwargs)
|
||||||
@@ -18,6 +18,7 @@ from .links import (
|
|||||||
class DjangoGPGApp(MayanAppConfig):
|
class DjangoGPGApp(MayanAppConfig):
|
||||||
app_url = 'gpg'
|
app_url = 'gpg'
|
||||||
name = 'django_gpg'
|
name = 'django_gpg'
|
||||||
|
test = True
|
||||||
verbose_name = _('Django GPG')
|
verbose_name = _('Django GPG')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ class DocumentIndexingApp(MayanAppConfig):
|
|||||||
app_namespace = 'indexing'
|
app_namespace = 'indexing'
|
||||||
app_url = 'indexing'
|
app_url = 'indexing'
|
||||||
name = 'document_indexing'
|
name = 'document_indexing'
|
||||||
|
test = True
|
||||||
verbose_name = _('Document indexing')
|
verbose_name = _('Document indexing')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ class DocumentSignaturesApp(MayanAppConfig):
|
|||||||
app_namespace = 'signatures'
|
app_namespace = 'signatures'
|
||||||
app_url = 'signatures'
|
app_url = 'signatures'
|
||||||
name = 'document_signatures'
|
name = 'document_signatures'
|
||||||
|
test = True
|
||||||
verbose_name = _('Document signatures')
|
verbose_name = _('Document signatures')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ from .widgets import document_thumbnail
|
|||||||
|
|
||||||
class DocumentsApp(MayanAppConfig):
|
class DocumentsApp(MayanAppConfig):
|
||||||
name = 'documents'
|
name = 'documents'
|
||||||
|
test = True
|
||||||
verbose_name = _('Documents')
|
verbose_name = _('Documents')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class DynamicSearchApp(MayanAppConfig):
|
|||||||
app_namespace = 'search'
|
app_namespace = 'search'
|
||||||
app_url = 'search'
|
app_url = 'search'
|
||||||
name = 'dynamic_search'
|
name = 'dynamic_search'
|
||||||
|
test = True
|
||||||
verbose_name = _('Dynamic search')
|
verbose_name = _('Dynamic search')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ from .permissions import (
|
|||||||
|
|
||||||
class FoldersApp(MayanAppConfig):
|
class FoldersApp(MayanAppConfig):
|
||||||
name = 'folders'
|
name = 'folders'
|
||||||
|
test = True
|
||||||
verbose_name = _('Folders')
|
verbose_name = _('Folders')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -6,4 +6,5 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
|
|
||||||
class LockManagerApp(apps.AppConfig):
|
class LockManagerApp(apps.AppConfig):
|
||||||
name = 'lock_manager'
|
name = 'lock_manager'
|
||||||
|
test = True
|
||||||
verbose_name = _('Lock manager')
|
verbose_name = _('Lock manager')
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class MetadataApp(MayanAppConfig):
|
class MetadataApp(MayanAppConfig):
|
||||||
name = 'metadata'
|
name = 'metadata'
|
||||||
|
test = True
|
||||||
verbose_name = _('Metadata')
|
verbose_name = _('Metadata')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ def document_version_ocr_submit(self):
|
|||||||
|
|
||||||
class OCRApp(MayanAppConfig):
|
class OCRApp(MayanAppConfig):
|
||||||
name = 'ocr'
|
name = 'ocr'
|
||||||
|
test = True
|
||||||
verbose_name = _('OCR')
|
verbose_name = _('OCR')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ from .links import (
|
|||||||
|
|
||||||
class PermissionsApp(MayanAppConfig):
|
class PermissionsApp(MayanAppConfig):
|
||||||
name = 'permissions'
|
name = 'permissions'
|
||||||
|
test = True
|
||||||
verbose_name = _('Permissions')
|
verbose_name = _('Permissions')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ from .widgets import staging_file_thumbnail
|
|||||||
|
|
||||||
class SourcesApp(MayanAppConfig):
|
class SourcesApp(MayanAppConfig):
|
||||||
name = 'sources'
|
name = 'sources'
|
||||||
|
test = True
|
||||||
verbose_name = _('Sources')
|
verbose_name = _('Sources')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ from .widgets import widget_document_tags, widget_single_tag
|
|||||||
|
|
||||||
class TagsApp(MayanAppConfig):
|
class TagsApp(MayanAppConfig):
|
||||||
name = 'tags'
|
name = 'tags'
|
||||||
|
test = True
|
||||||
verbose_name = _('Tags')
|
verbose_name = _('Tags')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user