-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.rb
64 lines (49 loc) · 1.21 KB
/
setup.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
require_relative "./gemfile"
class Integer
def kilobytes
self * 1024
end
def megabytes
self.kilobytes * 1024
end
end
class Requester
def self.go!(invoice, **kwopts)
new(invoice, **kwopts).request_validation!
end
end
require_relative "./cause_chain"
require_relative "./http_requester"
HTTPI.log = false # this wrapper is kinda noisy by default
require_relative "./httpi_requester"
require_relative "./faraday_requester"
require_relative "./socket_requester"
$failures = {}
def test!(requester, **kwopts)
puts "TESTING: #{requester} w/ #{kwopts}"
TEST_RUNS.times do |n|
print "TEST #{n}: "
resp = requester.go!(TEST_CONTENT, **kwopts)
if resp
print "STATUS RECEIVED: #{resp.status} "
if resp.status != 200
raise "http status was not 200"
end
if resp.body.to_s.size == 0
raise "response body was empty"
end
else
raise "response was nil"
end
rescue StandardError => e
$failures[requester] ||= 0
$failures[requester] += 1
print "❌ FAIL: "
puts "error raised: #{e.class}: #{e.message}"
puts "STACK: #{e.backtrace.join("\n")}"
unwind_causes(e)
puts
else
print "✓ SUCCESS\n\n"
end
end