;       Licensed to the Apache Software Foundation (ASF) under one
;       or more contributor license agreements.  See the NOTICE file
;       distributed with this work for additional information
;       regarding copyright ownership.  The ASF licenses this file
;       to you under the Apache License, Version 2.0 (the
;       "License"); you may not use this file except in compliance
;       with the License.  You may obtain a copy of the License at
;
;         http://www.apache.org/licenses/LICENSE-2.0
;
;       Unless required by applicable law or agreed to in writing,
;       software distributed under the License is distributed on an
;       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
;       KIND, either express or implied.  See the License for the
;       specific language governing permissions and limitations
;       under the License.
;
; Allura - testing configuration
;
;

;
; This inherits all the settings from development.ini
; and then overrides only settings needed for tests to work.
;

[app:main]
use = config:development.ini#main
override_root=basetest_project_root ; TurboGears will use controllers/basetest_project_root.py as root controller
disable_template_overrides = True

; Use in-memory MongoDB
ming.main.uri = mim:///allura
ming.project.uri = mim:///project-data
ming.task.uri = mim:///task
activitystream.master = mim://

solr.server =
smtp.mock = true

load_test_data = true
cache_test_data = false
site_admin_project = test

; useful primarily for test suites, where we want to see the error right away
monq.raise_errors = true

; Required so that g.production_mode is True, and Google Analytics is included (weird.)
; may also be useful for other reasons during tests (e.g. not intercepting error handling)
debug = false

; if enabled during tests, TimerMiddleware will end up wrapping requests way too many times instead of just once
; not necessary anyway
stats.sample_rate = 0

; specify these without any build_key being included
ew.script_name = /nf/_ew_/
ew.url_base = /nf/_ew_/
static.script_name = /nf/_static_/
static.url_base = /nf/_static_/

; tests check for these values in output
scm.host.ro.git = git://git.localhost$path
scm.host.rw.git = ssh://$username@localhost:8022/scm-repo$path
scm.host.ro.svn = http://svn.localhost$path/
scm.host.rw.svn = svn+ssh://$username@localhost:8022/scm-repo$path/
scm.host.https.svn = https://$username@localhost:8022/scm-repo$path/
scm.host.ro.hg = http://hg.localhost$path
scm.host.rw.hg = ssh://$username@localhost:8022/scm-repo$path

scm.repos.root = /tmp
scm.repos.tarball.enable = true
scm.repos.tarball.root = /tmp/tarball
scm.repos.tarball.url_prefix = file://

support_tool_choices = wiki tickets discussion

; markdown text longer than max length will not be converted to html
; tests expect max length of 40000
markdown_render_max_length = 40000

; TODO: make this and tests match development.ini
bulk_export_filename = {project}.zip

; TODO: update tests and let this be true
solr.use_new_types = false

; TODO: update tests and remove this setting override
auth.require_email_addr = false


;
; Logging goes to a test.log file in current directory
;
[loggers]
keys = root, allura

[handlers]
keys = test

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = test

[logger_allura]
level = DEBUG
handlers =
qualname = allura

[handler_test]
class = FileHandler
args = ('test.log',)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S

[validation]
validate_html5 = false
validate_inlinejs = false
