Imported Upstream version 0.13.4
Sébastien Delafond
10 years ago
0 | 0 | source 'https://rubygems.org' |
1 | 1 | gemspec |
2 | ||
3 | gem 'redcarpet', '< 3.0.0' | |
4 | gem 'sanitize', '2.0.3' |
0 | == 0.13.4 / 2014-03-05 | |
1 | * Minor Enhancements | |
2 | * Hipchat reporter (#162) | |
3 | * Re-open log files on SIGUSR1 (#103) | |
4 | * Bug fixes | |
5 | * Send query params on webhook reporter (#160) | |
6 | * Don't thow an exception when there are problems reading pid file (#164) | |
7 | ||
0 | 8 | == 0.13.3 / 2013-09-25 |
1 | 9 | * Minor Enhancements |
2 | 10 | * Invoke commands for all watchers |
998 | 998 | (default: false). |
999 | 999 | ``` |
1000 | 1000 | |
1001 | Hipchat | |
1002 | ~~~~~~~~ | |
1003 | ||
1004 | Send a notice to a Hipchat room (http://hipchat.com). | |
1005 | ||
1006 | ```ruby | |
1007 | God::Contacts::Hipchat.defaults do |d| | |
1008 | ... | |
1009 | end | |
1010 | ||
1011 | God.contact(:hipchat) do |c| | |
1012 | ... | |
1013 | end | |
1014 | ``` | |
1015 | ||
1016 | ``` | |
1017 | token - The String token used for authentication. | |
1018 | room - The String room name to which the message should be sent. | |
1019 | ssl - A Boolean determining whether or not to use SSL | |
1020 | (default: false). | |
1021 | from - The String representing who the message should be sent as. | |
1022 | ``` | |
1023 | ||
1001 | 1024 | |
1002 | 1025 | ~~~~~ |
1003 | 1026 |
2 | 2 | s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= |
3 | 3 | |
4 | 4 | s.name = 'god' |
5 | s.version = '0.13.3' | |
6 | s.date = '2013-09-25' | |
5 | s.version = '0.13.4' | |
6 | s.date = '2014-03-05' | |
7 | 7 | |
8 | 8 | s.summary = "Process monitoring framework." |
9 | 9 | s.description = "An easy to configure, easy to extend monitoring framework written in Ruby." |
82 | 82 | lib/god/contacts/airbrake.rb |
83 | 83 | lib/god/contacts/campfire.rb |
84 | 84 | lib/god/contacts/email.rb |
85 | lib/god/contacts/hipchat.rb | |
85 | 86 | lib/god/contacts/jabber.rb |
86 | 87 | lib/god/contacts/prowl.rb |
87 | 88 | lib/god/contacts/scout.rb |
153 | 154 | test/test_event_handler.rb |
154 | 155 | test/test_god.rb |
155 | 156 | test/test_handlers_kqueue_handler.rb |
157 | test/test_hipchat.rb | |
156 | 158 | test/test_jabber.rb |
157 | 159 | test/test_logger.rb |
158 | 160 | test/test_metric.rb |
82 | 82 | def run_daemonized |
83 | 83 | # trap and ignore SIGHUP |
84 | 84 | Signal.trap('HUP') {} |
85 | # trap and log-reopen SIGUSR1 | |
86 | Signal.trap('USR1') { setup_logging } | |
85 | 87 | |
86 | 88 | pid = fork do |
87 | 89 | begin |
0 | # Send a notice to a Hipchat room (http://hipchat.com). | |
1 | # | |
2 | # token - The String token used for authentication. | |
3 | # room - The String room name to which the message should be sent. | |
4 | # ssl - A Boolean determining whether or not to use SSL | |
5 | # (default: false). | |
6 | # from - The String representing who the message should be sent as. | |
7 | ||
8 | require 'net/http' | |
9 | require 'net/https' | |
10 | ||
11 | CONTACT_DEPS[:hipchat] = ['json'] | |
12 | CONTACT_DEPS[:hipchat].each do |d| | |
13 | require d | |
14 | end | |
15 | ||
16 | module Marshmallow | |
17 | class Connection | |
18 | def initialize(options) | |
19 | raise "Required option :token not set." unless options[:token] | |
20 | @options = options | |
21 | end | |
22 | ||
23 | def base_url | |
24 | scheme = @options[:ssl] ? 'https' : 'http' | |
25 | "#{scheme}://api.hipchat.com/v1/rooms" | |
26 | end | |
27 | ||
28 | def find_room_id_by_name(room_name) | |
29 | url = URI.parse("#{base_url}/list?format=json&auth_token=#{@options[:token]}") | |
30 | http = Net::HTTP.new(url.host, url.port) | |
31 | http.use_ssl = true if @options[:ssl] | |
32 | ||
33 | req = Net::HTTP::Get.new(url.request_uri) | |
34 | req.set_content_type('application/json') | |
35 | ||
36 | res = http.request(req) | |
37 | case res | |
38 | when Net::HTTPSuccess | |
39 | rooms = JSON.parse(res.body) | |
40 | room = rooms['rooms'].select { |x| x['name'] == room_name } | |
41 | rooms.empty? ? nil : room.first['room_id'].to_i | |
42 | else | |
43 | raise res.error! | |
44 | end | |
45 | end | |
46 | ||
47 | def speak(room, message) | |
48 | room_id = find_room_id_by_name(room) | |
49 | puts "in spark: room_id = #{room_id}" | |
50 | raise "No such room: #{room}." unless room_id | |
51 | ||
52 | escaped_message = URI.escape(message) | |
53 | ||
54 | url = URI.parse("#{base_url}/message?message_format=text&format=json&auth_token=#{@options[:token]}&from=#{@options[:from]}&room_id=#{room}&message=#{escaped_message}") | |
55 | ||
56 | http = Net::HTTP.new(url.host, url.port) | |
57 | http.use_ssl = true if @options[:ssl] | |
58 | ||
59 | req = Net::HTTP::Post.new(url.request_uri) | |
60 | req.set_content_type('application/json') | |
61 | res = http.request(req) | |
62 | case res | |
63 | when Net::HTTPSuccess | |
64 | true | |
65 | else | |
66 | raise res.error! | |
67 | end | |
68 | end | |
69 | end | |
70 | end | |
71 | ||
72 | module God | |
73 | module Contacts | |
74 | ||
75 | class Hipchat < Contact | |
76 | class << self | |
77 | attr_accessor :token, :room, :ssl, :from | |
78 | attr_accessor :format | |
79 | end | |
80 | ||
81 | self.ssl = false | |
82 | ||
83 | self.format = lambda do |message, time, priority, category, host| | |
84 | "[#{time.strftime('%H:%M:%S')}] #{host} - #{message}" | |
85 | end | |
86 | ||
87 | attr_accessor :token, :room, :ssl, :from | |
88 | ||
89 | def valid? | |
90 | valid = true | |
91 | valid &= complain("Attribute 'token' must be specified", self) unless arg(:token) | |
92 | valid &= complain("Attribute 'room' must be specified", self) unless arg(:room) | |
93 | valid &= complain("Attribute 'from' must be specified", self) unless arg(:from) | |
94 | valid | |
95 | end | |
96 | ||
97 | def notify(message, time, priority, category, host) | |
98 | body = Hipchat.format.call(message, time, priority, category, host) | |
99 | ||
100 | conn = Marshmallow::Connection.new( | |
101 | :token => arg(:token), | |
102 | :ssl => arg(:ssl), | |
103 | :from => arg(:from) | |
104 | ) | |
105 | ||
106 | conn.speak(arg(:room), body) | |
107 | ||
108 | self.info = "notified hipchat: #{arg(:room)}" | |
109 | rescue Object => e | |
110 | applog(nil, :info, "failed to notify hipchat: #{e.message}") | |
111 | applog(nil, :debug, e.backtrace.join("\n")) | |
112 | end | |
113 | end | |
114 | ||
115 | end | |
116 | end |
46 | 46 | |
47 | 47 | case arg(:format) |
48 | 48 | when :form |
49 | req = Net::HTTP::Post.new(uri.path) | |
49 | req = Net::HTTP::Post.new(uri.request_uri) | |
50 | 50 | req.set_form_data(data) |
51 | 51 | when :json |
52 | req = Net::HTTP::Post.new(uri.path) | |
52 | req = Net::HTTP::Post.new(uri.request_uri) | |
53 | 53 | req.body = data.to_json |
54 | 54 | end |
55 | 55 | |
62 | 62 | self.info = "failed to send webhook to #{arg(:url)}: #{res.error!}" |
63 | 63 | end |
64 | 64 | rescue Object => e |
65 | applog(nil, :info, "failed to send email to #{arg(:url)}: #{e.message}") | |
65 | applog(nil, :info, "failed to send webhook to #{arg(:url)}: #{e.message}") | |
66 | 66 | applog(nil, :debug, e.backtrace.join("\n")) |
67 | 67 | end |
68 | 68 |
209 | 209 | applog(self, :info, "#{self.name} sent SIG#{@stop_signal}") |
210 | 210 | |
211 | 211 | # Poll to see if it's dead |
212 | pid_not_found = false | |
212 | 213 | @stop_timeout.times do |
213 | begin | |
214 | ::Process.kill(0, pid) | |
215 | rescue Errno::ESRCH | |
216 | # It died. Good. | |
217 | applog(self, :info, "#{self.name} process stopped") | |
218 | return | |
214 | if pid | |
215 | begin | |
216 | ::Process.kill(0, pid) | |
217 | rescue Errno::ESRCH | |
218 | # It died. Good. | |
219 | applog(self, :info, "#{self.name} process stopped") | |
220 | return | |
221 | end | |
222 | else | |
223 | applog(self, :warn, "#{self.name} pid not found in #{self.pid_file}") unless pid_not_found | |
224 | pid_not_found = true | |
219 | 225 | end |
220 | 226 | |
221 | 227 | sleep 1 |
84 | 84 | |
85 | 85 | require 'god/contact' |
86 | 86 | load_contact(:campfire) |
87 | load_contact(:hipchat) | |
87 | 88 | load_contact(:email) |
88 | 89 | load_contact(:jabber) |
89 | 90 | load_contact(:prowl) |
156 | 157 | |
157 | 158 | module God |
158 | 159 | # The String version number for this package. |
159 | VERSION = '0.13.3' | |
160 | VERSION = '0.13.4' | |
160 | 161 | |
161 | 162 | # The Integer number of lines of backlog to keep for the logger. |
162 | 163 | LOG_BUFFER_SIZE_DEFAULT = 100 |
0 | 0 | --- !ruby/object:Gem::Specification |
1 | 1 | name: god |
2 | 2 | version: !ruby/object:Gem::Version |
3 | prerelease: false | |
3 | hash: 35 | |
4 | prerelease: | |
4 | 5 | segments: |
5 | 6 | - 0 |
6 | 7 | - 13 |
7 | - 3 | |
8 | version: 0.13.3 | |
8 | - 4 | |
9 | version: 0.13.4 | |
9 | 10 | platform: ruby |
10 | 11 | authors: |
11 | 12 | - Tom Preston-Werner |
15 | 16 | bindir: bin |
16 | 17 | cert_chain: [] |
17 | 18 | |
18 | date: 2013-09-25 00:00:00 -07:00 | |
19 | date: 2014-03-05 00:00:00 -08:00 | |
19 | 20 | default_executable: |
20 | 21 | dependencies: |
21 | 22 | - !ruby/object:Gem::Dependency |
22 | type: :development | |
23 | 23 | version_requirements: &id001 !ruby/object:Gem::Requirement |
24 | requirements: | |
25 | - - ~> | |
26 | - !ruby/object:Gem::Version | |
24 | none: false | |
25 | requirements: | |
26 | - - ~> | |
27 | - !ruby/object:Gem::Version | |
28 | hash: 3 | |
27 | 29 | segments: |
28 | 30 | - 1 |
29 | 31 | - 6 |
30 | 32 | version: "1.6" |
33 | prerelease: false | |
34 | requirement: *id001 | |
31 | 35 | name: json |
32 | requirement: *id001 | |
33 | prerelease: false | |
34 | - !ruby/object:Gem::Dependency | |
35 | type: :development | |
36 | type: :development | |
37 | - !ruby/object:Gem::Dependency | |
36 | 38 | version_requirements: &id002 !ruby/object:Gem::Requirement |
39 | none: false | |
37 | 40 | requirements: |
38 | 41 | - - ">=" |
39 | 42 | - !ruby/object:Gem::Version |
43 | hash: 3 | |
40 | 44 | segments: |
41 | 45 | - 0 |
42 | 46 | version: "0" |
47 | prerelease: false | |
48 | requirement: *id002 | |
43 | 49 | name: rake |
44 | requirement: *id002 | |
45 | prerelease: false | |
46 | - !ruby/object:Gem::Dependency | |
47 | type: :development | |
50 | type: :development | |
51 | - !ruby/object:Gem::Dependency | |
48 | 52 | version_requirements: &id003 !ruby/object:Gem::Requirement |
49 | requirements: | |
50 | - - ~> | |
51 | - !ruby/object:Gem::Version | |
53 | none: false | |
54 | requirements: | |
55 | - - ~> | |
56 | - !ruby/object:Gem::Version | |
57 | hash: 19 | |
52 | 58 | segments: |
53 | 59 | - 3 |
54 | 60 | - 10 |
55 | 61 | version: "3.10" |
62 | prerelease: false | |
63 | requirement: *id003 | |
56 | 64 | name: rdoc |
57 | requirement: *id003 | |
58 | prerelease: false | |
59 | - !ruby/object:Gem::Dependency | |
60 | type: :development | |
65 | type: :development | |
66 | - !ruby/object:Gem::Dependency | |
61 | 67 | version_requirements: &id004 !ruby/object:Gem::Requirement |
62 | requirements: | |
63 | - - ~> | |
64 | - !ruby/object:Gem::Version | |
68 | none: false | |
69 | requirements: | |
70 | - - ~> | |
71 | - !ruby/object:Gem::Version | |
72 | hash: 27 | |
65 | 73 | segments: |
66 | 74 | - 4 |
67 | 75 | - 0 |
68 | 76 | version: "4.0" |
77 | prerelease: false | |
78 | requirement: *id004 | |
69 | 79 | name: twitter |
70 | requirement: *id004 | |
71 | prerelease: false | |
72 | - !ruby/object:Gem::Dependency | |
73 | type: :development | |
80 | type: :development | |
81 | - !ruby/object:Gem::Dependency | |
74 | 82 | version_requirements: &id005 !ruby/object:Gem::Requirement |
75 | requirements: | |
76 | - - ~> | |
77 | - !ruby/object:Gem::Version | |
83 | none: false | |
84 | requirements: | |
85 | - - ~> | |
86 | - !ruby/object:Gem::Version | |
87 | hash: 13 | |
78 | 88 | segments: |
79 | 89 | - 0 |
80 | 90 | - 3 |
81 | 91 | version: "0.3" |
92 | prerelease: false | |
93 | requirement: *id005 | |
82 | 94 | name: prowly |
83 | requirement: *id005 | |
84 | prerelease: false | |
85 | - !ruby/object:Gem::Dependency | |
86 | type: :development | |
95 | type: :development | |
96 | - !ruby/object:Gem::Dependency | |
87 | 97 | version_requirements: &id006 !ruby/object:Gem::Requirement |
88 | requirements: | |
89 | - - ~> | |
90 | - !ruby/object:Gem::Version | |
98 | none: false | |
99 | requirements: | |
100 | - - ~> | |
101 | - !ruby/object:Gem::Version | |
102 | hash: 1 | |
91 | 103 | segments: |
92 | 104 | - 0 |
93 | 105 | - 5 |
94 | 106 | version: "0.5" |
107 | prerelease: false | |
108 | requirement: *id006 | |
95 | 109 | name: xmpp4r |
96 | requirement: *id006 | |
97 | prerelease: false | |
98 | - !ruby/object:Gem::Dependency | |
99 | type: :development | |
110 | type: :development | |
111 | - !ruby/object:Gem::Dependency | |
100 | 112 | version_requirements: &id007 !ruby/object:Gem::Requirement |
101 | requirements: | |
102 | - - ~> | |
103 | - !ruby/object:Gem::Version | |
113 | none: false | |
114 | requirements: | |
115 | - - ~> | |
116 | - !ruby/object:Gem::Version | |
117 | hash: 25 | |
104 | 118 | segments: |
105 | 119 | - 0 |
106 | 120 | - 0 |
107 | 121 | - 3 |
108 | 122 | version: 0.0.3 |
123 | prerelease: false | |
124 | requirement: *id007 | |
109 | 125 | name: dike |
110 | requirement: *id007 | |
111 | prerelease: false | |
112 | - !ruby/object:Gem::Dependency | |
113 | type: :development | |
126 | type: :development | |
127 | - !ruby/object:Gem::Dependency | |
114 | 128 | version_requirements: &id008 !ruby/object:Gem::Requirement |
115 | requirements: | |
116 | - - ~> | |
117 | - !ruby/object:Gem::Version | |
129 | none: false | |
130 | requirements: | |
131 | - - ~> | |
132 | - !ruby/object:Gem::Version | |
133 | hash: 25 | |
118 | 134 | segments: |
119 | 135 | - 0 |
120 | 136 | - 9 |
121 | 137 | version: "0.9" |
138 | prerelease: false | |
139 | requirement: *id008 | |
122 | 140 | name: rcov |
123 | requirement: *id008 | |
124 | prerelease: false | |
125 | - !ruby/object:Gem::Dependency | |
126 | type: :development | |
141 | type: :development | |
142 | - !ruby/object:Gem::Dependency | |
127 | 143 | version_requirements: &id009 !ruby/object:Gem::Requirement |
128 | requirements: | |
129 | - - ~> | |
130 | - !ruby/object:Gem::Version | |
144 | none: false | |
145 | requirements: | |
146 | - - ~> | |
147 | - !ruby/object:Gem::Version | |
148 | hash: 13 | |
131 | 149 | segments: |
132 | 150 | - 1 |
133 | 151 | - 1 |
134 | 152 | version: "1.1" |
153 | prerelease: false | |
154 | requirement: *id009 | |
135 | 155 | name: daemons |
136 | requirement: *id009 | |
137 | prerelease: false | |
138 | - !ruby/object:Gem::Dependency | |
139 | type: :development | |
156 | type: :development | |
157 | - !ruby/object:Gem::Dependency | |
140 | 158 | version_requirements: &id010 !ruby/object:Gem::Requirement |
141 | requirements: | |
142 | - - ~> | |
143 | - !ruby/object:Gem::Version | |
159 | none: false | |
160 | requirements: | |
161 | - - ~> | |
162 | - !ruby/object:Gem::Version | |
163 | hash: 31 | |
144 | 164 | segments: |
145 | 165 | - 0 |
146 | 166 | - 10 |
147 | 167 | version: "0.10" |
168 | prerelease: false | |
169 | requirement: *id010 | |
148 | 170 | name: mocha |
149 | requirement: *id010 | |
150 | prerelease: false | |
151 | - !ruby/object:Gem::Dependency | |
152 | type: :development | |
171 | type: :development | |
172 | - !ruby/object:Gem::Dependency | |
153 | 173 | version_requirements: &id011 !ruby/object:Gem::Requirement |
154 | requirements: | |
155 | - - ~> | |
156 | - !ruby/object:Gem::Version | |
174 | none: false | |
175 | requirements: | |
176 | - - ~> | |
177 | - !ruby/object:Gem::Version | |
178 | hash: 25 | |
157 | 179 | segments: |
158 | 180 | - 1 |
159 | 181 | - 3 |
160 | 182 | - 1 |
161 | 183 | version: 1.3.1 |
184 | prerelease: false | |
185 | requirement: *id011 | |
162 | 186 | name: gollum |
163 | requirement: *id011 | |
164 | prerelease: false | |
165 | - !ruby/object:Gem::Dependency | |
166 | type: :development | |
187 | type: :development | |
188 | - !ruby/object:Gem::Dependency | |
167 | 189 | version_requirements: &id012 !ruby/object:Gem::Requirement |
168 | requirements: | |
169 | - - ~> | |
170 | - !ruby/object:Gem::Version | |
190 | none: false | |
191 | requirements: | |
192 | - - ~> | |
193 | - !ruby/object:Gem::Version | |
194 | hash: 13 | |
171 | 195 | segments: |
172 | 196 | - 3 |
173 | 197 | - 1 |
174 | 198 | - 7 |
175 | 199 | version: 3.1.7 |
200 | prerelease: false | |
201 | requirement: *id012 | |
176 | 202 | name: airbrake |
177 | requirement: *id012 | |
178 | prerelease: false | |
179 | - !ruby/object:Gem::Dependency | |
180 | type: :development | |
203 | type: :development | |
204 | - !ruby/object:Gem::Dependency | |
181 | 205 | version_requirements: &id013 !ruby/object:Gem::Requirement |
182 | requirements: | |
183 | - - ~> | |
184 | - !ruby/object:Gem::Version | |
206 | none: false | |
207 | requirements: | |
208 | - - ~> | |
209 | - !ruby/object:Gem::Version | |
210 | hash: 3 | |
185 | 211 | segments: |
186 | 212 | - 1 |
187 | 213 | - 5 |
188 | 214 | - 0 |
189 | 215 | version: 1.5.0 |
216 | prerelease: false | |
217 | requirement: *id013 | |
190 | 218 | name: nokogiri |
191 | requirement: *id013 | |
192 | prerelease: false | |
193 | - !ruby/object:Gem::Dependency | |
194 | type: :development | |
219 | type: :development | |
220 | - !ruby/object:Gem::Dependency | |
195 | 221 | version_requirements: &id014 !ruby/object:Gem::Requirement |
222 | none: false | |
196 | 223 | requirements: |
197 | 224 | - - ">=" |
198 | 225 | - !ruby/object:Gem::Version |
226 | hash: 23 | |
199 | 227 | segments: |
200 | 228 | - 2 |
201 | 229 | - 3 |
203 | 231 | version: 2.3.10 |
204 | 232 | - - < |
205 | 233 | - !ruby/object:Gem::Version |
234 | hash: 63 | |
206 | 235 | segments: |
207 | 236 | - 4 |
208 | 237 | - 0 |
209 | 238 | - 0 |
210 | 239 | version: 4.0.0 |
240 | prerelease: false | |
241 | requirement: *id014 | |
211 | 242 | name: activesupport |
212 | requirement: *id014 | |
213 | prerelease: false | |
243 | type: :development | |
214 | 244 | description: An easy to configure, easy to extend monitoring framework written in Ruby. |
215 | 245 | email: god-rb@googlegroups.com |
216 | 246 | executables: |
264 | 294 | - lib/god/contacts/airbrake.rb |
265 | 295 | - lib/god/contacts/campfire.rb |
266 | 296 | - lib/god/contacts/email.rb |
297 | - lib/god/contacts/hipchat.rb | |
267 | 298 | - lib/god/contacts/jabber.rb |
268 | 299 | - lib/god/contacts/prowl.rb |
269 | 300 | - lib/god/contacts/scout.rb |
335 | 366 | - test/test_event_handler.rb |
336 | 367 | - test/test_god.rb |
337 | 368 | - test/test_handlers_kqueue_handler.rb |
369 | - test/test_hipchat.rb | |
338 | 370 | - test/test_jabber.rb |
339 | 371 | - test/test_logger.rb |
340 | 372 | - test/test_metric.rb |
361 | 393 | - lib |
362 | 394 | - ext |
363 | 395 | required_ruby_version: !ruby/object:Gem::Requirement |
396 | none: false | |
364 | 397 | requirements: |
365 | 398 | - - ">=" |
366 | 399 | - !ruby/object:Gem::Version |
400 | hash: 3 | |
367 | 401 | segments: |
368 | 402 | - 0 |
369 | 403 | version: "0" |
370 | 404 | required_rubygems_version: !ruby/object:Gem::Requirement |
405 | none: false | |
371 | 406 | requirements: |
372 | 407 | - - ">=" |
373 | 408 | - !ruby/object:Gem::Version |
409 | hash: 3 | |
374 | 410 | segments: |
375 | 411 | - 0 |
376 | 412 | version: "0" |
377 | 413 | requirements: [] |
378 | 414 | |
379 | 415 | rubyforge_project: god |
380 | rubygems_version: 1.3.6 | |
416 | rubygems_version: 1.6.2 | |
381 | 417 | signing_key: |
382 | 418 | specification_version: 2 |
383 | 419 | summary: Process monitoring framework. |
397 | 433 | - test/test_event_handler.rb |
398 | 434 | - test/test_god.rb |
399 | 435 | - test/test_handlers_kqueue_handler.rb |
436 | - test/test_hipchat.rb | |
400 | 437 | - test/test_jabber.rb |
401 | 438 | - test/test_logger.rb |
402 | 439 | - test/test_metric.rb |
6 | 6 | # |
7 | 7 | # God.contact(:campfire) do |c| |
8 | 8 | # c.name = 'tom4' |
9 | # end | |
10 | ||
11 | # God::Contacts::Hipchat.defaults do |d| | |
12 | # d.token = '9fb768e421975cc1c6ff3f4f8306f890cb46e24f' | |
13 | # d.room = 'Notices' | |
14 | # d.ssl = true | |
15 | # end | |
16 | # | |
17 | # God.contact(:hipchat) do |c| | |
18 | # c.name = 'hip1' | |
9 | 19 | # end |
10 | 20 | |
11 | 21 | # God.contact(:email) do |c| |
0 | require File.dirname(__FILE__) + '/helper' | |
1 | ||
2 | class TestHipchat < Test::Unit::TestCase | |
3 | def setup | |
4 | @hipchat = God::Contacts::Hipchat.new | |
5 | end | |
6 | ||
7 | def test_exists | |
8 | God::Contacts::Hipchat | |
9 | end | |
10 | ||
11 | def test_notify | |
12 | @hipchat.token = 'ee64d6e2337310af' | |
13 | @hipchat.ssl = 'true' | |
14 | @hipchat.room = 'testroom' | |
15 | @hipchat.from = 'test' | |
16 | ||
17 | time = Time.now | |
18 | body = "[#{time.strftime('%H:%M:%S')}] host - msg" | |
19 | Marshmallow::Connection.any_instance.expects(:speak).with('testroom', body) | |
20 | @hipchat.notify('msg', time, 'prio', 'cat', 'host') | |
21 | end | |
22 | end |
11 | 11 | @webhook.notify('msg', Time.now, 'prio', 'cat', 'host') |
12 | 12 | assert_equal "sent webhook to http://example.com/switch", @webhook.info |
13 | 13 | end |
14 | ||
15 | def test_notify_with_url_containing_query_parameters | |
16 | @webhook.url = 'http://example.com/switch?api_key=123' | |
17 | Net::HTTP::Post.expects(:new).with('/switch?api_key=123') | |
18 | ||
19 | @webhook.notify('msg', Time.now, 'prio', 'cat', 'host') | |
20 | end | |
14 | 21 | end |