Ignore the virtualenv-created directories under env/

- Legacy-Id: 12178
This commit is contained in:
Henrik Levkowetz 2016-10-19 14:44:44 +00:00
parent ef9bf2f175
commit b2aae7dc35
4 changed files with 63 additions and 13 deletions

7
env/.gitignore vendored Normal file
View file

@ -0,0 +1,7 @@
/bin
/share
/selenium
/etc
/local
/lib
/include

View file

@ -382,7 +382,7 @@ TEST_URL_COVERAGE_EXCLUDE = [
r"^\^admin/", r"^\^admin/",
] ]
# Tese are filename globs # These are filename globs. They are fed directly to the coverage code checker.
TEST_CODE_COVERAGE_EXCLUDE = [ TEST_CODE_COVERAGE_EXCLUDE = [
"*/tests*", "*/tests*",
"*/admin.py", "*/admin.py",
@ -660,8 +660,7 @@ USER_PREFERENCE_DEFAULTS = {
} }
TRAC_MASTER_DIR = "/a/www/trac-setup/" TRAC_MASTER_DIR = "/a/www/trac-setup/"
TRAC_WIKI_DIR_ROOT = "/a/www/www6s/trac/" TRAC_WIKI_DIR_PATTERN = "/a/www/www6s/trac/%s"
TRAC_WIKI_DIR_PATTERN = os.path.join(TRAC_WIKI_DIR_ROOT, "%s")
TRAC_WIKI_URL_PATTERN = "https://trac.ietf.org/trac/%s/wiki" TRAC_WIKI_URL_PATTERN = "https://trac.ietf.org/trac/%s/wiki"
TRAC_ISSUE_URL_PATTERN = "https://trac.ietf.org/trac/%s/report/1" TRAC_ISSUE_URL_PATTERN = "https://trac.ietf.org/trac/%s/report/1"
TRAC_SVN_DIR_PATTERN = "/a/svn/group/%s" TRAC_SVN_DIR_PATTERN = "/a/svn/group/%s"

View file

@ -4,16 +4,14 @@ import os
import copy import copy
import syslog import syslog
import pkg_resources import pkg_resources
from optparse import make_option
#from optparse import make_option #from optparse import make_option
from trac.admin.api import AdminCommandManager
from trac.core import TracError from trac.core import TracError
from trac.env import Environment from trac.env import Environment
from trac.perm import PermissionSystem from trac.perm import PermissionSystem
from trac.ticket.model import Component, Milestone, Severity from trac.ticket.model import Component, Milestone, Severity
from trac.util.text import unicode_unquote 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 trac.wiki.model import WikiPage
from django.conf import settings 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." help = "Create group wikis for WGs, RGs and Areas which don't have one."
option_list = BaseCommand.option_list + ( 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): def note(self, msg):
if self.verbosity > 1: if self.verbosity > 1:
@ -238,12 +237,13 @@ class Command(BaseCommand):
def handle(self, *filenames, **options): def handle(self, *filenames, **options):
self.verbosity = options['verbosity'] self.verbosity = options['verbosity']
self.errors = 0 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) self.verbosity = int(self.verbosity)
if not os.path.exists(settings.TRAC_WIKI_DIR_ROOT): if not os.path.exists(os.path.dirname(self.wiki_dir_pattern)):
raise CommandError('The Wiki base direcory specified in settings.TRAC_WIKI_DIR_ROOT (%s) does not exist.' % settings.TRAC_WIKI_DIR_ROOT) 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( groups = Group.objects.filter(
type__slug__in=['wg','rg','area'], type__slug__in=['wg','rg','area'],
@ -253,7 +253,7 @@ class Command(BaseCommand):
for group in groups: for group in groups:
try: try:
self.note("Processing group %s" % group.acronym) 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 group.svn_dir = settings.TRAC_SVN_DIR_PATTERN % group.acronym
if not os.path.exists(group.svn_dir): if not os.path.exists(group.svn_dir):

View file

@ -1,8 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import os.path import os.path
import types import types
#import json import shutil
#from pathlib import Path from StringIO import StringIO
from pipe import pipe
from textwrap import dedent from textwrap import dedent
from email.mime.text import MIMEText from email.mime.text import MIMEText
@ -10,6 +11,7 @@ from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart from email.mime.multipart import MIMEMultipart
from django.conf import settings from django.conf import settings
from django.core.management import call_command
from django.template import Context from django.template import Context
from django.template.defaulttags import URLNode from django.template.defaulttags import URLNode
from django.templatetags.static import StaticNode from django.templatetags.static import StaticNode
@ -21,7 +23,9 @@ import debug # pyflakes:ignore
import ietf.urls import ietf.urls
from ietf.utils.management.commands import pyflakes from ietf.utils.management.commands import pyflakes
from ietf.utils.mail import send_mail_text, send_mail_mime, outbox 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.utils.test_runner import get_template_paths
from ietf.group.models import Group
class PyFlakesTestCase(TestCase): class PyFlakesTestCase(TestCase):
@ -186,6 +190,46 @@ class TemplateChecksTestCase(TestCase):
settings.DEBUG = saved_debug 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 ... ## One might think that the code below would work, but it doesn't ...
# def list_static_files(path): # def list_static_files(path):