#       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 - TurboGears 2 testing environment configuration
#
# The %(here)s variable will be replaced with the parent directory of this file
#
[DEFAULT]
debug = false
# make sure, since this extends development.ini
set debug = false
# Uncomment and replace with the address which should receive any error reports
# email_to = you@yourdomain.com
smtp_server = localhost
error_email_from = paste@localhost

[server:main]
use = egg:Paste#http
host = 0.0.0.0
port = 5000

[app:main]
use = config:development.ini#tool_test
db_prefix = test_

base_url = http://localhost/

# Use test MongoDB DB server
# ming.main.master = mongo://127.0.0.1:27018/allura
ming.main.uri = mim:///allura
ming.project.uri = mim:///project-data
ming.task.uri = mim:///task

# ActivityStream
activitystream.master = mim://
activitystream.database = activitystream
activitystream.activity_collection = activities
activitystream.node_collection = nodes
activitystream.timeline_collection = timelines
activitystream.enabled = true

solr.mock = true
amqp.mock = true
smtp.mock = true

# Forgemail server
forgemail.host = 0.0.0.0
forgemail.port = 8825
forgemail.domain = .in.sf.net
forgemail.url = http://localhost:8080

load_test_data = true
cache_test_data = false
site_admin_project = test

# Set the locations of some static resources
#  script_name is the path that is handled by the application
#  url_base is the prefix that references to the static resources should have
ew.script_name = /nf/_ew_/
ew.url_base = /nf/_ew_/
static.script_name = /nf/_static_/
static.url_base = /nf/_static_/

scm.new_refresh = true

scm.host.ro.git = git://git.localhost$path
scm.host.rw.git = ssh://$username@localhost:8022/scm-repo$path
scm.host.https.git = https://$username@localhost:8022/scm-repo$path
scm.host.https_anon.git = https://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.host.https.hg = https://$username@localhost:8022/scm-repo$path
scm.host.https_anon.hg = https://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.https_anon.svn = https://localhost:8022/scm-repo$path/

scm.clone.git = git clone $source_url $dest_path
scm.clone.hg = hg clone $source_url $dest_path
scm.clone.https_anon.svn = svn checkout $source_url $dest_path
scm.clone.ro.svn = svn checkout $source_url $dest_path
scm.clone.svn = svn checkout --username=$username $source_url $dest_path

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

#stats.sample_rate = 0

disable_csrf_protection=1

[app:main_without_authn]
use = main
skip_authentication = True

[app:main_with_amqp]
use = main
# Use test RabbitMQ vhost
amqp.mock = false
amqp.hostname = localhost
amqp.port = 5672
amqp.userid = testuser
amqp.password = testpw
amqp.vhost = vhost_testing


# Add additional test specific configuration options as necessary.
[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
