diff --git a/mayan/apps/acls/apps.py b/mayan/apps/acls/apps.py index 2a039c7958..5f79f0fc0e 100644 --- a/mayan/apps/acls/apps.py +++ b/mayan/apps/acls/apps.py @@ -11,6 +11,7 @@ from .models import AccessControlList class ACLsApp(MayanAppConfig): name = 'acls' + test = True verbose_name = _('ACLs') def ready(self): diff --git a/mayan/apps/authentication/apps.py b/mayan/apps/authentication/apps.py index 0253005507..dd63d47de9 100644 --- a/mayan/apps/authentication/apps.py +++ b/mayan/apps/authentication/apps.py @@ -13,6 +13,7 @@ logger = logging.getLogger(__name__) class AuthenticationApp(MayanAppConfig): name = 'authentication' + test = True verbose_name = _('Authentication') def ready(self): diff --git a/mayan/apps/checkouts/apps.py b/mayan/apps/checkouts/apps.py index 7885598626..23aa3bf144 100644 --- a/mayan/apps/checkouts/apps.py +++ b/mayan/apps/checkouts/apps.py @@ -30,6 +30,7 @@ from .tasks import task_check_expired_check_outs # NOQA class CheckoutsApp(MayanAppConfig): name = 'checkouts' + test = True verbose_name = _('Checkouts') def ready(self): diff --git a/mayan/apps/common/apps.py b/mayan/apps/common/apps.py index 409006ae08..f2b0850a36 100644 --- a/mayan/apps/common/apps.py +++ b/mayan/apps/common/apps.py @@ -63,6 +63,7 @@ class MayanAppConfig(apps.AppConfig): class CommonApp(MayanAppConfig): app_url = '' name = 'common' + test = True verbose_name = _('Common') def ready(self): diff --git a/mayan/apps/common/management/commands/runtests.py b/mayan/apps/common/management/commands/runtests.py new file mode 100644 index 0000000000..0e90518fe1 --- /dev/null +++ b/mayan/apps/common/management/commands/runtests.py @@ -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) diff --git a/mayan/apps/django_gpg/apps.py b/mayan/apps/django_gpg/apps.py index 408b14b6a5..b972569438 100644 --- a/mayan/apps/django_gpg/apps.py +++ b/mayan/apps/django_gpg/apps.py @@ -18,6 +18,7 @@ from .links import ( class DjangoGPGApp(MayanAppConfig): app_url = 'gpg' name = 'django_gpg' + test = True verbose_name = _('Django GPG') def ready(self): diff --git a/mayan/apps/document_indexing/apps.py b/mayan/apps/document_indexing/apps.py index 37aacad952..a90d51381a 100644 --- a/mayan/apps/document_indexing/apps.py +++ b/mayan/apps/document_indexing/apps.py @@ -41,6 +41,7 @@ class DocumentIndexingApp(MayanAppConfig): app_namespace = 'indexing' app_url = 'indexing' name = 'document_indexing' + test = True verbose_name = _('Document indexing') def ready(self): diff --git a/mayan/apps/document_signatures/apps.py b/mayan/apps/document_signatures/apps.py index c69738c416..592181aaf8 100644 --- a/mayan/apps/document_signatures/apps.py +++ b/mayan/apps/document_signatures/apps.py @@ -59,6 +59,7 @@ class DocumentSignaturesApp(MayanAppConfig): app_namespace = 'signatures' app_url = 'signatures' name = 'document_signatures' + test = True verbose_name = _('Document signatures') def ready(self): diff --git a/mayan/apps/documents/apps.py b/mayan/apps/documents/apps.py index 6b8eba3205..4cfbaf20dd 100644 --- a/mayan/apps/documents/apps.py +++ b/mayan/apps/documents/apps.py @@ -82,6 +82,7 @@ from .widgets import document_thumbnail class DocumentsApp(MayanAppConfig): name = 'documents' + test = True verbose_name = _('Documents') def ready(self): diff --git a/mayan/apps/dynamic_search/apps.py b/mayan/apps/dynamic_search/apps.py index d4ade792f1..4a3fc58685 100644 --- a/mayan/apps/dynamic_search/apps.py +++ b/mayan/apps/dynamic_search/apps.py @@ -12,6 +12,7 @@ class DynamicSearchApp(MayanAppConfig): app_namespace = 'search' app_url = 'search' name = 'dynamic_search' + test = True verbose_name = _('Dynamic search') def ready(self): diff --git a/mayan/apps/folders/apps.py b/mayan/apps/folders/apps.py index b27a6e5cd3..6926e0cded 100644 --- a/mayan/apps/folders/apps.py +++ b/mayan/apps/folders/apps.py @@ -30,6 +30,7 @@ from .permissions import ( class FoldersApp(MayanAppConfig): name = 'folders' + test = True verbose_name = _('Folders') def ready(self): diff --git a/mayan/apps/lock_manager/apps.py b/mayan/apps/lock_manager/apps.py index ad38dc1048..9ad96c81d5 100644 --- a/mayan/apps/lock_manager/apps.py +++ b/mayan/apps/lock_manager/apps.py @@ -6,4 +6,5 @@ from django.utils.translation import ugettext_lazy as _ class LockManagerApp(apps.AppConfig): name = 'lock_manager' + test = True verbose_name = _('Lock manager') diff --git a/mayan/apps/metadata/apps.py b/mayan/apps/metadata/apps.py index 197e735a26..cf521bbd05 100644 --- a/mayan/apps/metadata/apps.py +++ b/mayan/apps/metadata/apps.py @@ -49,6 +49,7 @@ logger = logging.getLogger(__name__) class MetadataApp(MayanAppConfig): name = 'metadata' + test = True verbose_name = _('Metadata') def ready(self): diff --git a/mayan/apps/ocr/apps.py b/mayan/apps/ocr/apps.py index b3282e8af2..f2ec4a04c5 100644 --- a/mayan/apps/ocr/apps.py +++ b/mayan/apps/ocr/apps.py @@ -53,6 +53,7 @@ def document_version_ocr_submit(self): class OCRApp(MayanAppConfig): name = 'ocr' + test = True verbose_name = _('OCR') def ready(self): diff --git a/mayan/apps/permissions/apps.py b/mayan/apps/permissions/apps.py index 943574cc77..d2fa84dd01 100644 --- a/mayan/apps/permissions/apps.py +++ b/mayan/apps/permissions/apps.py @@ -19,6 +19,7 @@ from .links import ( class PermissionsApp(MayanAppConfig): name = 'permissions' + test = True verbose_name = _('Permissions') def ready(self): diff --git a/mayan/apps/sources/apps.py b/mayan/apps/sources/apps.py index 80be4281c7..1e96231734 100644 --- a/mayan/apps/sources/apps.py +++ b/mayan/apps/sources/apps.py @@ -39,6 +39,7 @@ from .widgets import staging_file_thumbnail class SourcesApp(MayanAppConfig): name = 'sources' + test = True verbose_name = _('Sources') def ready(self): diff --git a/mayan/apps/tags/apps.py b/mayan/apps/tags/apps.py index 6830d952ff..c6f230b3a7 100644 --- a/mayan/apps/tags/apps.py +++ b/mayan/apps/tags/apps.py @@ -30,6 +30,7 @@ from .widgets import widget_document_tags, widget_single_tag class TagsApp(MayanAppConfig): name = 'tags' + test = True verbose_name = _('Tags') def ready(self):