Ignore the virtualenv-created directories under env/
- Legacy-Id: 12178
This commit is contained in:
parent
ef9bf2f175
commit
b2aae7dc35
7
env/.gitignore
vendored
Normal file
7
env/.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
/bin
|
||||
/share
|
||||
/selenium
|
||||
/etc
|
||||
/local
|
||||
/lib
|
||||
/include
|
|
@ -382,7 +382,7 @@ TEST_URL_COVERAGE_EXCLUDE = [
|
|||
r"^\^admin/",
|
||||
]
|
||||
|
||||
# Tese are filename globs
|
||||
# These are filename globs. They are fed directly to the coverage code checker.
|
||||
TEST_CODE_COVERAGE_EXCLUDE = [
|
||||
"*/tests*",
|
||||
"*/admin.py",
|
||||
|
@ -660,8 +660,7 @@ USER_PREFERENCE_DEFAULTS = {
|
|||
}
|
||||
|
||||
TRAC_MASTER_DIR = "/a/www/trac-setup/"
|
||||
TRAC_WIKI_DIR_ROOT = "/a/www/www6s/trac/"
|
||||
TRAC_WIKI_DIR_PATTERN = os.path.join(TRAC_WIKI_DIR_ROOT, "%s")
|
||||
TRAC_WIKI_DIR_PATTERN = "/a/www/www6s/trac/%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"
|
||||
|
|
|
@ -4,16 +4,14 @@ 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
|
||||
|
@ -33,8 +31,9 @@ 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 = 1
|
||||
verbosity = 2
|
||||
|
||||
def note(self, msg):
|
||||
if self.verbosity > 1:
|
||||
|
@ -238,12 +237,13 @@ 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 self.verbosity.isdigit():
|
||||
if isinstance(self.verbosity, (type(""), type(u""))) and self.verbosity.isdigit():
|
||||
self.verbosity = int(self.verbosity)
|
||||
|
||||
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)
|
||||
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))
|
||||
|
||||
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 = settings.TRAC_WIKI_DIR_PATTERN % group.acronym
|
||||
group.trac_dir = self.wiki_dir_pattern % group.acronym
|
||||
group.svn_dir = settings.TRAC_SVN_DIR_PATTERN % group.acronym
|
||||
|
||||
if not os.path.exists(group.svn_dir):
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os.path
|
||||
import types
|
||||
#import json
|
||||
#from pathlib import Path
|
||||
import shutil
|
||||
from StringIO import StringIO
|
||||
from pipe import pipe
|
||||
|
||||
from textwrap import dedent
|
||||
from email.mime.text import MIMEText
|
||||
|
@ -10,6 +11,7 @@ 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
|
||||
|
@ -21,7 +23,9 @@ 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):
|
||||
|
||||
|
@ -186,6 +190,46 @@ 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):
|
||||
|
|
Loading…
Reference in a new issue