specjour 0.3.0.rc7 → 0.3.0.rc8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.markdown +9 -0
- data/VERSION +1 -1
- data/bin/specjour +1 -0
- data/lib/specjour/cli.rb +13 -4
- data/lib/specjour/db_scrub.rb +7 -1
- data/lib/specjour/dispatcher.rb +5 -5
- data/lib/specjour/manager.rb +3 -1
- data/lib/specjour/rsync_daemon.rb +2 -2
- data/lib/specjour/socket_helper.rb +2 -0
- data/lib/specjour.rb +2 -2
- data/specjour.gemspec +2 -2
- metadata +12 -3
data/History.markdown
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
History
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
## 0.3.0.rc8 / 2010-08-13
|
|
5
|
+
|
|
6
|
+
* [fixed] Custom hooks now load in Ruby 1.9.2
|
|
7
|
+
* [fixed] Specjour prepare correctly recreates the db
|
|
8
|
+
|
|
9
|
+
* [added] Support for loading test DB from SQL file
|
|
10
|
+
(config.active_record.schema_format = :sql)
|
|
11
|
+
* [added] Rsync failures raise Specjour::Error
|
|
12
|
+
|
|
4
13
|
## 0.3.0.rc7 / 2010-08-09
|
|
5
14
|
|
|
6
15
|
* [fixed] Distributing absolute paths to remote machines.
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.0.
|
|
1
|
+
0.3.0.rc8
|
data/bin/specjour
CHANGED
data/lib/specjour/cli.rb
CHANGED
|
@@ -18,11 +18,16 @@ module Specjour
|
|
|
18
18
|
super(original_args)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
+
|
|
21
22
|
default_task :dispatch
|
|
22
23
|
|
|
23
24
|
class_option :log, :aliases => "-l", :type => :boolean, :desc => "Print debug messages to $stderr"
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
|
|
27
|
+
desc "listen", "Wait for incoming tests"
|
|
28
|
+
long_desc <<-D
|
|
29
|
+
Advertise availability to run tests for the current directory.
|
|
30
|
+
D
|
|
26
31
|
worker_option
|
|
27
32
|
method_option :projects, :aliases => "-p", :type => :array, :desc => "Projects supported by this listener"
|
|
28
33
|
def listen
|
|
@@ -32,7 +37,7 @@ module Specjour
|
|
|
32
37
|
Specjour::Manager.new(args).start
|
|
33
38
|
end
|
|
34
39
|
|
|
35
|
-
desc "dispatch [PROJECT_PATH]", "Run
|
|
40
|
+
desc "dispatch [PROJECT_PATH]", "Run tests in the current directory"
|
|
36
41
|
worker_option
|
|
37
42
|
dispatcher_option
|
|
38
43
|
def dispatch(path = Dir.pwd)
|
|
@@ -42,7 +47,11 @@ module Specjour
|
|
|
42
47
|
Specjour::Dispatcher.new(args).start
|
|
43
48
|
end
|
|
44
49
|
|
|
45
|
-
desc "prepare [PROJECT_PATH]", "
|
|
50
|
+
desc "prepare [PROJECT_PATH]", "Prepare all listening workers"
|
|
51
|
+
long_desc <<-D
|
|
52
|
+
Run the Specjour::Configuration.prepare block on all listening workers.
|
|
53
|
+
Defaults to dropping and schema loading the database.
|
|
54
|
+
D
|
|
46
55
|
worker_option
|
|
47
56
|
dispatcher_option
|
|
48
57
|
def prepare(path = Dir.pwd)
|
|
@@ -53,7 +62,7 @@ module Specjour
|
|
|
53
62
|
Specjour::Dispatcher.new(args).start
|
|
54
63
|
end
|
|
55
64
|
|
|
56
|
-
desc "version", "Show the version
|
|
65
|
+
desc "version", "Show the current version"
|
|
57
66
|
def version
|
|
58
67
|
puts Specjour::VERSION
|
|
59
68
|
end
|
data/lib/specjour/db_scrub.rb
CHANGED
|
@@ -8,6 +8,7 @@ module Specjour
|
|
|
8
8
|
else
|
|
9
9
|
load 'tasks/misc.rake'
|
|
10
10
|
load 'tasks/databases.rake'
|
|
11
|
+
Rake::Task["db:structure:dump"].clear
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
extend self
|
|
@@ -20,7 +21,7 @@ module Specjour
|
|
|
20
21
|
connect_to_database
|
|
21
22
|
if pending_migrations?
|
|
22
23
|
puts "Migrating schema for database #{ENV['TEST_ENV_NUMBER']}..."
|
|
23
|
-
|
|
24
|
+
schema_load_task.invoke
|
|
24
25
|
else
|
|
25
26
|
purge_tables
|
|
26
27
|
end
|
|
@@ -29,6 +30,7 @@ module Specjour
|
|
|
29
30
|
protected
|
|
30
31
|
|
|
31
32
|
def connect_to_database
|
|
33
|
+
ActiveRecord::Base.remove_connection
|
|
32
34
|
connection
|
|
33
35
|
rescue # assume the database doesn't exist
|
|
34
36
|
Rake::Task['db:create'].invoke
|
|
@@ -50,6 +52,10 @@ module Specjour
|
|
|
50
52
|
ActiveRecord::Migrator.new(:up, 'db/migrate').pending_migrations.any?
|
|
51
53
|
end
|
|
52
54
|
|
|
55
|
+
def schema_load_task
|
|
56
|
+
Rake::Task[{ :sql => "db:test:clone_structure", :ruby => "db:test:load" }[ActiveRecord::Base.schema_format]]
|
|
57
|
+
end
|
|
58
|
+
|
|
53
59
|
def tables_to_purge
|
|
54
60
|
connection.tables - ['schema_migrations']
|
|
55
61
|
end
|
data/lib/specjour/dispatcher.rb
CHANGED
|
@@ -77,7 +77,7 @@ module Specjour
|
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
def fetch_manager(uri)
|
|
80
|
-
Timeout.timeout(
|
|
80
|
+
Timeout.timeout(1) do
|
|
81
81
|
manager = DRbObject.new_with_uri(uri.to_s)
|
|
82
82
|
if !managers.include?(manager) && manager.available_for?(project_alias)
|
|
83
83
|
add_manager(manager)
|
|
@@ -86,12 +86,12 @@ module Specjour
|
|
|
86
86
|
rescue Timeout::Error
|
|
87
87
|
Specjour.logger.debug "Timeout: couldn't connect to manager at #{uri}"
|
|
88
88
|
rescue DRb::DRbConnError => e
|
|
89
|
-
Specjour.logger.debug "
|
|
89
|
+
Specjour.logger.debug "#{e.message}: #{e.backtrace.join("\n")}"
|
|
90
90
|
retry
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
def fork_local_manager
|
|
94
|
-
puts "No
|
|
94
|
+
puts "No listeners found on this machine, starting one..."
|
|
95
95
|
manager_options = {:worker_size => options[:worker_size], :registered_projects => [project_alias]}
|
|
96
96
|
manager = Manager.start_quietly manager_options
|
|
97
97
|
fetch_manager(manager.drb_uri)
|
|
@@ -107,7 +107,7 @@ module Specjour
|
|
|
107
107
|
|
|
108
108
|
def gather_remote_managers
|
|
109
109
|
browser = DNSSD::Service.new
|
|
110
|
-
Timeout.timeout(
|
|
110
|
+
Timeout.timeout(1) do
|
|
111
111
|
browser.browse '_druby._tcp' do |reply|
|
|
112
112
|
if reply.flags.add?
|
|
113
113
|
resolve_reply(reply)
|
|
@@ -123,7 +123,7 @@ module Specjour
|
|
|
123
123
|
end
|
|
124
124
|
|
|
125
125
|
def no_local_managers?
|
|
126
|
-
|
|
126
|
+
managers.none? {|m| m.hostname == hostname}
|
|
127
127
|
end
|
|
128
128
|
|
|
129
129
|
def printer
|
data/lib/specjour/manager.rb
CHANGED
|
@@ -95,7 +95,9 @@ module Specjour
|
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
def sync
|
|
98
|
-
cmd "rsync -aL --delete --port=8989 #{dispatcher_uri.host}::#{project_name} #{project_path}"
|
|
98
|
+
unless cmd "rsync -aL --delete --port=8989 #{dispatcher_uri.host}::#{project_name} #{project_path}"
|
|
99
|
+
raise Error, "Rsync Failed."
|
|
100
|
+
end
|
|
99
101
|
end
|
|
100
102
|
|
|
101
103
|
protected
|
|
@@ -5,7 +5,7 @@ module Specjour
|
|
|
5
5
|
|
|
6
6
|
# Corresponds to the version of specjour that changed the configuration
|
|
7
7
|
# file.
|
|
8
|
-
CONFIG_VERSION = "0.3.0.
|
|
8
|
+
CONFIG_VERSION = "0.3.0.rc8".freeze
|
|
9
9
|
CONFIG_FILE_NAME = "rsyncd.conf"
|
|
10
10
|
PID_FILE_NAME = "rsyncd.pid"
|
|
11
11
|
|
|
@@ -101,7 +101,7 @@ pid file = ./.specjour/#{PID_FILE_NAME}
|
|
|
101
101
|
|
|
102
102
|
[#{project_name}]
|
|
103
103
|
path = .
|
|
104
|
-
exclude = .git* .specjour/rsync* doc tmp/* log
|
|
104
|
+
exclude = .git* .specjour/rsync* doc tmp/* log
|
|
105
105
|
CONFIG
|
|
106
106
|
end
|
|
107
107
|
end
|
data/lib/specjour.rb
CHANGED
|
@@ -28,8 +28,8 @@ module Specjour
|
|
|
28
28
|
autoload :Cucumber, 'specjour/cucumber'
|
|
29
29
|
autoload :Rspec, 'specjour/rspec'
|
|
30
30
|
|
|
31
|
-
VERSION = "0.3.0.
|
|
32
|
-
HOOKS_PATH = "
|
|
31
|
+
VERSION = "0.3.0.rc8".freeze
|
|
32
|
+
HOOKS_PATH = "./.specjour/hooks.rb"
|
|
33
33
|
|
|
34
34
|
class << self
|
|
35
35
|
attr_accessor :interrupted
|
data/specjour.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{specjour}
|
|
8
|
-
s.version = "0.3.0.
|
|
8
|
+
s.version = "0.3.0.rc8"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Sandro Turriate"]
|
|
12
|
-
s.date = %q{2010-09-
|
|
12
|
+
s.date = %q{2010-09-13}
|
|
13
13
|
s.default_executable = %q{specjour}
|
|
14
14
|
s.description = %q{Distribute your spec suite amongst your LAN via Bonjour.}
|
|
15
15
|
s.email = %q{sandro.turriate@gmail.com}
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: specjour
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 977940561
|
|
4
5
|
prerelease: true
|
|
5
6
|
segments:
|
|
6
7
|
- 0
|
|
7
8
|
- 3
|
|
8
9
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 0.3.0.
|
|
10
|
+
- rc8
|
|
11
|
+
version: 0.3.0.rc8
|
|
11
12
|
platform: ruby
|
|
12
13
|
authors:
|
|
13
14
|
- Sandro Turriate
|
|
@@ -15,7 +16,7 @@ autorequire:
|
|
|
15
16
|
bindir: bin
|
|
16
17
|
cert_chain: []
|
|
17
18
|
|
|
18
|
-
date: 2010-09-
|
|
19
|
+
date: 2010-09-13 00:00:00 -04:00
|
|
19
20
|
default_executable: specjour
|
|
20
21
|
dependencies:
|
|
21
22
|
- !ruby/object:Gem::Dependency
|
|
@@ -26,6 +27,7 @@ dependencies:
|
|
|
26
27
|
requirements:
|
|
27
28
|
- - "="
|
|
28
29
|
- !ruby/object:Gem::Version
|
|
30
|
+
hash: 19
|
|
29
31
|
segments:
|
|
30
32
|
- 1
|
|
31
33
|
- 3
|
|
@@ -41,6 +43,7 @@ dependencies:
|
|
|
41
43
|
requirements:
|
|
42
44
|
- - ">="
|
|
43
45
|
- !ruby/object:Gem::Version
|
|
46
|
+
hash: 39
|
|
44
47
|
segments:
|
|
45
48
|
- 0
|
|
46
49
|
- 14
|
|
@@ -56,6 +59,7 @@ dependencies:
|
|
|
56
59
|
requirements:
|
|
57
60
|
- - "="
|
|
58
61
|
- !ruby/object:Gem::Version
|
|
62
|
+
hash: 27
|
|
59
63
|
segments:
|
|
60
64
|
- 1
|
|
61
65
|
- 3
|
|
@@ -71,6 +75,7 @@ dependencies:
|
|
|
71
75
|
requirements:
|
|
72
76
|
- - ">="
|
|
73
77
|
- !ruby/object:Gem::Version
|
|
78
|
+
hash: 33
|
|
74
79
|
segments:
|
|
75
80
|
- 0
|
|
76
81
|
- 10
|
|
@@ -86,6 +91,7 @@ dependencies:
|
|
|
86
91
|
requirements:
|
|
87
92
|
- - ">="
|
|
88
93
|
- !ruby/object:Gem::Version
|
|
94
|
+
hash: 13
|
|
89
95
|
segments:
|
|
90
96
|
- 0
|
|
91
97
|
- 5
|
|
@@ -101,6 +107,7 @@ dependencies:
|
|
|
101
107
|
requirements:
|
|
102
108
|
- - ">="
|
|
103
109
|
- !ruby/object:Gem::Version
|
|
110
|
+
hash: 7
|
|
104
111
|
segments:
|
|
105
112
|
- 1
|
|
106
113
|
- 4
|
|
@@ -180,6 +187,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
180
187
|
requirements:
|
|
181
188
|
- - ">="
|
|
182
189
|
- !ruby/object:Gem::Version
|
|
190
|
+
hash: 3
|
|
183
191
|
segments:
|
|
184
192
|
- 0
|
|
185
193
|
version: "0"
|
|
@@ -188,6 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
188
196
|
requirements:
|
|
189
197
|
- - ">"
|
|
190
198
|
- !ruby/object:Gem::Version
|
|
199
|
+
hash: 25
|
|
191
200
|
segments:
|
|
192
201
|
- 1
|
|
193
202
|
- 3
|