blackwinter-autotest-notification 1.8.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/README.txt +2 -6
- data/autotest-notification.gemspec +15 -16
- data/bin/an-install +10 -11
- data/bin/an-uninstall +2 -3
- data/config/hoe.rb +6 -5
- data/config/requirements.rb +3 -3
- data/lib/autotest_notification.rb +66 -11
- data/lib/autotest_notification/buuf.rb +1 -1
- data/lib/autotest_notification/cygwin.rb +22 -2
- data/lib/autotest_notification/doom.rb +3 -1
- data/lib/autotest_notification/linux.rb +4 -4
- data/lib/autotest_notification/mac.rb +2 -2
- data/lib/autotest_notification/version.rb +2 -2
- data/test/autotest_notification/test_linux.rb +6 -6
- data/test/autotest_notification/test_mac.rb +1 -1
- data/test/test_autotest_notification.rb +2 -2
- metadata +50 -21
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
2.2.0
|
2
|
+
* Removed dependency of ZenTest and began using the autotest gem in its place.
|
3
|
+
|
4
|
+
2.1.0
|
5
|
+
* Added support for cucumber (ernestonakamura)
|
6
|
+
|
1
7
|
1.6.0 - Oct 08, 2008
|
2
8
|
* Buuf Edition - display Buuf icons by Mattahan [http://mattahan.deviantart.com] (samflores)
|
3
9
|
* Added --sticky flag to an-install to keep notifications on screen in case of errors/failures or pending specs (samflores)
|
data/README.txt
CHANGED
@@ -10,11 +10,6 @@ This gem set the autotest (ZenTest) to send messages to software as Growl, LibNo
|
|
10
10
|
|
11
11
|
== REQUIREMENTS:
|
12
12
|
|
13
|
-
Independent of operating system you are using, you must install the ZenTest:
|
14
|
-
|
15
|
-
$ gem install ZenTest
|
16
|
-
|
17
|
-
|
18
13
|
* If you're using a Mac:
|
19
14
|
You need to have Growl and growlnotify installed on your machine.
|
20
15
|
|
@@ -70,7 +65,7 @@ Independent of operating system you are using, you must install the ZenTest:
|
|
70
65
|
|
71
66
|
== INSTALL:
|
72
67
|
|
73
|
-
$ sudo gem install
|
68
|
+
$ sudo gem install autotest-notification
|
74
69
|
|
75
70
|
Run it to let the notifier in automatic mode:
|
76
71
|
|
@@ -111,6 +106,7 @@ To turn off the notifier:
|
|
111
106
|
* samflores [http://www.thoughtsoverflow.com]
|
112
107
|
* dcrec1 [http://www.mouseoverstudio.com/blog]
|
113
108
|
* nuxlli [http://www.nuxlli.com.br]
|
109
|
+
* ernestonakamura [http://github.com/ernestonakamura]
|
114
110
|
|
115
111
|
== LICENSE:
|
116
112
|
|
@@ -1,18 +1,17 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
|
-
s.name = %q{autotest-notification}
|
5
|
-
s.version = "
|
4
|
+
s.name = %q{blackwinter-autotest-notification}
|
5
|
+
s.version = "2.2.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Carlos Brando, Rodrigo Urubatan, Alexandre da Silva, Carlos J\303\272nior, Davis Zanetti Cabral, Marcos Tapaj\303\263s, Thiago Pradi, Oz\303\251ias Sant'ana, Samuel Flores, Diego Carrion"]
|
9
|
-
s.date = %q{
|
10
|
-
s.description = %q{This gem set the autotest
|
8
|
+
s.authors = ["Carlos Brando", "Rodrigo Urubatan", "Alexandre da Silva", "Carlos J\303\272nior", "Davis Zanetti Cabral", "Marcos Tapaj\303\263s", "Thiago Pradi", "Oz\303\251ias Sant'ana", "Samuel Flores", "Diego Carrion", "Ernesto Nakamura"]
|
9
|
+
s.date = %q{2010-02-25}
|
10
|
+
s.description = %q{This gem set the autotest to send messages to software as Growl, LibNotify, and Snarl, displaying a window with the results.}
|
11
11
|
s.email = ["autotest-notification@carlosbrando.com"]
|
12
12
|
s.executables = ["an-install", "an-uninstall", "playsound"]
|
13
13
|
s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "website/index.txt"]
|
14
14
|
s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "autotest-notification.gemspec", "bin/an-install", "bin/an-uninstall", "bin/playsound", "config/hoe.rb", "config/requirements.rb", "images/buuf/fail.png", "images/buuf/pass.png", "images/buuf/pending.png", "images/doom/doom_0.png", "images/doom/doom_1.png", "images/doom/doom_2.png", "images/doom/doom_3.png", "images/doom/doom_4.png", "images/doom/doom_5.png", "images/doom/doom_6.png", "images/fail.png", "images/pass.png", "images/pending.png", "lib/autotest_notification.rb", "lib/autotest_notification/buuf.rb", "lib/autotest_notification/cygwin.rb", "lib/autotest_notification/doom.rb", "lib/autotest_notification/linux.rb", "lib/autotest_notification/mac.rb", "lib/autotest_notification/version.rb", "lib/autotest_notification/windows.rb", "script/console", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "sounds/doom/0.wav", "sounds/doom/1.wav", "sounds/doom/2.wav", "sounds/doom/3.wav", "sounds/doom/4.wav", "sounds/doom/5.wav", "sounds/doom/6.wav", "tasks/deployment.rake", "tasks/environment.rake", "tasks/website.rake", "test/autotest_notification/test_cygwin.rb", "test/autotest_notification/test_linux.rb", "test/autotest_notification/test_mac.rb", "test/autotest_notification/test_windows.rb", "test/test_autotest_notification.rb", "test/test_helper.rb", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/screen.css", "website/template.html.erb"]
|
15
|
-
s.has_rdoc = true
|
16
15
|
s.homepage = %q{http://github.com/carlosbrando/autotest-notification/}
|
17
16
|
s.post_install_message = %q{
|
18
17
|
For more information on autotest_notification, see http://github.com/carlosbrando/autotest-notification/
|
@@ -27,23 +26,23 @@ To turn off:
|
|
27
26
|
s.rdoc_options = ["--main", "README.txt"]
|
28
27
|
s.require_paths = ["lib"]
|
29
28
|
s.rubyforge_project = %q{autotest-notification}
|
30
|
-
s.rubygems_version = %q{1.3.
|
31
|
-
s.summary = %q{This gem set the autotest
|
32
|
-
s.test_files = ["test/autotest_notification/
|
29
|
+
s.rubygems_version = %q{1.3.5}
|
30
|
+
s.summary = %q{This gem set the autotest to send messages to software as Growl, LibNotify, and Snarl, displaying a window with the results.}
|
31
|
+
s.test_files = ["test/autotest_notification/test_cygwin.rb", "test/autotest_notification/test_linux.rb", "test/autotest_notification/test_mac.rb", "test/autotest_notification/test_windows.rb", "test/test_autotest_notification.rb", "test/test_helper.rb"]
|
33
32
|
|
34
33
|
if s.respond_to? :specification_version then
|
35
34
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
36
|
-
s.specification_version =
|
35
|
+
s.specification_version = 3
|
37
36
|
|
38
37
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
39
|
-
s.add_runtime_dependency(%q<
|
40
|
-
s.add_development_dependency(%q<hoe>, [">=
|
38
|
+
s.add_runtime_dependency(%q<autotest>, [">= 4.2.9"])
|
39
|
+
s.add_development_dependency(%q<hoe>, [">= 2.3.3"])
|
41
40
|
else
|
42
|
-
s.add_dependency(%q<
|
43
|
-
s.add_dependency(%q<hoe>, [">=
|
41
|
+
s.add_dependency(%q<autotest>, [">= 4.2.9"])
|
42
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
44
43
|
end
|
45
44
|
else
|
46
|
-
s.add_dependency(%q<
|
47
|
-
s.add_dependency(%q<hoe>, [">=
|
45
|
+
s.add_dependency(%q<autotest>, [">= 4.2.9"])
|
46
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
48
47
|
end
|
49
48
|
end
|
data/bin/an-install
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# coding: UTF-8
|
2
3
|
#
|
3
4
|
# Created on 2008-5-11.
|
4
5
|
# Copyright (c) 2008. All rights reserved.
|
@@ -10,8 +11,6 @@ rescue LoadError
|
|
10
11
|
end
|
11
12
|
|
12
13
|
require 'optparse'
|
13
|
-
require 'ftools'
|
14
|
-
require 'fileutils'
|
15
14
|
|
16
15
|
# NOTE: the option -p/--path= is given as an example, and should probably be replaced in your application.
|
17
16
|
|
@@ -41,35 +40,35 @@ BANNER
|
|
41
40
|
|
42
41
|
opts.on("-p", "--path=PATH", String,
|
43
42
|
"The root path for selecting files",
|
44
|
-
"Default: ~") { |OPTIONS[:path]
|
43
|
+
"Default: ~") { |path| OPTIONS[:path] = path}
|
45
44
|
|
46
45
|
opts.on("-s", "--speaking",
|
47
46
|
"If a test failed, the computer will speak.",
|
48
|
-
"For all plataforms.") { |
|
47
|
+
"For all plataforms.") { |speaking| OPTIONS[:speaking] = true }
|
49
48
|
|
50
49
|
opts.on("-d", "--doom",
|
51
50
|
"Special Doom Edition.",
|
52
|
-
"Only for Mac.") { |
|
51
|
+
"Only for Mac/Cygwin.") { |doom| OPTIONS[:doom] = true }
|
53
52
|
|
54
53
|
opts.on("-b", "--buuf",
|
55
54
|
"Special Buuf Images.",
|
56
|
-
"For all platforms") { |OPTIONS[:buuf]
|
55
|
+
"For all platforms") { |buuf| OPTIONS[:buuf] = true }
|
57
56
|
|
58
57
|
opts.on("--pending",
|
59
58
|
"Shows a different image when there are no errors/failures",
|
60
|
-
"but there are pending specs. Only for Mac.") { |
|
59
|
+
"but there are pending specs. Only for Mac.") { |pending| OPTIONS[:pending] = true }
|
61
60
|
|
62
61
|
opts.on("--sticky",
|
63
62
|
"Keep notification on screen in case of errros/failures or pending specs.",
|
64
|
-
"Only for Mac.") { |
|
63
|
+
"Only for Mac.") { |sticky| OPTIONS[:sticky] = true }
|
65
64
|
|
66
65
|
opts.on("--success-sound=PATH", String,
|
67
66
|
"Sound to play on success.",
|
68
|
-
"Only for Mac") { |OPTIONS[:sound][:success]
|
67
|
+
"Only for Mac/Cygwin.") { |success_sound| OPTIONS[:sound][:success] = success_sound }
|
69
68
|
|
70
69
|
opts.on("--failure-sound=PATH", String,
|
71
70
|
"Sound to play on success.",
|
72
|
-
"Only for Mac") { |OPTIONS[:sound][:failure]
|
71
|
+
"Only for Mac/Cygwin.") { |failure_sound| OPTIONS[:sound][:failure] = failure_sound }
|
73
72
|
|
74
73
|
opts.on("-h", "--help",
|
75
74
|
"Show this help message.") { puts opts; exit }
|
@@ -103,4 +102,4 @@ f.write("FAILURE_SOUND = '#{OPTIONS[:sound][:failure]}'\n")
|
|
103
102
|
f.close
|
104
103
|
|
105
104
|
puts "\nAs from now all tests will be notified automatically."
|
106
|
-
puts "" # a blank line
|
105
|
+
puts "" # a blank line
|
data/bin/an-uninstall
CHANGED
@@ -10,7 +10,6 @@ rescue LoadError
|
|
10
10
|
end
|
11
11
|
|
12
12
|
require 'optparse'
|
13
|
-
require 'ftools'
|
14
13
|
|
15
14
|
# NOTE: the option -p/--path= is given as an example, and should probably be replaced in your application.
|
16
15
|
|
@@ -30,7 +29,7 @@ BANNER
|
|
30
29
|
opts.separator ""
|
31
30
|
opts.on("-p", "--path=PATH", String,
|
32
31
|
"The root path for selecting files",
|
33
|
-
"Default: ~") { |OPTIONS[:path]
|
32
|
+
"Default: ~") { |path| OPTIONS[:path] = path}
|
34
33
|
opts.on("-h", "--help",
|
35
34
|
"Show this help message.") { puts opts; exit }
|
36
35
|
opts.parse!(ARGV)
|
@@ -47,4 +46,4 @@ if File.exist?(autotest_file)
|
|
47
46
|
File.delete(autotest_file)
|
48
47
|
puts "\nYou no longer receive notifications of your tests."
|
49
48
|
puts "" # a blank line
|
50
|
-
end
|
49
|
+
end
|
data/config/hoe.rb
CHANGED
@@ -1,16 +1,17 @@
|
|
1
|
+
# coding: UTF-8
|
2
|
+
|
1
3
|
require 'autotest_notification/version'
|
2
4
|
|
3
|
-
AUTHOR = "Carlos Brando, Rodrigo Urubatan, Alexandre da Silva, Carlos Júnior, Davis Zanetti Cabral, Marcos Tapajós, Thiago Pradi, Ozéias Sant'ana, Samuel Flores, Diego Carrion"
|
5
|
+
AUTHOR = "Carlos Brando, Rodrigo Urubatan, Alexandre da Silva, Carlos Júnior, Davis Zanetti Cabral, Marcos Tapajós, Thiago Pradi, Ozéias Sant'ana, Samuel Flores, Diego Carrion, Ernesto Nakamura"
|
4
6
|
EMAIL = "autotest-notification@carlosbrando.com"
|
5
|
-
DESCRIPTION = "This gem set the autotest
|
7
|
+
DESCRIPTION = "This gem set the autotest to send messages to software as Growl, LibNotify, and Snarl, displaying a window with the results."
|
6
8
|
GEM_NAME = 'autotest-notification' # what ppl will type to install your gem
|
7
9
|
RUBYFORGE_PROJECT = nil # 'autotestnotific' # The unix name for your project
|
8
10
|
HOMEPATH = "http://github.com/carlosbrando/autotest-notification/"
|
9
11
|
DOWNLOAD_PATH = "http://github.com/carlosbrando/autotest-notification/tarball/master"
|
10
12
|
|
11
13
|
EXTRA_DEPENDENCIES = [
|
12
|
-
['
|
13
|
-
# ['activesupport', '>= 1.3.1']
|
14
|
+
['autotest', '>= 4.2.9']
|
14
15
|
] # An array of rubygem dependencies [name, version]
|
15
16
|
|
16
17
|
@config_file = "~/.rubyforge/user-config.yml"
|
@@ -72,4 +73,4 @@ CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
|
|
72
73
|
PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
|
73
74
|
$hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
|
74
75
|
$hoe.rsync_args = '-av --delete --ignore-errors'
|
75
|
-
$hoe.spec.post_install_message = File.open(File.dirname(__FILE__) + "/../PostInstall.txt").read rescue ""
|
76
|
+
$hoe.spec.post_install_message = File.open(File.dirname(__FILE__) + "/../PostInstall.txt").read rescue ""
|
data/config/requirements.rb
CHANGED
@@ -2,12 +2,12 @@ require 'fileutils'
|
|
2
2
|
include FileUtils
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
|
-
%w[rake hoe newgem rubigen
|
5
|
+
%w[rake hoe newgem rubigen].each do |req_gem|
|
6
6
|
begin
|
7
|
-
require req_gem
|
7
|
+
require req_gem.downcase
|
8
8
|
rescue LoadError
|
9
9
|
puts "This Rakefile requires the '#{req_gem}' RubyGem."
|
10
|
-
puts "Installation: gem install #{req_gem}
|
10
|
+
puts "Installation: gem install #{req_gem}"
|
11
11
|
exit
|
12
12
|
end
|
13
13
|
end
|
@@ -1,13 +1,26 @@
|
|
1
1
|
$:.unshift(File.dirname(__FILE__))
|
2
|
-
%w{ linux mac windows cygwin doom buuf }.each { |x| require "autotest_notification/#{x}" }
|
3
2
|
|
4
3
|
module AutotestNotification
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
class Config
|
5
|
+
|
6
|
+
class << self
|
7
|
+
attr_reader :images_directory
|
8
|
+
attr_accessor :success_image, :fail_image, :pending_image, :expiration_in_seconds
|
9
|
+
|
10
|
+
def images_directory=(path)
|
11
|
+
@images_directory = File.expand_path(path)
|
12
|
+
|
13
|
+
@success_image = "#{@images_directory}/pass.png"
|
14
|
+
@fail_image = "#{@images_directory}/fail.png"
|
15
|
+
@pending_image = "#{@images_directory}/pending.png"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
self.images_directory = "#{File.dirname(__FILE__)}/../images/"
|
9
20
|
|
10
|
-
|
21
|
+
self.expiration_in_seconds = 3
|
22
|
+
|
23
|
+
end
|
11
24
|
|
12
25
|
Autotest.add_hook :ran_command do |at|
|
13
26
|
result = at.results.is_a?(Array) ? at.results.last : at.results.split("\n").last
|
@@ -29,19 +42,49 @@ module AutotestNotification
|
|
29
42
|
end
|
30
43
|
|
31
44
|
if @failures > 0 || @errors > 0
|
32
|
-
notify "FAIL", msg,
|
45
|
+
notify "FAIL", msg, Config.fail_image, @tests + @examples, @failures + @errors, 2
|
33
46
|
elsif PENDING && @pendings > 0
|
34
|
-
notify "Pending", msg,
|
47
|
+
notify "Pending", msg, Config.pending_image, @tests + @examples, @failures + @errors, 1
|
35
48
|
else
|
36
|
-
notify "Pass", msg,
|
49
|
+
notify "Pass", msg, Config.success_image, @tests + @examples, 0, -2
|
37
50
|
end
|
38
51
|
|
39
52
|
puts "\e[#{code}m#{'=' * 80}\e[0m\n\n"
|
40
53
|
end
|
41
54
|
end
|
42
55
|
|
56
|
+
Autotest.add_hook :ran_features do |at|
|
57
|
+
results = at.results.is_a?(Array) ? at.results : at.results.split("\n")
|
58
|
+
if results
|
59
|
+
# How many scenarios and steps have passed, are pending, have failed or are undefined?
|
60
|
+
for result in results
|
61
|
+
next unless result =~ /^\d+ (scenario|step)/
|
62
|
+
scenario_or_step = $1
|
63
|
+
%w( scenario step passed pending failed undefined ).each do |x|
|
64
|
+
instance_variable_set "@#{scenario_or_step}_#{x}", result[/(\d+) #{x}/, 1].to_i
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
count = @scenario_scenario + @step_step
|
69
|
+
failed = @scenario_failed + @step_failed
|
70
|
+
pending = @scenario_pending + @step_pending + @scenario_undefined + @step_undefined
|
71
|
+
|
72
|
+
code = (failed > 0) ? 31 : (pending > 0) ? 33 : 32
|
73
|
+
msg = feature_message(@scenario_scenario, @scenario_pending + @scenario_undefined, @scenario_failed, @step_step, @step_pending + @step_undefined, @step_failed)
|
74
|
+
|
75
|
+
if @scenario_failed + @step_failed > 0
|
76
|
+
notify "FAIL", msg, Config.fail_image, count, failed, 2
|
77
|
+
elsif PENDING && pending > 0
|
78
|
+
notify "Pending", msg, Config.pending_image, count, failed, 1
|
79
|
+
else
|
80
|
+
notify "Pass", msg, Config.success_image, count, 0, -2
|
81
|
+
end
|
82
|
+
puts "\e[#{code}m#{'=' * 80}\e[0m\n\n"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
43
86
|
class << self
|
44
|
-
def notify(title, msg, img =
|
87
|
+
def notify(title, msg, img = Config.success_image, total = 1, failures = 0, priority = 0)
|
45
88
|
|
46
89
|
img = Doom.image(total, failures) if DOOM_EDITION
|
47
90
|
img = Buuf.image(title.downcase) if BUUF
|
@@ -52,7 +95,7 @@ module AutotestNotification
|
|
52
95
|
when /darwin/
|
53
96
|
Mac.notify(title, msg, img, total, failures, priority)
|
54
97
|
when /cygwin/
|
55
|
-
Cygwin.notify(title, msg, img)
|
98
|
+
Cygwin.notify(title, msg, img, total, failures)
|
56
99
|
when /mswin/
|
57
100
|
Windows.notify(title, msg, img)
|
58
101
|
end
|
@@ -69,5 +112,17 @@ module AutotestNotification
|
|
69
112
|
def rspec_message(examples, failures, pendings)
|
70
113
|
"#{pluralize('example', examples)}, #{pluralize('failure', failures)}, #{pendings} pending"
|
71
114
|
end
|
115
|
+
|
116
|
+
def feature_message(scenarios, pending_scenarios, failed_scenarios, steps, pending_steps, failed_steps)
|
117
|
+
"#{pluralize('scenario', scenarios)}, #{pluralize('failure', failed_scenarios)}, #{pending_scenarios} pending\n" +
|
118
|
+
"#{pluralize('step', steps)}, #{pluralize('failure', failed_steps)}, #{pending_steps} pending"
|
119
|
+
end
|
72
120
|
end
|
73
121
|
end
|
122
|
+
|
123
|
+
%w{ linux mac windows cygwin doom buuf }.each { |x| require "autotest_notification/#{x}" }
|
124
|
+
|
125
|
+
if RUBY_PLATFORM == 'java'
|
126
|
+
require 'java'
|
127
|
+
AutotestNotification.const_set :RUBY_PLATFORM, java.lang.System.getProperty('os.name').downcase
|
128
|
+
end
|
@@ -1,14 +1,34 @@
|
|
1
1
|
module AutotestNotification
|
2
2
|
class Cygwin
|
3
|
+
@last_test_failed = false
|
4
|
+
|
3
5
|
class << self
|
4
|
-
def notify(title, msg, img)
|
6
|
+
def notify(title, msg, img, total = 1, failures = 0)
|
5
7
|
img = get_image_path(img).strip
|
6
|
-
system "sncmd /m '#{title}' '#{msg}' '#{img}' /t #{
|
8
|
+
system "sncmd /m '#{title}' '#{msg}' '#{img}' /t #{Config.expiration_in_seconds}"
|
9
|
+
play(SUCCESS_SOUND) if AutotestNotification.const_defined?("SUCCESS_SOUND") && !SUCCESS_SOUND.empty? && failures == 0
|
10
|
+
play(FAILURE_SOUND) if AutotestNotification.const_defined?("FAILURE_SOUND") && !FAILURE_SOUND.empty? && failures > 0
|
11
|
+
say(total, failures) if DOOM_EDITION
|
7
12
|
end
|
8
13
|
|
9
14
|
def get_image_path(img)
|
10
15
|
`cygpath -m #{img}`
|
11
16
|
end
|
17
|
+
|
18
|
+
def say(total, failures)
|
19
|
+
if failures > 0
|
20
|
+
Doom.play_sound(total, failures)
|
21
|
+
@last_test_failed = true
|
22
|
+
elsif @last_test_failed
|
23
|
+
Doom.play_sound(total, failures)
|
24
|
+
@last_test_failed = false
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def play(sound_file)
|
29
|
+
system "cp #{sound_file} /dev/dsp"
|
30
|
+
end
|
31
|
+
|
12
32
|
end
|
13
33
|
end
|
14
34
|
end
|
@@ -2,7 +2,7 @@ module AutotestNotification
|
|
2
2
|
class Doom
|
3
3
|
class << self
|
4
4
|
def image(total, failures)
|
5
|
-
"#{
|
5
|
+
"#{Config.images_directory}/doom/doom_#{percent(total, failures)}.png"
|
6
6
|
end
|
7
7
|
|
8
8
|
def play_sound(total, failures)
|
@@ -13,6 +13,8 @@ module AutotestNotification
|
|
13
13
|
`#{File.expand_path(File.dirname(__FILE__) + "/../../bin/")}/playsound #{sound_file}`
|
14
14
|
when /linux/
|
15
15
|
system("/usr/bin/mplayer #{sound_file} > /dev/null 2> /dev/null")
|
16
|
+
when /cygwin/
|
17
|
+
system "cp #{sound_file} /dev/dsp"
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
@@ -3,7 +3,7 @@ module AutotestNotification
|
|
3
3
|
class << self
|
4
4
|
|
5
5
|
def notify(title, msg, img, total = 1, failures = 0, priority = 0)
|
6
|
-
|
6
|
+
Config.expiration_in_seconds = 0 if failures > 0 && STICKY
|
7
7
|
|
8
8
|
if has_notify?
|
9
9
|
notify_send(title, msg, img, priority)
|
@@ -30,13 +30,13 @@ module AutotestNotification
|
|
30
30
|
system "which zenity > /dev/null 2>&1"
|
31
31
|
end
|
32
32
|
|
33
|
-
def notify_send(title, msg, img, priority)
|
33
|
+
def notify_send(title, msg, img, priority = 0)
|
34
34
|
urgency = priority > 1 ? 'critical' : priority < 0 ? 'low' : 'normal'
|
35
|
-
system "notify-send -t #{
|
35
|
+
system "notify-send -t #{Config.expiration_in_seconds * 1000} -i #{img} -u #{urgency} '#{title}' '#{msg}'"
|
36
36
|
end
|
37
37
|
|
38
38
|
def kdialog(title, msg, img)
|
39
|
-
system "kdialog --title '#{title}' --passivepopup '<img src=\"#{img}\" align=\"middle\"> #{msg}' #{
|
39
|
+
system "kdialog --title '#{title}' --passivepopup '<img src=\"#{img}\" align=\"middle\"> #{msg}' #{Config.expiration_in_seconds}"
|
40
40
|
end
|
41
41
|
|
42
42
|
def zenity(title, msg, img)
|
@@ -6,8 +6,8 @@ module AutotestNotification
|
|
6
6
|
|
7
7
|
def notify(title, msg, img, total = 1, failures = 0, priority = 0)
|
8
8
|
system "growlnotify -n autotest --image #{img} #{'-s ' if ((failures > 0) and STICKY)}-p #{priority} -m '#{msg}' -t #{title}"
|
9
|
-
play(SUCCESS_SOUND)
|
10
|
-
play(FAILURE_SOUND)
|
9
|
+
play(SUCCESS_SOUND) if AutotestNotification.const_defined?("SUCCESS_SOUND") && !SUCCESS_SOUND.empty? && failures == 0
|
10
|
+
play(FAILURE_SOUND) if AutotestNotification.const_defined?("FAILURE_SOUND") && !FAILURE_SOUND.empty? && failures > 0
|
11
11
|
say(total, failures) if SPEAKING
|
12
12
|
end
|
13
13
|
|
@@ -53,12 +53,12 @@ class TestLinux < Test::Unit::TestCase
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def test_notify_send
|
56
|
-
AutotestNotification::Linux.expects(:system).with('notify-send -t 3000 -i image \'title\' \'msg\'')
|
56
|
+
AutotestNotification::Linux.expects(:system).with('notify-send -t 3000 -i image -u normal \'title\' \'msg\'')
|
57
57
|
AutotestNotification::Linux.notify_send("title", "msg", "image")
|
58
58
|
end
|
59
59
|
|
60
60
|
def test_notify_kdialog
|
61
|
-
AutotestNotification::Linux.expects(:system).with('kdialog --title \'title\' --passivepopup \'msg\' 3')
|
61
|
+
AutotestNotification::Linux.expects(:system).with('kdialog --title \'title\' --passivepopup \'<img src="image" align="middle"> msg\' 3')
|
62
62
|
AutotestNotification::Linux.kdialog("title", "msg", "image")
|
63
63
|
end
|
64
64
|
|
@@ -68,17 +68,17 @@ class TestLinux < Test::Unit::TestCase
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def test_has_zenity?
|
71
|
-
AutotestNotification::Linux.expects(:system).with('which zenity
|
71
|
+
AutotestNotification::Linux.expects(:system).with('which zenity > /dev/null 2>&1')
|
72
72
|
AutotestNotification::Linux.has_zenity?
|
73
73
|
end
|
74
74
|
|
75
75
|
def test_has_notify?
|
76
|
-
AutotestNotification::Linux.expects(:system).with('which notify-send
|
76
|
+
AutotestNotification::Linux.expects(:system).with('which notify-send > /dev/null 2>&1')
|
77
77
|
AutotestNotification::Linux.has_notify?
|
78
78
|
end
|
79
79
|
|
80
80
|
def test_has_kdialog?
|
81
|
-
AutotestNotification::Linux.expects(:system).with('which kdialog
|
81
|
+
AutotestNotification::Linux.expects(:system).with('which kdialog > /dev/null 2>&1')
|
82
82
|
AutotestNotification::Linux.has_kdialog?
|
83
83
|
end
|
84
84
|
|
@@ -88,4 +88,4 @@ class TestLinux < Test::Unit::TestCase
|
|
88
88
|
AutotestNotification::Linux.expects(method).returns("title", "msg", "image", 1)
|
89
89
|
AutotestNotification::Linux.notify("title", "msg", "image", 1, 1)
|
90
90
|
end
|
91
|
-
end
|
91
|
+
end
|
@@ -38,7 +38,7 @@ class TestMac < Test::Unit::TestCase
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_success_sound_is_played_when_specified_and_test_success
|
41
|
-
AutotestNotification.const_set :SUCCESS_SOUND, sound_path
|
41
|
+
AutotestNotification.const_set :SUCCESS_SOUND, sound_path
|
42
42
|
AutotestNotification::Mac.expects(:play).with(sound_path)
|
43
43
|
AutotestNotification::Mac.notify("title", "msg", "image", 1, 0)
|
44
44
|
end
|
@@ -16,7 +16,7 @@ class TestAutotestNotification < Test::Unit::TestCase
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_notify_when_os_is_cygwin
|
19
|
-
AutotestNotification::Cygwin.expects(:notify).with(@title, @msg, @image)
|
19
|
+
AutotestNotification::Cygwin.expects(:notify).with(@title, @msg, @image, @total, @failures)
|
20
20
|
verify_to("cygwin")
|
21
21
|
end
|
22
22
|
|
@@ -26,7 +26,7 @@ class TestAutotestNotification < Test::Unit::TestCase
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_notify_when_os_is_linux
|
29
|
-
AutotestNotification::Linux.expects(:notify).with(@title, @msg, @image, @total, @failures)
|
29
|
+
AutotestNotification::Linux.expects(:notify).with(@title, @msg, @image, @total, @failures, @priority)
|
30
30
|
verify_to("linux")
|
31
31
|
end
|
32
32
|
|
metadata
CHANGED
@@ -1,36 +1,61 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blackwinter-autotest-notification
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 2.2.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
|
-
-
|
12
|
+
- Carlos Brando
|
13
|
+
- Rodrigo Urubatan
|
14
|
+
- Alexandre da Silva
|
15
|
+
- "Carlos J\xC3\xBAnior"
|
16
|
+
- Davis Zanetti Cabral
|
17
|
+
- "Marcos Tapaj\xC3\xB3s"
|
18
|
+
- Thiago Pradi
|
19
|
+
- "Oz\xC3\xA9ias Sant'ana"
|
20
|
+
- Samuel Flores
|
21
|
+
- Diego Carrion
|
22
|
+
- Ernesto Nakamura
|
8
23
|
autorequire:
|
9
24
|
bindir: bin
|
10
25
|
cert_chain: []
|
11
26
|
|
12
|
-
date:
|
27
|
+
date: 2010-02-25 00:00:00 +01:00
|
13
28
|
default_executable:
|
14
29
|
dependencies:
|
15
30
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
|
18
|
-
|
31
|
+
name: autotest
|
32
|
+
prerelease: false
|
33
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
34
|
requirements:
|
20
35
|
- - ">="
|
21
36
|
- !ruby/object:Gem::Version
|
22
|
-
|
23
|
-
|
37
|
+
segments:
|
38
|
+
- 4
|
39
|
+
- 2
|
40
|
+
- 9
|
41
|
+
version: 4.2.9
|
42
|
+
type: :runtime
|
43
|
+
version_requirements: *id001
|
24
44
|
- !ruby/object:Gem::Dependency
|
25
45
|
name: hoe
|
26
|
-
|
27
|
-
|
46
|
+
prerelease: false
|
47
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
48
|
requirements:
|
29
49
|
- - ">="
|
30
50
|
- !ruby/object:Gem::Version
|
31
|
-
|
32
|
-
|
33
|
-
|
51
|
+
segments:
|
52
|
+
- 2
|
53
|
+
- 3
|
54
|
+
- 3
|
55
|
+
version: 2.3.3
|
56
|
+
type: :development
|
57
|
+
version_requirements: *id002
|
58
|
+
description: This gem set the autotest to send messages to software as Growl, LibNotify, and Snarl, displaying a window with the results.
|
34
59
|
email:
|
35
60
|
- autotest-notification@carlosbrando.com
|
36
61
|
executables:
|
@@ -108,6 +133,8 @@ files:
|
|
108
133
|
- website/template.html.erb
|
109
134
|
has_rdoc: true
|
110
135
|
homepage: http://github.com/carlosbrando/autotest-notification/
|
136
|
+
licenses: []
|
137
|
+
|
111
138
|
post_install_message: |+
|
112
139
|
|
113
140
|
For more information on autotest_notification, see http://github.com/carlosbrando/autotest-notification/
|
@@ -127,25 +154,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
154
|
requirements:
|
128
155
|
- - ">="
|
129
156
|
- !ruby/object:Gem::Version
|
157
|
+
segments:
|
158
|
+
- 0
|
130
159
|
version: "0"
|
131
|
-
version:
|
132
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
161
|
requirements:
|
134
162
|
- - ">="
|
135
163
|
- !ruby/object:Gem::Version
|
164
|
+
segments:
|
165
|
+
- 0
|
136
166
|
version: "0"
|
137
|
-
version:
|
138
167
|
requirements: []
|
139
168
|
|
140
169
|
rubyforge_project: autotest-notification
|
141
|
-
rubygems_version: 1.
|
170
|
+
rubygems_version: 1.3.6
|
142
171
|
signing_key:
|
143
|
-
specification_version:
|
144
|
-
summary: This gem set the autotest
|
172
|
+
specification_version: 3
|
173
|
+
summary: This gem set the autotest to send messages to software as Growl, LibNotify, and Snarl, displaying a window with the results.
|
145
174
|
test_files:
|
146
|
-
- test/autotest_notification/test_windows.rb
|
147
175
|
- test/autotest_notification/test_cygwin.rb
|
148
|
-
- test/autotest_notification/test_mac.rb
|
149
176
|
- test/autotest_notification/test_linux.rb
|
150
|
-
- test/
|
177
|
+
- test/autotest_notification/test_mac.rb
|
178
|
+
- test/autotest_notification/test_windows.rb
|
151
179
|
- test/test_autotest_notification.rb
|
180
|
+
- test/test_helper.rb
|