coupler 0.0.6-java → 0.0.7-java

Sign up to get free protection for your applications and to get access to all the features.
data/.vimrc CHANGED
@@ -4,11 +4,11 @@ function! s:AlternateFile()
4
4
  let tail = fnamemodify(fn, ':t')
5
5
 
6
6
  if match(head, '^lib/coupler/extensions') >= 0
7
- return substitute(head, '^lib/coupler', 'test/integration', '').'/test_'.tail
7
+ return substitute(head, '^lib/coupler/extensions', 'test/functional', '').'/test_'.tail
8
8
  elseif match(head, '^lib') >= 0
9
9
  return substitute(head, '^lib/coupler', 'test/unit', '').'/test_'.tail
10
- elseif match(head, '^test/integration/extensions') >= 0
11
- return substitute(head, '^test/integration', 'lib/coupler', '').'/'.substitute(tail, '^test_', '', '')
10
+ elseif match(head, '^test/functional') >= 0
11
+ return substitute(head, '^test/functional', 'lib/coupler/extensions', '').'/'.substitute(tail, '^test_', '', '')
12
12
  elseif match(head, '^test') >= 0
13
13
  return substitute(head, '^test/unit', 'lib/coupler', '').'/'.substitute(tail, '^test_', '', '')
14
14
  endif
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.6
1
+ 0.0.7
data/coupler.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{coupler}
8
- s.version = "0.0.5"
8
+ s.version = "0.0.7"
9
9
  s.platform = %q{java}
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.authors = ["Jeremy Stephens"]
13
- s.date = %q{2011-07-12}
13
+ s.date = %q{2011-07-19}
14
14
  s.default_executable = %q{coupler}
15
15
  s.description = %q{Coupler is a (JRuby) desktop application designed to link datasets together}
16
16
  s.email = %q{jeremy.f.stephens@vanderbilt.edu}
@@ -53,7 +53,7 @@ Gem::Specification.new do |s|
53
53
  "db/migrate/015_add_run_number_to_results.rb",
54
54
  "db/migrate/016_fix_scenario_run_count.rb",
55
55
  "db/migrate/017_rename_comparison_columns.rb",
56
- "db/migrate/018_fix_scenario_linkage_type.rb",
56
+ "db/migrate/018_stub.rb",
57
57
  "db/migrate/019_add_columns_to_imports.rb",
58
58
  "db/migrate/020_rename_import_columns.rb",
59
59
  "db/migrate/021_add_fields_to_connections.rb",
@@ -165,12 +165,12 @@ Gem::Specification.new do |s|
165
165
  "test/unit/models/test_transformation.rb",
166
166
  "test/unit/models/test_transformer.rb",
167
167
  "test/unit/test_base.rb",
168
+ "test/unit/test_coupler.rb",
168
169
  "test/unit/test_data_uploader.rb",
169
170
  "test/unit/test_database.rb",
170
171
  "test/unit/test_helpers.rb",
171
172
  "test/unit/test_import_buffer.rb",
172
173
  "test/unit/test_logger.rb",
173
- "test/unit/test_models.rb",
174
174
  "test/unit/test_runner.rb",
175
175
  "test/unit/test_scheduler.rb",
176
176
  "uploads/.gitignore",
@@ -0,0 +1,4 @@
1
+ Sequel.migration do
2
+ up { }
3
+ down { }
4
+ end
data/lib/coupler.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'pp'
1
2
  require 'java'
2
3
  require 'jruby/core_ext'
3
4
 
@@ -23,6 +24,64 @@ require 'mongrel'
23
24
  #require 'jdbc/mysql' # Sequel should load this when it needs to.
24
25
  #require 'jdbc/h2' # Sequel should load this when it needs to.
25
26
 
27
+ module Coupler
28
+ def self.environment
29
+ @environment ||= ENV['COUPLER_ENV'] || :production
30
+ end
31
+
32
+ def self.db_path(dbname)
33
+ File.join(data_path, 'db', environment.to_s, dbname)
34
+ end
35
+
36
+ def self.connection_string(dbname)
37
+ "jdbc:h2:#{db_path(dbname)};IGNORECASE=TRUE"
38
+ end
39
+
40
+ def self.upload_path
41
+ @upload_path ||= File.join(data_path, 'uploads', environment.to_s)
42
+ end
43
+
44
+ def self.log_path
45
+ @log_path ||= File.join(data_path, 'log')
46
+ end
47
+
48
+ def self.data_path
49
+ # NOTE: Unfortunately, this code is in two places. Coupler can
50
+ # be run with or without the launcher, and the launcher needs
51
+ # to know about Coupler's data path before it runs Coupler.
52
+ if !defined? @data_path
53
+ dir =
54
+ if ENV['COUPLER_HOME']
55
+ ENV['COUPLER_HOME']
56
+ else
57
+ case Config::CONFIG['host_os']
58
+ when /mswin|windows/i
59
+ # Windows
60
+ File.join(ENV['APPDATA'], "coupler")
61
+ else
62
+ if ENV['HOME']
63
+ File.join(ENV['HOME'], ".coupler")
64
+ else
65
+ raise "Can't figure out where Coupler lives! Try setting the COUPLER_HOME environment variable"
66
+ end
67
+ end
68
+ end
69
+ if !File.exist?(dir)
70
+ begin
71
+ Dir.mkdir(dir)
72
+ rescue SystemCallError
73
+ raise "Can't create Coupler directory (#{dir})! Is the parent directory accessible?"
74
+ end
75
+ end
76
+ if !File.writable?(dir)
77
+ raise "Coupler directory (#{dir}) is not writable!"
78
+ end
79
+ @data_path = File.expand_path(dir)
80
+ end
81
+ @data_path
82
+ end
83
+ end
84
+
26
85
  require File.dirname(__FILE__) + "/coupler/logger"
27
86
  require File.dirname(__FILE__) + "/coupler/database"
28
87
  require File.dirname(__FILE__) + "/coupler/scheduler"
data/lib/coupler/base.rb CHANGED
@@ -2,7 +2,7 @@ module Coupler
2
2
  class Base < Sinatra::Base
3
3
 
4
4
  inst_dir = File.expand_path(File.join(File.dirname(__FILE__), "..", ".."))
5
- set :environment, ENV['COUPLER_ENV'] || :production
5
+ set :environment, Coupler.environment
6
6
  set :root, File.join(inst_dir, "webroot")
7
7
  set :static, true
8
8
  set :erb, :trim => '-'
@@ -12,48 +12,8 @@ module Coupler
12
12
  set :logging, Proc.new { !test? }
13
13
  set :methodoverride, true
14
14
  set :bind, '127.0.0.1'
15
- set :db_path, lambda { |dbname| File.join(data_path, 'db', environment.to_s, dbname) }
16
- set :connection_string, lambda { |dbname| "jdbc:h2:#{db_path(dbname)};IGNORECASE=TRUE" }
17
- set :upload_path, lambda { File.join(data_path, 'uploads', environment.to_s) }
18
- set :log_path, lambda { File.join(data_path, 'log') }
19
- set(:data_path, lambda {
20
- # NOTE: Unfortunately, this code is in two places. Coupler can
21
- # be run with or without the launcher, and the launcher needs
22
- # to know about Coupler's data path before it runs Coupler.
23
- dir =
24
- if ENV['COUPLER_HOME']
25
- ENV['COUPLER_HOME']
26
- else
27
- case Config::CONFIG['host_os']
28
- when /mswin|windows/i
29
- # Windows
30
- File.join(ENV['APPDATA'], "coupler")
31
- else
32
- if ENV['HOME']
33
- File.join(ENV['HOME'], ".coupler")
34
- else
35
- raise "Can't figure out where Coupler lives! Try setting the COUPLER_HOME environment variable"
36
- end
37
- end
38
- end
39
- if !File.exist?(dir)
40
- begin
41
- Dir.mkdir(dir)
42
- rescue SystemCallError
43
- raise "Can't create Coupler directory (#{dir})! Is the parent directory accessible?"
44
- end
45
- end
46
- if !File.writable?(dir)
47
- raise "Coupler directory (#{dir}) is not writable!"
48
- end
49
- File.expand_path(dir)
50
- })
51
15
  enable :sessions
52
16
 
53
- configure do
54
- Models.load_all
55
- end
56
-
57
17
  use Rack::Flash
58
18
  register Extensions::Connections
59
19
  register Extensions::Projects
@@ -1,7 +1,7 @@
1
1
  module Coupler
2
2
  class DataUploader < CarrierWave::Uploader::Base
3
3
  def store_dir
4
- Base.settings.upload_path
4
+ Coupler.upload_path
5
5
  end
6
6
 
7
7
  def cache_dir
@@ -1,31 +1,24 @@
1
1
  module Coupler
2
- class Database < Delegator
3
- include Singleton
4
-
5
- def initialize
6
- @env = ENV['COUPLER_ENV']
7
- connection_string = Base.connection_string('coupler')
8
- @database = Sequel.connect(connection_string, :loggers => [Coupler::Logger.instance], :max_connections => 20)
9
- super(@database)
10
- end
11
-
12
- def __getobj__
13
- @database
14
- end
15
-
2
+ Database = Sequel.connect(Coupler.connection_string('coupler'), :loggers => [Coupler::Logger.instance], :max_connections => 20)
3
+ class << Database
16
4
  def rollback!
17
- version = @database[:schema_info].first[:version]
5
+ version = self[:schema_info].first[:version]
18
6
  migrate!(version - 1)
19
7
  end
20
8
 
21
9
  def migrate!(to = nil, from = nil)
22
10
  dir = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'db', 'migrate'))
23
- args = [@database, dir]
11
+ args = [self, dir]
24
12
  if to
25
13
  args << to
26
14
  args << from if from
27
15
  end
28
16
  Sequel::Migrator.apply(*args)
29
17
  end
18
+
19
+ def instance
20
+ warn("DEPRECATION NOTICE: Database.instance")
21
+ self
22
+ end
30
23
  end
31
24
  end
@@ -3,9 +3,9 @@ module Coupler
3
3
  include Singleton
4
4
 
5
5
  def initialize
6
- log_path = Base.settings.log_path
6
+ log_path = Coupler.log_path
7
7
  Dir.mkdir(log_path) if !File.exist?(log_path)
8
- @logger = ::Logger.new(File.join(log_path, "#{Base.settings.environment}.log"))
8
+ @logger = ::Logger.new(File.join(log_path, "#{Coupler.environment}.log"))
9
9
  super(@logger)
10
10
  end
11
11
 
@@ -1,36 +1,21 @@
1
+ if !defined?(Coupler::Database)
2
+ raise "Database isn't initialized yet!"
3
+ end
4
+
1
5
  module Coupler
2
6
  module Models
3
- # NOTE: using autoload here would undoubtedly be more efficient, but
4
- # I need to make sure the database connection is instantiated before
5
- # loading these classes because of how Sequel::Model works.
6
- #%w{connection project resource field transformer transformation scenario matcher job result comparison}.each do |name|
7
- #autoload(name.capitalize.to_sym, File.dirname(__FILE__) + "/models/#{name}")
8
- #end
9
-
10
- NAMES = [
11
- :Connection, :Project, :Resource, :Field, :Transformer,
12
- :Transformation, :Scenario, :Matcher, :Job, :Result, :Comparison,
13
- :Import
14
- ]
15
-
16
- def self.load_all
17
- Database.instance
18
- NAMES.each do |name|
19
- require File.dirname(__FILE__) + "/models/#{name.to_s.downcase}"
20
- end
21
- end
22
-
23
- def self.const_missing(name)
24
- name = name.to_sym
25
- if NAMES.include?(name)
26
- Database.instance
27
- require File.dirname(__FILE__) + "/models/#{name.to_s.downcase}"
28
- const_get(name)
29
- else
30
- puts "#{name.inspect} wasn't in #{NAMES.inspect}"
31
- super
32
- end
33
- end
7
+ autoload :Comparison, File.dirname(__FILE__) + "/models/comparison"
8
+ autoload :Connection, File.dirname(__FILE__) + "/models/connection"
9
+ autoload :Field, File.dirname(__FILE__) + "/models/field"
10
+ autoload :Import, File.dirname(__FILE__) + "/models/import"
11
+ autoload :Job, File.dirname(__FILE__) + "/models/job"
12
+ autoload :Matcher, File.dirname(__FILE__) + "/models/matcher"
13
+ autoload :Project, File.dirname(__FILE__) + "/models/project"
14
+ autoload :Resource, File.dirname(__FILE__) + "/models/resource"
15
+ autoload :Result, File.dirname(__FILE__) + "/models/result"
16
+ autoload :Scenario, File.dirname(__FILE__) + "/models/scenario"
17
+ autoload :Transformation, File.dirname(__FILE__) + "/models/transformation"
18
+ autoload :Transformer, File.dirname(__FILE__) + "/models/transformer"
34
19
  end
35
20
  end
36
21
 
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Comparison < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Connection < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Field < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Import < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Job < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Matcher < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Project < Sequel::Model
@@ -15,7 +16,7 @@ module Coupler
15
16
 
16
17
  private
17
18
  def local_connection_string
18
- Base.connection_string("project_#{id}")
19
+ Coupler.connection_string("project_#{id}")
19
20
  end
20
21
 
21
22
  def before_validation
@@ -31,7 +32,7 @@ module Coupler
31
32
 
32
33
  def after_destroy
33
34
  super
34
- FileUtils.rm(Dir[Base.db_path("project_#{id}")+".*"], :force => true)
35
+ FileUtils.rm(Dir[Coupler.db_path("project_#{id}")+".*"], :force => true)
35
36
  resources_dataset.each { |r| r.delete_versions_on_destroy = self.delete_versions_on_destroy; r.destroy }
36
37
  scenarios_dataset.each { |s| s.delete_versions_on_destroy = self.delete_versions_on_destroy; s.destroy }
37
38
  end
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Resource < Sequel::Model
@@ -166,7 +167,7 @@ module Coupler
166
167
  end
167
168
 
168
169
  def local_connection_string
169
- Base.connection_string("project_#{project.id}")
170
+ Coupler.connection_string("project_#{project.id}")
170
171
  end
171
172
 
172
173
  def create_fields
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Result < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Scenario < Sequel::Model
@@ -75,7 +76,7 @@ module Coupler
75
76
  private
76
77
 
77
78
  def local_connection_string
78
- Base.connection_string("scenario_#{id}")
79
+ Coupler.connection_string("scenario_#{id}")
79
80
  end
80
81
 
81
82
  def before_validation
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Transformation < Sequel::Model
@@ -1,3 +1,4 @@
1
+ pp caller
1
2
  module Coupler
2
3
  module Models
3
4
  class Transformer < Sequel::Model
@@ -26,7 +26,7 @@ module Coupler
26
26
  say "Starting up Coupler..."
27
27
 
28
28
  say "Migrating database..."
29
- Coupler::Database.instance.migrate!
29
+ Coupler::Database.migrate!
30
30
 
31
31
  say "Starting scheduler..."
32
32
  Coupler::Scheduler.instance.start
data/tasks/db.rake CHANGED
@@ -1,16 +1,16 @@
1
1
  namespace :db do
2
2
  desc "Obliterate the local database"
3
- task :nuke do
3
+ task :nuke => :environment do
4
4
  confirm("This will completely obliterate all of Coupler's databases.")
5
5
 
6
6
  require 'fileutils'
7
- files = Dir.glob(File.join(Coupler::Base.settings.data_path, "db", "*"))
8
- FileUtils.rm_rf(files.reject { |d| d =~ /migrate$/ }, :verbose => true)
7
+ files = Dir.glob(File.join(Coupler.data_path, "db", "**", "*.db"))
8
+ FileUtils.rm_rf(files, :verbose => true)
9
9
  end
10
10
 
11
11
  desc "Purge the database"
12
12
  task :purge => :environment do
13
- FileUtils.rm(Dir[Coupler::Base.settings.db_path('coupler')+".*"])
13
+ FileUtils.rm(Dir[Coupler.db_path('coupler')+".*"])
14
14
  end
15
15
 
16
16
  desc "Run migrations"
data/tasks/test.rake CHANGED
@@ -1,7 +1,17 @@
1
1
  require 'rake/testtask'
2
2
 
3
3
  desc "Run all tests"
4
- task :test => ['test:unit', 'test:integration']
4
+ task :test do
5
+ errors = %w(test:unit test:functional test:integration).collect do |task|
6
+ begin
7
+ Rake::Task[task].invoke
8
+ nil
9
+ rescue => e
10
+ task
11
+ end
12
+ end.compact
13
+ abort "Errors running #{errors * ', '}!" if errors.any?
14
+ end
5
15
 
6
16
  namespace :test do
7
17
  Rake::TestTask.new(:unit) do |test|
@@ -61,7 +61,7 @@ module CouplerFunctionalTests
61
61
  yes.click
62
62
  assert_equal "/projects", page.current_path
63
63
  assert_nil Project[:id => project.id]
64
- assert_nil Database.instance[:projects_versions][:current_id => project.id]
64
+ assert_nil Database[:projects_versions][:current_id => project.id]
65
65
  end
66
66
  end
67
67
  end
data/test/helper.rb CHANGED
@@ -36,7 +36,7 @@ require 'coupler'
36
36
 
37
37
  Coupler::Base.set(:sessions, false) # workaround
38
38
  Coupler::Base.set(:environment, :test)
39
- Coupler::Database.instance.migrate!
39
+ Coupler::Database.migrate!
40
40
 
41
41
  #Capybara.register_driver :selenium_chrome do |app|
42
42
  #Capybara::Driver::Selenium.new(app, :browser => :chrome)
@@ -53,7 +53,7 @@ module Coupler
53
53
 
54
54
  def setup
55
55
  #@_original_connection_count = connection_count
56
- @_database = Coupler::Database.instance
56
+ @_database = Coupler::Database
57
57
  @_database.tables.each do |name|
58
58
  next if name == :schema_info
59
59
  @_database[name].delete
@@ -5,7 +5,7 @@ module CouplerUnitTests
5
5
  class TestCommonModel < Coupler::Test::UnitTest
6
6
  def self.startup
7
7
  super
8
- db = Coupler::Database.instance
8
+ db = Coupler::Database
9
9
  db.create_table!(:foos) do
10
10
  primary_key :id
11
11
  String :bar
@@ -26,7 +26,7 @@ module CouplerUnitTests
26
26
  end
27
27
 
28
28
  def self.teardown
29
- db = Coupler::Database.instance
29
+ db = Coupler::Database
30
30
  db.drop_table(:foos)
31
31
  super
32
32
  end
@@ -59,7 +59,7 @@ module CouplerUnitTests
59
59
  foo = @klass.create(:bar => "bar")
60
60
  assert_equal 1, foo.version
61
61
 
62
- versions = Database.instance[:foos_versions].filter(:current_id => foo.id)
62
+ versions = Database[:foos_versions].filter(:current_id => foo.id)
63
63
  assert_equal 1, versions.count
64
64
 
65
65
  data = versions.first
@@ -74,7 +74,7 @@ module CouplerUnitTests
74
74
  foo.update(:bar => "baz")
75
75
  assert_equal 2, foo.version
76
76
 
77
- versions = Database.instance[:foos_versions].filter(:current_id => foo.id, :version => 2)
77
+ versions = Database[:foos_versions].filter(:current_id => foo.id, :version => 2)
78
78
  assert_equal 1, versions.count
79
79
 
80
80
  data = versions.first
@@ -57,7 +57,7 @@ module CouplerUnitTests
57
57
 
58
58
  test "local_database" do
59
59
  project = Project.create(:name => "foo")
60
- FileUtils.rm(Dir[Base.db_path("project_#{project.id}")+".*"])
60
+ FileUtils.rm(Dir[Coupler.db_path("project_#{project.id}")+".*"])
61
61
 
62
62
  project.local_database do |db|
63
63
  assert_kind_of Sequel::JDBC::Database, db
@@ -77,7 +77,7 @@ module CouplerUnitTests
77
77
  project = Project.create(:name => "foo")
78
78
  project.local_database { |db| db.test_connection } # force creation of database
79
79
  project.destroy
80
- files = Dir[Base.db_path("project_#{project.id}")+".*"]
80
+ files = Dir[Coupler.db_path("project_#{project.id}")+".*"]
81
81
  assert files.empty?, files.inspect
82
82
  end
83
83
 
@@ -91,7 +91,7 @@ module CouplerUnitTests
91
91
  expects(:delete_versions_on_destroy=).with(true)
92
92
  }])
93
93
  project.destroy
94
- assert_equal 0, Database.instance[:projects_versions].filter(:current_id => project.id).count
94
+ assert_equal 0, Database[:projects_versions].filter(:current_id => project.id).count
95
95
  end
96
96
 
97
97
  #def test_local_database_uses_connection_class
@@ -171,7 +171,7 @@ module CouplerUnitTests
171
171
 
172
172
  test "local database" do
173
173
  scenario = new_scenario.save!
174
- Base.expects(:connection_string).with("scenario_#{scenario.id}").returns("foo")
174
+ Coupler.expects(:connection_string).with("scenario_#{scenario.id}").returns("foo")
175
175
  db = mock('scenario db')
176
176
  Sequel.expects(:connect).with('foo', instance_of(Hash)).returns(db)
177
177
  assert_equal db, scenario.local_database
@@ -5,43 +5,5 @@ module CouplerUnitTests
5
5
  def test_subclasses_sinatra_base
6
6
  assert_equal Sinatra::Base, Coupler::Base.superclass
7
7
  end
8
-
9
- def test_db_path
10
- env = Base.settings.environment
11
- begin
12
- Base.set :environment, :production
13
- expected = File.join(Base.settings.data_path, 'db', 'production', 'ponies')
14
- assert_equal expected, Base.db_path("ponies")
15
- ensure
16
- Base.set :environment, env
17
- end
18
- end
19
-
20
- def test_connection_string
21
- env = Base.settings.environment
22
- begin
23
- Base.set :environment, :production
24
- expected = "jdbc:h2:#{File.join(Base.settings.data_path, 'db', 'production', 'ponies')};IGNORECASE=TRUE"
25
- assert_equal expected, Base.connection_string("ponies")
26
- ensure
27
- Base.set :environment, env
28
- end
29
- end
30
-
31
- def test_upload_path
32
- env = Base.settings.environment
33
- begin
34
- Base.set :environment, :production
35
- expected = File.join(Base.settings.data_path, 'uploads', 'production')
36
- assert_equal expected, Base.upload_path
37
- ensure
38
- Base.set :environment, env
39
- end
40
- end
41
-
42
- def test_log_path
43
- expected = File.join(Base.settings.data_path, 'log')
44
- assert_equal expected, Base.log_path
45
- end
46
8
  end
47
9
  end
@@ -0,0 +1,28 @@
1
+ require 'helper'
2
+
3
+ module CouplerUnitTests
4
+ class TestCoupler < Coupler::Test::UnitTest
5
+ def test_db_path
6
+ env = Coupler.environment
7
+ expected = File.join(Coupler.data_path, 'db', env, 'ponies')
8
+ assert_equal expected, Coupler.db_path("ponies")
9
+ end
10
+
11
+ def test_connection_string
12
+ env = Coupler.environment
13
+ expected = "jdbc:h2:#{File.join(Coupler.data_path, 'db', env, 'ponies')};IGNORECASE=TRUE"
14
+ assert_equal expected, Coupler.connection_string("ponies")
15
+ end
16
+
17
+ def test_upload_path
18
+ env = Coupler.environment
19
+ expected = File.join(Coupler.data_path, 'uploads', env)
20
+ assert_equal expected, Coupler.upload_path
21
+ end
22
+
23
+ def test_log_path
24
+ expected = File.join(Coupler.data_path, 'log')
25
+ assert_equal expected, Coupler.log_path
26
+ end
27
+ end
28
+ end
@@ -7,13 +7,13 @@ module CouplerUnitTests
7
7
  end
8
8
 
9
9
  def test_store_dir_same_as_upload_path
10
- Base.expects(:upload_path).returns("/path/to/uploads")
10
+ Coupler.expects(:upload_path).returns("/path/to/uploads")
11
11
  uploader = DataUploader.new
12
12
  assert_equal "/path/to/uploads", uploader.store_dir
13
13
  end
14
14
 
15
15
  def test_cache_dir_uses_upload_path
16
- Base.expects(:upload_path).returns("/path/to/uploads")
16
+ Coupler.expects(:upload_path).returns("/path/to/uploads")
17
17
  uploader = DataUploader.new
18
18
  assert_equal "/path/to/uploads/tmp", uploader.cache_dir
19
19
  end
@@ -4,19 +4,19 @@ module CouplerUnitTests
4
4
  class TestDatabase < Coupler::Test::UnitTest
5
5
  def setup
6
6
  super
7
- @database = Coupler::Database.instance
7
+ @database = Coupler::Database
8
8
  end
9
9
 
10
10
  def test_connection
11
- assert_kind_of Sequel::JDBC::Database, @database.__getobj__
11
+ assert_kind_of Sequel::JDBC::Database, @database
12
12
 
13
- expected = Base.connection_string('coupler')
13
+ expected = Coupler.connection_string('coupler')
14
14
  assert_equal expected, @database.uri
15
15
  end
16
16
 
17
17
  def test_migrate
18
18
  dir = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "db", "migrate"))
19
- Sequel::Migrator.expects(:apply).with(@database.__getobj__, dir)
19
+ Sequel::Migrator.expects(:apply).with(@database, dir)
20
20
  @database.migrate!
21
21
  end
22
22
  end
@@ -6,8 +6,7 @@ module CouplerUnitTests
6
6
  super
7
7
  @scheduler = stub("scheduler", :is_started? => true, :start => nil)
8
8
  Scheduler.stubs(:instance).returns(@scheduler)
9
- @database = stub("database", :migrate! => nil)
10
- Database.stubs(:instance).returns(@database)
9
+ Database.stubs(:migrate!)
11
10
  @app = stub('rack app')
12
11
  @handler = stub('rack handler', :new => @app)
13
12
  Rack::Handler.stubs(:get).returns(@handler)
@@ -51,7 +50,7 @@ module CouplerUnitTests
51
50
  end
52
51
 
53
52
  test "migrates the database" do
54
- @database.expects(:migrate!)
53
+ Database.expects(:migrate!)
55
54
  capture_stdout { Runner.new([]) }
56
55
  end
57
56
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: coupler
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.6
5
+ version: 0.0.7
6
6
  platform: java
7
7
  authors:
8
8
  - Jeremy Stephens
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-12 00:00:00 -05:00
13
+ date: 2011-07-19 00:00:00 -05:00
14
14
  default_executable: coupler
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -287,7 +287,7 @@ files:
287
287
  - db/migrate/015_add_run_number_to_results.rb
288
288
  - db/migrate/016_fix_scenario_run_count.rb
289
289
  - db/migrate/017_rename_comparison_columns.rb
290
- - db/migrate/018_fix_scenario_linkage_type.rb
290
+ - db/migrate/018_stub.rb
291
291
  - db/migrate/019_add_columns_to_imports.rb
292
292
  - db/migrate/020_rename_import_columns.rb
293
293
  - db/migrate/021_add_fields_to_connections.rb
@@ -399,12 +399,12 @@ files:
399
399
  - test/unit/models/test_transformation.rb
400
400
  - test/unit/models/test_transformer.rb
401
401
  - test/unit/test_base.rb
402
+ - test/unit/test_coupler.rb
402
403
  - test/unit/test_data_uploader.rb
403
404
  - test/unit/test_database.rb
404
405
  - test/unit/test_helpers.rb
405
406
  - test/unit/test_import_buffer.rb
406
407
  - test/unit/test_logger.rb
407
- - test/unit/test_models.rb
408
408
  - test/unit/test_runner.rb
409
409
  - test/unit/test_scheduler.rb
410
410
  - uploads/.gitignore
@@ -1,8 +0,0 @@
1
- Sequel.migration do
2
- up do
3
- Coupler::Models::Scenario.each do |scenario|
4
- scenario.set_linkage_type
5
- scenario.save
6
- end
7
- end
8
- end
@@ -1,12 +0,0 @@
1
- require 'helper'
2
-
3
- module CouplerUnitTests
4
- class TestModels < Coupler::Test::UnitTest
5
- def test_lazy_loading_accepts_strings
6
- assert_nothing_raised do
7
- # This happens because Forgery calls const_missing directly with a string
8
- Models.const_missing("Resource")
9
- end
10
- end
11
- end
12
- end