Skip to content
This repository has been archived by the owner on Dec 7, 2018. It is now read-only.

Commit

Permalink
to_set
Browse files Browse the repository at this point in the history
  • Loading branch information
toshitanian committed Jan 14, 2016
1 parent 8d7ba95 commit 2c8ed54
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 23 deletions.
20 changes: 15 additions & 5 deletions lib/fluent/plugin/out_http_ext.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
require 'set'

class Array
def to_set
Set.new(self)
end
end


class Hash
"""
each traverse in hash
Expand Down Expand Up @@ -48,7 +57,7 @@ def self.convert(range_str)
elems.each{|elem|
status_codes += self.get_array(elem)
}
return status_codes
return status_codes.to_set
end
end

Expand All @@ -60,6 +69,7 @@ def initialize
require 'net/http'
require 'uri'
require 'yajl'
require 'set'
end

# Endpoint URL ex. localhost.local/api/
Expand Down Expand Up @@ -110,10 +120,10 @@ def configure(conf)
end

@ignore_http_status_code = if @ignore_http_status_code.nil?
[]
else
StatusCodeParser.convert(@ignore_http_status_code)
end
[].to_set
else
StatusCodeParser.convert(@ignore_http_status_code)
end

@auth = case @authentication
when 'basic' then :basic
Expand Down
40 changes: 22 additions & 18 deletions test/plugin/test_out_http_ext.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
require 'yajl'
require 'fluent/test/http_output_test'
require 'fluent/plugin/out_http_ext'
require 'set'


TEST_LISTEN_PORT = 5126
Expand Down Expand Up @@ -372,7 +373,7 @@ def test_not_read_timeout

def test_ignore_none
d = create_driver CONFIG_IGNORE_NONE
assert_equal [], d.instance.ignore_http_status_code
assert_equal [].to_set, d.instance.ignore_http_status_code

assert_raise do
d.emit({:code=> 409})
Expand All @@ -387,7 +388,7 @@ def test_ignore_none

def test_ignore_409
d = create_driver CONFIG_IGNORE_409
assert_equal [409], d.instance.ignore_http_status_code
assert_equal [409].to_set, d.instance.ignore_http_status_code

assert_nothing_raised do
d.emit({:code => 409})
Expand All @@ -405,7 +406,7 @@ def test_ignore_409

def test_ignore_4XX
d = create_driver CONFIG_IGNORE_4XX
assert_equal (400..499).to_a, d.instance.ignore_http_status_code
assert_equal (400..499).to_a.to_set, d.instance.ignore_http_status_code

assert_nothing_raised do
d.emit({:code => 409})
Expand All @@ -423,7 +424,7 @@ def test_ignore_4XX

def test_ignore_4XX_5XX
d = create_driver CONFIG_IGNORE_4XX_5XX
assert_equal (400..599).to_a, d.instance.ignore_http_status_code
assert_equal (400..599).to_a.to_set, d.instance.ignore_http_status_code
assert_nothing_raised do
d.emit({:code => 409})
d.run
Expand Down Expand Up @@ -476,33 +477,36 @@ def test_auth
end

def test_status_code_parser()
StatusCodeParser.convert("400..409")
StatusCodeParser.convert("400..409,300")
StatusCodeParser.convert("300,400..409")
StatusCodeParser.convert("404,409")
StatusCodeParser.convert("404,409,300..303")
StatusCodeParser.convert("409")
StatusCodeParser.convert("")
assert_equal (400..409).to_a.to_set, StatusCodeParser.convert("400..409")
assert_equal ((400..409).to_a + [300]).to_set, StatusCodeParser.convert("400..409,300")
assert_equal ((400..409).to_a + [300]).to_set, StatusCodeParser.convert("300,400..409")
assert_equal [404, 409].to_set, StatusCodeParser.convert("404,409")
assert_equal [404, 409, 300, 301, 302, 303].to_set, StatusCodeParser.convert("404,409,300..303")
assert_equal [409].to_set, StatusCodeParser.convert("409")
assert_equal [].to_set, StatusCodeParser.convert("")
assert_raise do
StatusCodeParser.convert_range_str_to_range("400...499")
StatusCodeParser.convert("400...499")
end
assert_raise do
StatusCodeParser.convert_range_str_to_range("10..20")
StatusCodeParser.convert("10..20")
end
assert_raise do
StatusCodeParser.convert_range_str_to_range("4XX")
StatusCodeParser.convert("4XX")
end
assert_raise do
StatusCodeParser.convert_range_str_to_range("4XX..5XX")
StatusCodeParser.convert("4XX..5XX")
end
assert_raise do
StatusCodeParser.convert_range_str_to_range("200.0..400")
StatusCodeParser.convert("200.0..400")
end
assert_raise do
StatusCodeParser.convert_range_str_to_range("-200..400")
StatusCodeParser.convert("-200..400")
end

end


def test_array_extend
assert_equal [].to_set, Set.new([])
assert_equal [1, 2].to_set, Set.new([1, 2])
end
end

0 comments on commit 2c8ed54

Please sign in to comment.