<s> from tests . checks . common import AgentCheckTest <EOL> Win32_OperatingSystem_attr = { <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:1>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : - <NUM_LIT> , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:2> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT:Name>' : "<STR_LIT>" <EOL> "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:2> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:OK>" , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> } <EOL> Win32_PerfFormattedData_PerfProc_Process_attr = { <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT:Name>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT:8> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : <NUM_LIT:9> , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> } <EOL> Win32_Process_attr = { <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" <EOL> } <EOL> class Mocked_Win32_Service ( object ) : <EOL> """<STR_LIT>""" <EOL> def __init__ ( self , ** entries ) : <EOL> self . __dict__ . update ( entries ) <EOL> def query ( self , q ) : <EOL> if q == "<STR_LIT>" : <EOL> return [ Mocked_Win32_Service ( ** Win32_Process_attr ) ] <EOL> else : <EOL> return [ ] <EOL> class Mocked_WMI ( object ) : <EOL> """<STR_LIT>""" <EOL> def __init__ ( self , mocked_wmi_classes ) : <EOL> def get_wmi_obj ( wmi_obj ) : <EOL> return lambda Name = None : [ wmi_obj ] if not Name or wmi_obj . Name == Name else [ ] <EOL> for wmi_class , wmi_obj in mocked_wmi_classes . iteritems ( ) : <EOL> mocked_wmi_classes [ wmi_class ] = get_wmi_obj ( wmi_obj ) <EOL> self . _mocked_classes = mocked_wmi_classes <EOL> def WMI ( self , host , user , password ) : <EOL> """<STR_LIT>""" <EOL> return Mocked_Win32_Service ( ** self . _mocked_classes ) <EOL> class WMITestCase ( AgentCheckTest ) : <EOL> CHECK_NAME = '<STR_LIT>' <EOL> CONFIG = { <EOL> '<STR_LIT:class>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : [ [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] , <EOL> [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] ] , <EOL> '<STR_LIT>' : [ "<STR_LIT>" ] <EOL> } <EOL> FILTER_CONFIG = { <EOL> '<STR_LIT:class>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : [ [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] , <EOL> [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] ] , <EOL> '<STR_LIT>' : [ { '<STR_LIT:Name>' : "<STR_LIT>" } ] , <EOL> '<STR_LIT>' : "<STR_LIT:Name>" <EOL> } <EOL> TAG_QUERY_CONFIG = { <EOL> '<STR_LIT:class>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : [ [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] ] , <EOL> '<STR_LIT>' : [ { '<STR_LIT:Name>' : "<STR_LIT>" } ] , <EOL> '<STR_LIT>' : [ [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] ] <EOL> } <EOL> def setUp ( self ) : <EOL> import sys <EOL> sys . modules [ '<STR_LIT>' ] = Mocked_WMI ( <EOL> { <EOL> '<STR_LIT>' : Mocked_Win32_Service ( ** Win32_OperatingSystem_attr ) , <EOL> '<STR_LIT>' : <EOL> Mocked_Win32_Service ( ** Win32_PerfFormattedData_PerfProc_Process_attr ) , <EOL> } ) <EOL> def test_check ( self ) : <EOL> """<STR_LIT>""" <EOL> config = { <EOL> '<STR_LIT>' : [ self . CONFIG ] <EOL> } <EOL> self . run_check ( config ) <EOL> for _ , mname , _ in self . CONFIG [ '<STR_LIT>' ] : <EOL> self . assertMetric ( mname , tags = self . CONFIG [ '<STR_LIT>' ] , count = <NUM_LIT:1> ) <EOL> self . coverage_report ( ) <EOL> def test_filter_and_tagging ( self ) : <EOL> """<STR_LIT>""" <EOL> config = { <EOL> '<STR_LIT>' : [ self . FILTER_CONFIG ] <EOL> } <EOL> self . run_check ( config ) <EOL> for _ , mname , _ in self . FILTER_CONFIG [ '<STR_LIT>' ] : <EOL> self . assertMetric ( mname , tags = [ "<STR_LIT>" ] , count = <NUM_LIT:1> ) <EOL> self . coverage_report ( ) <EOL> def test_tag_queries ( self ) : <EOL> """<STR_LIT>""" <EOL> config = { <EOL> '<STR_LIT>' : [ self . TAG_QUERY_CONFIG ] <EOL> } <EOL> self . run_check ( config ) <EOL> for _ , mname , _ in self . TAG_QUERY_CONFIG [ '<STR_LIT>' ] : <EOL> self . assertMetric ( mname , tags = [ '<STR_LIT>' <EOL> '<STR_LIT>' ] , count = <NUM_LIT:1> ) <EOL> self . coverage_report ( ) </s>
