diff --git a/ietf/settings.py b/ietf/settings.py index 38186e7be..2ff9b2cef 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -382,7 +382,7 @@ TEST_URL_COVERAGE_EXCLUDE = [ r"^\^admin/", ] -# These are filename globs. They are fed directly to the coverage code checker. +# Tese are filename globs TEST_CODE_COVERAGE_EXCLUDE = [ "*/tests*", "*/admin.py", @@ -660,7 +660,8 @@ USER_PREFERENCE_DEFAULTS = { } TRAC_MASTER_DIR = "/a/www/trac-setup/" -TRAC_WIKI_DIR_PATTERN = "/a/www/www6s/trac/%s" +TRAC_WIKI_DIR_ROOT = "/a/www/www6s/trac/" +TRAC_WIKI_DIR_PATTERN = os.path.join(TRAC_WIKI_DIR_ROOT, "%s") TRAC_WIKI_URL_PATTERN = "https://trac.ietf.org/trac/%s/wiki" TRAC_ISSUE_URL_PATTERN = "https://trac.ietf.org/trac/%s/report/1" TRAC_SVN_DIR_PATTERN = "/a/svn/group/%s" diff --git a/ietf/utils/management/commands/create_group_wikis.py b/ietf/utils/management/commands/create_group_wikis.py index 6accb1353..13795298d 100644 --- a/ietf/utils/management/commands/create_group_wikis.py +++ b/ietf/utils/management/commands/create_group_wikis.py @@ -4,14 +4,16 @@ import os import copy import syslog import pkg_resources -from optparse import make_option #from optparse import make_option +from trac.admin.api import AdminCommandManager from trac.core import TracError from trac.env import Environment from trac.perm import PermissionSystem from trac.ticket.model import Component, Milestone, Severity from trac.util.text import unicode_unquote +from trac.versioncontrol.api import RepositoryManager +from trac.wiki.admin import WikiAdmin from trac.wiki.model import WikiPage from django.conf import settings @@ -31,9 +33,8 @@ class Command(BaseCommand): help = "Create group wikis for WGs, RGs and Areas which don't have one." option_list = BaseCommand.option_list + ( - make_option('--wiki-dir-pattern', dest='wiki_dir_pattern', help='File containing email (default: stdin)'), ) - verbosity = 2 + #verbosity = 1 def note(self, msg): if self.verbosity > 1: @@ -237,13 +238,12 @@ class Command(BaseCommand): def handle(self, *filenames, **options): self.verbosity = options['verbosity'] self.errors = 0 - self.wiki_dir_pattern = options.get('wiki_dir_pattern', settings.TRAC_WIKI_DIR_PATTERN) - if isinstance(self.verbosity, (type(""), type(u""))) and self.verbosity.isdigit(): + if self.verbosity.isdigit(): self.verbosity = int(self.verbosity) - if not os.path.exists(os.path.dirname(self.wiki_dir_pattern)): - raise CommandError('The Wiki base direcory specified for the wiki directories (%s) does not exist.' % os.path.dirname(self.wiki_dir_pattern)) + if not os.path.exists(settings.TRAC_WIKI_DIR_ROOT): + raise CommandError('The Wiki base direcory specified in settings.TRAC_WIKI_DIR_ROOT (%s) does not exist.' % settings.TRAC_WIKI_DIR_ROOT) groups = Group.objects.filter( type__slug__in=['wg','rg','area'], @@ -253,7 +253,7 @@ class Command(BaseCommand): for group in groups: try: self.note("Processing group %s" % group.acronym) - group.trac_dir = self.wiki_dir_pattern % group.acronym + group.trac_dir = settings.TRAC_WIKI_DIR_PATTERN % group.acronym group.svn_dir = settings.TRAC_SVN_DIR_PATTERN % group.acronym if not os.path.exists(group.svn_dir): diff --git a/ietf/utils/tests.py b/ietf/utils/tests.py index 76929800a..6bf4d7336 100644 --- a/ietf/utils/tests.py +++ b/ietf/utils/tests.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- import os.path import types -import shutil -from StringIO import StringIO -from pipe import pipe +#import json +#from pathlib import Path from textwrap import dedent from email.mime.text import MIMEText @@ -11,7 +10,6 @@ from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from django.conf import settings -from django.core.management import call_command from django.template import Context from django.template.defaulttags import URLNode from django.templatetags.static import StaticNode @@ -23,9 +21,7 @@ import debug # pyflakes:ignore import ietf.urls from ietf.utils.management.commands import pyflakes from ietf.utils.mail import send_mail_text, send_mail_mime, outbox -from ietf.utils.test_data import make_test_data from ietf.utils.test_runner import get_template_paths -from ietf.group.models import Group class PyFlakesTestCase(TestCase): @@ -190,46 +186,6 @@ class TemplateChecksTestCase(TestCase): settings.DEBUG = saved_debug -class TestWikiGlueManagementCommand(TestCase): - - def setUp(self): - self.wiki_dir_pattern = os.path.abspath('tmp-wiki-dir-root/%s') - if not os.path.exists(self.wiki_dir_pattern): - os.mkdir(os.path.dirname(self.wiki_dir_pattern)) - - def tearDown(self): - shutil.rmtree(os.path.dirname(self.wiki_dir_pattern)) - - def test_wiki_create_output(self): - make_test_data() - groups = Group.objects.filter( - type__slug__in=['wg','rg','area'], - state__slug='active' - ).order_by('acronym') - out = StringIO() - call_command('create_group_wikis', stdout=out, verbosity=2, wiki_dir_pattern=self.wiki_dir_pattern) - command_output = out.getvalue() - for group in groups: - self.assertIn("Processing group %s" % group.acronym, command_output) - # Do a bit of verification using trac-admin, too - admin_code, admin_output, admin_error = pipe('trac-admin %s permission list' % (self.wiki_dir_pattern % group.acronym)) - self.assertEqual(admin_code, 0) - roles = group.role_set.filter(name_id__in=['chair', 'secr', 'ad']) - for role in roles: - user = role.email.address.lower() - self.assertIn("Granting admin permission for %s" % user, command_output) - self.assertIn(user, admin_output) - docs = group.document_set.filter(stats_slug='active', type_id='draft') - for doc in docs: - name = doc.name - name = name.replace('draft-','') - name = name.replace(group.stream+'-', '') - name = name.replace(group.acronym+'-', '') - self.assertIn("Adding component %s"%name, command_output) - for page in settings.TRAC_WIKI_PAGES_TEMPLATES: - self.assertIn("Adding page %s" % os.path.basename(page), command_output) - self.assertIn("Indexing default repository", command_output) - ## One might think that the code below would work, but it doesn't ... # def list_static_files(path):