<s> from test import CollectorTestCase <EOL> from test import get_collector_config <EOL> from test import unittest <EOL> from mock import Mock <EOL> from mock import patch <EOL> from diamond . collector import Collector <EOL> from elasticsearch import ElasticSearchCollector <EOL> class TestElasticSearchCollector ( CollectorTestCase ) : <EOL> def setUp ( self ) : <EOL> config = get_collector_config ( '<STR_LIT>' , { } ) <EOL> self . collector = ElasticSearchCollector ( config , None ) <EOL> def test_import ( self ) : <EOL> self . assertTrue ( ElasticSearchCollector ) <EOL> def test_new__instances_default ( self ) : <EOL> config = get_collector_config ( '<STR_LIT>' , { } ) <EOL> self . collector = ElasticSearchCollector ( config , None ) <EOL> self . assertEqual ( self . collector . instances , { '<STR_LIT>' : ( '<STR_LIT:127.0.0.1>' , <NUM_LIT> ) } ) <EOL> def test_new__instances_single ( self ) : <EOL> config = get_collector_config ( '<STR_LIT>' , { <EOL> '<STR_LIT>' : '<STR_LIT>' } ) <EOL> self . collector = ElasticSearchCollector ( config , None ) <EOL> self . assertEqual ( self . collector . instances , { '<STR_LIT:default>' : ( '<STR_LIT>' , <NUM_LIT> ) } ) <EOL> def test_new__instances_multi ( self ) : <EOL> config = get_collector_config ( '<STR_LIT>' , { <EOL> '<STR_LIT>' : [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> ] } ) <EOL> self . collector = ElasticSearchCollector ( config , None ) <EOL> self . assertEqual ( self . collector . instances , { <EOL> '<STR_LIT:default>' : ( '<STR_LIT>' , <NUM_LIT> ) , <EOL> '<STR_LIT:foo>' : ( '<STR_LIT>' , <NUM_LIT> ) , <EOL> '<STR_LIT:bar>' : ( '<STR_LIT>' , <NUM_LIT> ) , <EOL> } ) <EOL> @ patch . object ( Collector , '<STR_LIT>' ) <EOL> def test_should_work_with_real_data ( self , publish_mock ) : <EOL> returns = [ <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> ] <EOL> urlopen_mock = patch ( '<STR_LIT>' , Mock ( <EOL> side_effect = lambda * args : returns . pop ( <NUM_LIT:0> ) ) ) <EOL> self . collector . config [ '<STR_LIT>' ] = True <EOL> urlopen_mock . start ( ) <EOL> self . collector . collect ( ) <EOL> urlopen_mock . stop ( ) <EOL> self . assertEqual ( urlopen_mock . new . call_count , <NUM_LIT:3> ) <EOL> metrics = { <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:4> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:4> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : <NUM_LIT:5> , <EOL> '<STR_LIT>' : <NUM_LIT:10> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:2> , <EOL> } <EOL> self . setDocExample ( collector = self . collector . __class__ . __name__ , <EOL> metrics = metrics , <EOL> defaultpath = self . collector . config [ '<STR_LIT:path>' ] ) <EOL> self . assertPublishedMany ( publish_mock , metrics ) <EOL> @ patch . object ( Collector , '<STR_LIT>' ) <EOL> def test_should_work_with_real_data_logstash_mode ( self , publish_mock ) : <EOL> returns = [ <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> ] <EOL> urlopen_mock = patch ( '<STR_LIT>' , Mock ( <EOL> side_effect = lambda * args : returns . pop ( <NUM_LIT:0> ) ) ) <EOL> self . collector . config [ '<STR_LIT>' ] = True <EOL> urlopen_mock . start ( ) <EOL> self . collector . collect ( ) <EOL> urlopen_mock . stop ( ) <EOL> self . assertEqual ( urlopen_mock . new . call_count , <NUM_LIT:2> ) <EOL> metrics = { <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> } <EOL> self . setDocExample ( collector = self . collector . __class__ . __name__ , <EOL> metrics = metrics , <EOL> defaultpath = self . collector . config [ '<STR_LIT:path>' ] ) <EOL> self . assertPublishedMany ( publish_mock , metrics ) <EOL> @ patch . object ( Collector , '<STR_LIT>' ) <EOL> def test_should_work_with_real_0_90_data ( self , publish_mock ) : <EOL> returns = [ <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> ] <EOL> urlopen_mock = patch ( '<STR_LIT>' , Mock ( <EOL> side_effect = lambda * args : returns . pop ( <NUM_LIT:0> ) ) ) <EOL> urlopen_mock . start ( ) <EOL> self . collector . collect ( ) <EOL> urlopen_mock . stop ( ) <EOL> self . assertEqual ( urlopen_mock . new . call_count , <NUM_LIT:2> ) <EOL> metrics = { <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:9> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:12> , <EOL> } <EOL> self . setDocExample ( collector = self . collector . __class__ . __name__ , <EOL> metrics = metrics , <EOL> defaultpath = self . collector . config [ '<STR_LIT:path>' ] ) <EOL> self . assertPublishedMany ( publish_mock , metrics ) <EOL> @ patch . object ( Collector , '<STR_LIT>' ) <EOL> def test_should_fail_gracefully ( self , publish_mock ) : <EOL> urlopen_mock = patch ( '<STR_LIT>' , Mock ( <EOL> return_value = self . getFixture ( '<STR_LIT>' ) ) ) <EOL> urlopen_mock . start ( ) <EOL> self . collector . collect ( ) <EOL> urlopen_mock . stop ( ) <EOL> self . assertPublishedMany ( publish_mock , { } ) <EOL> @ patch . object ( Collector , '<STR_LIT>' ) <EOL> def test_multi_instances_with_real_data ( self , publish_mock ) : <EOL> config = get_collector_config ( '<STR_LIT>' , { <EOL> '<STR_LIT>' : [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> ] } ) <EOL> self . collector = ElasticSearchCollector ( config , None ) <EOL> self . assertEqual ( len ( self . collector . instances ) , <NUM_LIT:2> ) <EOL> returns = [ <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> ] <EOL> urlopen_mock = patch ( '<STR_LIT>' , Mock ( <EOL> side_effect = lambda * args : returns . pop ( <NUM_LIT:0> ) ) ) <EOL> urlopen_mock . start ( ) <EOL> self . collector . collect ( ) <EOL> urlopen_mock . stop ( ) <EOL> self . assertEqual ( urlopen_mock . new . call_count , <NUM_LIT:4> ) <EOL> metrics = { <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : <NUM_LIT:2> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : <NUM_LIT:2> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:4> , <EOL> '<STR_LIT>' : <NUM_LIT:8> , <EOL> } <EOL> self . assertPublishedMany ( publish_mock , metrics ) <EOL> @ patch . object ( Collector , '<STR_LIT>' ) <EOL> def test_should_work_with_real_1_7_data ( self , publish_mock ) : <EOL> returns = [ <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> self . getFixture ( '<STR_LIT>' ) , <EOL> ] <EOL> urlopen_mock = patch ( '<STR_LIT>' , Mock ( <EOL> side_effect = lambda * args : returns . pop ( <NUM_LIT:0> ) ) ) <EOL> urlopen_mock . start ( ) <EOL> self . collector . collect ( ) <EOL> urlopen_mock . stop ( ) <EOL> self . assertEqual ( urlopen_mock . new . call_count , <NUM_LIT:2> ) <EOL> metrics = { <EOL> '<STR_LIT>' : <NUM_LIT:7> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> <EOL> } <EOL> self . setDocExample ( collector = self . collector . __class__ . __name__ , <EOL> metrics = metrics , <EOL> defaultpath = self . collector . config [ '<STR_LIT:path>' ] ) <EOL> self . assertPublishedMany ( publish_mock , metrics ) <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> unittest . main ( ) </s>
