Backfill some tests for app config, refactor base file name so people copy it instead of moving it
This commit is contained in:
parent
f29a605a7c
commit
c6d61c68c0
3 changed files with 166 additions and 8 deletions
127
config/app_base.yml
Normal file
127
config/app_base.yml
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
# Copyright (c) 2011, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
default:
|
||||
|
||||
# Hostname of this host, as seen from the internet.
|
||||
pod_url: "http://localhost:3000"
|
||||
|
||||
# Set this to true in order to close signups. Users will still be
|
||||
# able to invite other people to join.
|
||||
registrations_closed: false
|
||||
|
||||
# Enable extensive logging to log/{development,test,production}.log
|
||||
debug: false
|
||||
|
||||
# Websocket server setup, see script/websocket_server.rb
|
||||
# Enable extensive logging to websocket server.
|
||||
socket_debug : false
|
||||
|
||||
# Websocket host, leave as 0.0.0.0 unless you know what you are doing
|
||||
socket_host: 0.0.0.0
|
||||
|
||||
# File containing pid of running script/websocket_server.rb
|
||||
socket_pidfile: "log/diaspora-wsd.pid"
|
||||
|
||||
# Websocket port, should normally be 8080 or 8081.
|
||||
socket_port: 8080
|
||||
socket_collection_name: 'websocket'
|
||||
|
||||
# Secure websocket confguration (wss://)
|
||||
# requires SSL cert and key
|
||||
socket_secure: false
|
||||
socket_cert_chain_location: '/full/path/to/cert_chain.crt'
|
||||
socket_private_key_location: '/full/path/to/file.key'
|
||||
|
||||
# Diaspora is only tested against this default pubsub server.
|
||||
pubsub_server: 'https://pubsubhubbub.appspot.com/'
|
||||
|
||||
# Setting this to true enables diaspora's "send email" functionality
|
||||
# requiring meaningful smtp_* settings. These are options for RoR's
|
||||
# ActionMailer class.
|
||||
mailer_on: false
|
||||
|
||||
# This chooses which mailer should be used. 'smtp' for a smtp
|
||||
# connection or 'sendmail' to use the sendmail binary.
|
||||
mailer_method: 'smtp'
|
||||
|
||||
# Address/port to smtp server handing outgoing mail.
|
||||
smtp_address: 'smtp.example.com'
|
||||
smtp_port: '587'
|
||||
|
||||
# Domain administered of smtp server.
|
||||
smtp_domain: 'example.com'
|
||||
|
||||
# Sender address in diaspora's outgoing mail.
|
||||
smtp_sender_address: 'no-reply@joindiaspora.com'
|
||||
|
||||
# Authentication required to send mail. Use one of 'one','plain',
|
||||
# 'login' or 'cram-md5'. Use 'none' if server do not support
|
||||
# authentication
|
||||
smtp_authentication: 'plain'
|
||||
|
||||
# Credentails possibly required to log in to SMTP server if
|
||||
# smtp_authentication != 'none'
|
||||
smtp_username: 'smtp_username'
|
||||
smtp_password: 'secret'
|
||||
|
||||
# The path to the sendmail binary.
|
||||
sendmail_location: '/usr/sbin/sendmail'
|
||||
|
||||
#google analytics key, if false, it won't include the javascript
|
||||
google_a_site: false
|
||||
|
||||
#piwik integration if not set, no javascript included
|
||||
piwik_id:
|
||||
# the site url in raw format (e.g. pikwik.examplehost.com)
|
||||
piwik_url:
|
||||
|
||||
|
||||
#cloudfiles username and api-key, used for backups
|
||||
cloudfiles_username: 'example'
|
||||
cloudfiles_api_key: 'abc123'
|
||||
invites_off: false
|
||||
|
||||
#list of users who have admin privilages
|
||||
admins:
|
||||
- 'example_user1dsioaioedfhgoiesajdigtoearogjaidofgjo'
|
||||
|
||||
#s3 config, if set, carrierwave will store your photos on s3
|
||||
#s3_key: 'key'
|
||||
#s3_secret: 'secret'
|
||||
#s3_bucket: 'my_photos'
|
||||
s3_region: 'us-east-1'
|
||||
|
||||
# If you want normal Rails logs, set this to false in the appropriate environment.
|
||||
# It is false by default in development and test.
|
||||
enable_splunk_logging: true
|
||||
|
||||
# Process jobs in process?
|
||||
single_process_mode: true
|
||||
|
||||
# Use this sections to overide settings from default in the specific environments
|
||||
development:
|
||||
enable_splunk_logging: false
|
||||
|
||||
production:
|
||||
single_process_mode: false
|
||||
|
||||
# Do not touch unless you know what you're doing
|
||||
test:
|
||||
pod_url: "http://example.org/"
|
||||
socket_port: 8081
|
||||
enable_splunk_logging: false
|
||||
|
||||
|
||||
# This section is special, you cannot overide settings from here in the above sections
|
||||
script_server:
|
||||
# Port on which thin should listen
|
||||
thin_port: 3000
|
||||
|
||||
# customize thins startup
|
||||
default_thin_args: "-p $THIN_PORT -e $RAILS_ENV"
|
||||
|
||||
# Possibilties are development, production
|
||||
rails_env: "development"
|
||||
|
||||
|
|
@ -5,7 +5,12 @@
|
|||
class AppConfig
|
||||
|
||||
cattr_accessor :config_vars
|
||||
|
||||
cattr_accessor :base_file_path
|
||||
|
||||
def self.base_file_path
|
||||
@@base_file_path || File.join(Rails.root, "config", "app_base.yml")
|
||||
end
|
||||
|
||||
def self.[](key)
|
||||
config_vars[key]
|
||||
end
|
||||
|
|
@ -27,10 +32,10 @@ class AppConfig
|
|||
end
|
||||
|
||||
def self.load_config_for_environment(env)
|
||||
if File.exist? "#{Rails.root}/config/app.yml.example"
|
||||
all_envs = load_config_yaml "#{Rails.root}/config/app.yml.example"
|
||||
if File.exist?(base_file_path)
|
||||
all_envs = load_config_yaml(base_file_path)
|
||||
else
|
||||
$stderr.puts "ERROR: Why have you deleted config/app.yml.example?"
|
||||
$stderr.puts "OH NO! Required file #{base_file_path} doesn't exist! Did you move it?"
|
||||
all_envs = {}
|
||||
end
|
||||
if File.exist? "#{Rails.root}/config/app.yml"
|
||||
|
|
|
|||
|
|
@ -5,14 +5,40 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe AppConfig do
|
||||
describe ".generate_pod_uri" do
|
||||
before do
|
||||
@environment_vars = AppConfig.config_vars
|
||||
AppConfig.config_vars = {}
|
||||
end
|
||||
after do
|
||||
AppConfig.config_vars = @environment_vars
|
||||
end
|
||||
describe ".base_file_path" do
|
||||
it "allows you to set the base file path" do
|
||||
AppConfig.base_file_path = "foo"
|
||||
AppConfig.base_file_path.should == "foo"
|
||||
end
|
||||
it "defaults to config/app_base.yml" do
|
||||
AppConfig.base_file_path = nil
|
||||
AppConfig.base_file_path.should == "#{Rails.root}/config/app_base.yml"
|
||||
end
|
||||
end
|
||||
describe ".load_config_for_environment" do
|
||||
before do
|
||||
@environment_vars = AppConfig.config_vars
|
||||
AppConfig.config_vars = {}
|
||||
@original_stderr = $stderr
|
||||
$stderr = StringIO.new
|
||||
end
|
||||
after do
|
||||
AppConfig.config_vars = @environment_vars
|
||||
$stderr = @original_stderr
|
||||
end
|
||||
it "prints error if base file is missing" do
|
||||
AppConfig.base_file_path = "/no/such/file"
|
||||
|
||||
AppConfig.load_config_for_environment(:test)
|
||||
$stderr.rewind
|
||||
$stderr.string.chomp.should_not be_blank
|
||||
end
|
||||
end
|
||||
describe ".generate_pod_uri" do
|
||||
describe "when pod_url is prefixed with protocol" do
|
||||
it "generates a URI with a host for http" do
|
||||
AppConfig[:pod_url] = "http://oscar.joindiaspora.com"
|
||||
|
|
|
|||
Loading…
Reference in a new issue