Skip to content

Commit b2aae7d

Browse files
committed
Ignore the virtualenv-created directories under env/
- Legacy-Id: 12178
1 parent ef9bf2f commit b2aae7d

4 files changed

Lines changed: 63 additions & 13 deletions

File tree

env/.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/bin
2+
/share
3+
/selenium
4+
/etc
5+
/local
6+
/lib
7+
/include

ietf/settings.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ def skip_unreadable_post(record):
382382
r"^\^admin/",
383383
]
384384

385-
# Tese are filename globs
385+
# These are filename globs. They are fed directly to the coverage code checker.
386386
TEST_CODE_COVERAGE_EXCLUDE = [
387387
"*/tests*",
388388
"*/admin.py",
@@ -660,8 +660,7 @@ def skip_unreadable_post(record):
660660
}
661661

662662
TRAC_MASTER_DIR = "/a/www/trac-setup/"
663-
TRAC_WIKI_DIR_ROOT = "/a/www/www6s/trac/"
664-
TRAC_WIKI_DIR_PATTERN = os.path.join(TRAC_WIKI_DIR_ROOT, "%s")
663+
TRAC_WIKI_DIR_PATTERN = "/a/www/www6s/trac/%s"
665664
TRAC_WIKI_URL_PATTERN = "https://trac.ietf.org/trac/%s/wiki"
666665
TRAC_ISSUE_URL_PATTERN = "https://trac.ietf.org/trac/%s/report/1"
667666
TRAC_SVN_DIR_PATTERN = "/a/svn/group/%s"

ietf/utils/management/commands/create_group_wikis.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@
44
import copy
55
import syslog
66
import pkg_resources
7+
from optparse import make_option
78
#from optparse import make_option
89

9-
from trac.admin.api import AdminCommandManager
1010
from trac.core import TracError
1111
from trac.env import Environment
1212
from trac.perm import PermissionSystem
1313
from trac.ticket.model import Component, Milestone, Severity
1414
from trac.util.text import unicode_unquote
15-
from trac.versioncontrol.api import RepositoryManager
16-
from trac.wiki.admin import WikiAdmin
1715
from trac.wiki.model import WikiPage
1816

1917
from django.conf import settings
@@ -33,8 +31,9 @@ class Command(BaseCommand):
3331
help = "Create group wikis for WGs, RGs and Areas which don't have one."
3432

3533
option_list = BaseCommand.option_list + (
34+
make_option('--wiki-dir-pattern', dest='wiki_dir_pattern', help='File containing email (default: stdin)'),
3635
)
37-
#verbosity = 1
36+
verbosity = 2
3837

3938
def note(self, msg):
4039
if self.verbosity > 1:
@@ -238,12 +237,13 @@ def add_custom_group_states(self, group, env):
238237
def handle(self, *filenames, **options):
239238
self.verbosity = options['verbosity']
240239
self.errors = 0
240+
self.wiki_dir_pattern = options.get('wiki_dir_pattern', settings.TRAC_WIKI_DIR_PATTERN)
241241

242-
if self.verbosity.isdigit():
242+
if isinstance(self.verbosity, (type(""), type(u""))) and self.verbosity.isdigit():
243243
self.verbosity = int(self.verbosity)
244244

245-
if not os.path.exists(settings.TRAC_WIKI_DIR_ROOT):
246-
raise CommandError('The Wiki base direcory specified in settings.TRAC_WIKI_DIR_ROOT (%s) does not exist.' % settings.TRAC_WIKI_DIR_ROOT)
245+
if not os.path.exists(os.path.dirname(self.wiki_dir_pattern)):
246+
raise CommandError('The Wiki base direcory specified for the wiki directories (%s) does not exist.' % os.path.dirname(self.wiki_dir_pattern))
247247

248248
groups = Group.objects.filter(
249249
type__slug__in=['wg','rg','area'],
@@ -253,7 +253,7 @@ def handle(self, *filenames, **options):
253253
for group in groups:
254254
try:
255255
self.note("Processing group %s" % group.acronym)
256-
group.trac_dir = settings.TRAC_WIKI_DIR_PATTERN % group.acronym
256+
group.trac_dir = self.wiki_dir_pattern % group.acronym
257257
group.svn_dir = settings.TRAC_SVN_DIR_PATTERN % group.acronym
258258

259259
if not os.path.exists(group.svn_dir):

ietf/utils/tests.py

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
# -*- coding: utf-8 -*-
22
import os.path
33
import types
4-
#import json
5-
#from pathlib import Path
4+
import shutil
5+
from StringIO import StringIO
6+
from pipe import pipe
67

78
from textwrap import dedent
89
from email.mime.text import MIMEText
910
from email.mime.image import MIMEImage
1011
from email.mime.multipart import MIMEMultipart
1112

1213
from django.conf import settings
14+
from django.core.management import call_command
1315
from django.template import Context
1416
from django.template.defaulttags import URLNode
1517
from django.templatetags.static import StaticNode
@@ -21,7 +23,9 @@
2123
import ietf.urls
2224
from ietf.utils.management.commands import pyflakes
2325
from ietf.utils.mail import send_mail_text, send_mail_mime, outbox
26+
from ietf.utils.test_data import make_test_data
2427
from ietf.utils.test_runner import get_template_paths
28+
from ietf.group.models import Group
2529

2630
class PyFlakesTestCase(TestCase):
2731

@@ -186,6 +190,46 @@ def check_that_static_tags_resolve(node, origin, checked):
186190
settings.DEBUG = saved_debug
187191

188192

193+
class TestWikiGlueManagementCommand(TestCase):
194+
195+
def setUp(self):
196+
self.wiki_dir_pattern = os.path.abspath('tmp-wiki-dir-root/%s')
197+
if not os.path.exists(self.wiki_dir_pattern):
198+
os.mkdir(os.path.dirname(self.wiki_dir_pattern))
199+
200+
def tearDown(self):
201+
shutil.rmtree(os.path.dirname(self.wiki_dir_pattern))
202+
203+
def test_wiki_create_output(self):
204+
make_test_data()
205+
groups = Group.objects.filter(
206+
type__slug__in=['wg','rg','area'],
207+
state__slug='active'
208+
).order_by('acronym')
209+
out = StringIO()
210+
call_command('create_group_wikis', stdout=out, verbosity=2, wiki_dir_pattern=self.wiki_dir_pattern)
211+
command_output = out.getvalue()
212+
for group in groups:
213+
self.assertIn("Processing group %s" % group.acronym, command_output)
214+
# Do a bit of verification using trac-admin, too
215+
admin_code, admin_output, admin_error = pipe('trac-admin %s permission list' % (self.wiki_dir_pattern % group.acronym))
216+
self.assertEqual(admin_code, 0)
217+
roles = group.role_set.filter(name_id__in=['chair', 'secr', 'ad'])
218+
for role in roles:
219+
user = role.email.address.lower()
220+
self.assertIn("Granting admin permission for %s" % user, command_output)
221+
self.assertIn(user, admin_output)
222+
docs = group.document_set.filter(stats_slug='active', type_id='draft')
223+
for doc in docs:
224+
name = doc.name
225+
name = name.replace('draft-','')
226+
name = name.replace(group.stream+'-', '')
227+
name = name.replace(group.acronym+'-', '')
228+
self.assertIn("Adding component %s"%name, command_output)
229+
for page in settings.TRAC_WIKI_PAGES_TEMPLATES:
230+
self.assertIn("Adding page %s" % os.path.basename(page), command_output)
231+
self.assertIn("Indexing default repository", command_output)
232+
189233
## One might think that the code below would work, but it doesn't ...
190234

191235
# def list_static_files(path):

0 commit comments

Comments
 (0)