**************************************************************************************************** 2015-09-04T23:59:22: PyTan v'2.1.0' against Tanium v'6.2.314.3321' -- Valid Tests Starting TESTSETUP: Getting sensor objects for export tests of BaseType TESTSETUP: Creating whitelisted URLs for get object tests TESTSETUP: Asking a question for export tests of ResultSet 2015-09-04 23:59:57,267 INFO pytan.pollers.QuestionPoller: ID 5779: Reached Threshold of 99% (3 of 3) PyTan v2.1.0 Handler for Session to 172.16.31.128:443, Authenticated: True, Platform Version: 6.2.314.3321 test_invalid_create_object_1_invalid_create_sensor (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FAILURE Handler.create_sensor() with kwargs {u'unsupported': True} ok test_invalid_create_object_from_json_1_invalid_create_saved_action_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON FAILURE Handler.create_from_json() with kwargs {'objtype': u'saved_action', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_invalid_create_object_from_json_SavedActionList_2015_09_04-19_59_57-EDT.json'} ok test_invalid_create_object_from_json_2_invalid_create_client_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON FAILURE Handler.create_from_json() with kwargs {'objtype': u'client', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_invalid_create_object_from_json_SystemStatusList_2015_09_04-19_59_57-EDT.json'} ok test_invalid_create_object_from_json_3_invalid_create_userrole_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON FAILURE Handler.create_from_json() with kwargs {'objtype': u'userrole', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_invalid_create_object_from_json_UserRoleList_2015_09_04-19_59_57-EDT.json'} ok test_invalid_create_object_from_json_4_invalid_create_setting_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON FAILURE Handler.create_from_json() with kwargs {'objtype': u'setting', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_invalid_create_object_from_json_SystemSettingList_2015_09_04-19_59_57-EDT.json'} ok test_invalid_deploy_action_1_invalid_deploy_action_run_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION FAILURE Handler.deploy_action() with kwargs {'report_dir': '/var/folders/dk/vjr1r_c53yx6k6gzp2bbt_c40000gn/T', u'package': u'Distribute Tanium Standard Utilities'} 2015-09-05 00:00:07,463 INFO pytan.pollers.QuestionPoller: ID 5780: Reached Threshold of 99% (3 of 3) ok test_invalid_deploy_action_2_invalid_deploy_action_package_help (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION FAILURE Handler.deploy_action() with kwargs {'report_dir': '/var/folders/dk/vjr1r_c53yx6k6gzp2bbt_c40000gn/T', u'package_help': True} ok test_invalid_deploy_action_3_invalid_deploy_action_package (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION FAILURE Handler.deploy_action() with kwargs {'report_dir': '/var/folders/dk/vjr1r_c53yx6k6gzp2bbt_c40000gn/T', u'run': True, u'package': u'Invalid Package'} ok test_invalid_deploy_action_4_invalid_deploy_action_options_help (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION FAILURE Handler.deploy_action() with kwargs {'report_dir': '/var/folders/dk/vjr1r_c53yx6k6gzp2bbt_c40000gn/T', u'options_help': True} ok test_invalid_deploy_action_5_invalid_deploy_action_empty_package (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION FAILURE Handler.deploy_action() with kwargs {'report_dir': '/var/folders/dk/vjr1r_c53yx6k6gzp2bbt_c40000gn/T', u'run': True, u'package': u''} ok test_invalid_deploy_action_6_invalid_deploy_action_filters_help (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION FAILURE Handler.deploy_action() with kwargs {'report_dir': '/var/folders/dk/vjr1r_c53yx6k6gzp2bbt_c40000gn/T', u'filters_help': True} ok test_invalid_deploy_action_7_invalid_deploy_action_missing_parameters (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION FAILURE Handler.deploy_action() with kwargs {'report_dir': '/var/folders/dk/vjr1r_c53yx6k6gzp2bbt_c40000gn/T', u'run': True, u'package': u'Custom Tagging - Add Tags'} ok test_invalid_export_basetype_1_invalid_export_basetype_csv_bad_explode_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType FAILURE Handler.export_obj() with kwargs {u'export_format': u'csv', u'explode_json_string_values': u'bad', 'obj': } ok test_invalid_export_basetype_2_invalid_export_basetype_csv_bad_sort_sub_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType FAILURE Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': [[]]} ok test_invalid_export_basetype_3_invalid_export_basetype_csv_bad_sort_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType FAILURE Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': u'bad'} ok test_invalid_export_basetype_4_invalid_export_basetype_xml_bad_minimal_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType FAILURE Handler.export_obj() with kwargs {u'export_format': u'xml', 'obj': , u'minimal': u'bad'} ok test_invalid_export_basetype_5_invalid_export_basetype_json_bad_include_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType FAILURE Handler.export_obj() with kwargs {u'export_format': u'json', 'obj': , u'include_type': u'bad'} ok test_invalid_export_basetype_6_invalid_export_basetype_json_bad_explode_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType FAILURE Handler.export_obj() with kwargs {u'export_format': u'json', u'explode_json_string_values': u'bad', 'obj': } ok test_invalid_export_basetype_7_invalid_export_basetype_bad_format (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType FAILURE Handler.export_obj() with kwargs {u'export_format': u'bad', 'obj': } ok test_invalid_export_resultset_1_invalid_export_resultset_csv_bad_sort_sub_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet FAILURE Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': [[]]} ok test_invalid_export_resultset_2_invalid_export_resultset_csv_bad_sort_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet FAILURE Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': u'bad'} ok test_invalid_export_resultset_3_invalid_export_resultset_csv_bad_expand_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet FAILURE Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'expand_grouped_columns': u'bad'} ok test_invalid_export_resultset_4_invalid_export_resultset_csv_bad_sensors_sub_type (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet FAILURE Handler.export_obj() with kwargs {u'export_format': u'csv', u'sensors': [[]], 'obj': , u'header_add_sensor': True} ok test_invalid_export_resultset_5_invalid_export_resultset_bad_format (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet FAILURE Handler.export_obj() with kwargs {u'export_format': u'bad', 'obj': } ok test_invalid_get_object_1_invalid_get_action_single_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET FAILURE Handler.get() with kwargs {u'objtype': u'action', u'name': u'Distribute Tanium Standard Utilities'} ok test_invalid_get_object_2_invalid_get_question_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET FAILURE Handler.get() with kwargs {u'objtype': u'question', u'name': u'dweedle'} ok test_invalid_question_1_invalid_ask_manual_question_sensor_help (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'qtype': u'manual', u'sensors_help': True} ok test_invalid_question_2_invalid_ask_manual_question_bad_filter (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'sensors': u'Computer name, that does not meet:little', u'qtype': u'manual'} ok test_invalid_question_3_invalid_ask_manual_question_filter_help (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'filters_help': True, u'qtype': u'manual'} ok test_invalid_question_4_invalid_ask_manual_question_bad_option (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'sensors': u'Operating system, opt:bad', u'qtype': u'manual'} ok test_invalid_question_5_invalid_ask_manual_question_missing_parameter_split (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'sensors': u'Computer Name{Dweedle}', u'qtype': u'manual'} ok test_invalid_question_6_invalid_ask_manual_question_option_help (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'options_help': True, u'qtype': u'manual'} ok test_invalid_question_7_invalid_ask_parsed_question_no_picker (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'question_text': u'Computer Name', u'qtype': u'parsed'} ok test_invalid_question_8_invalid_ask_manual_question_too_many_parameter_blocks (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'sensors': u'Folder Name Search with RegEx Match{dirname=Program Files,regex=.*}{}', u'qtype': u'manual'} ok test_invalid_question_9_invalid_ask_manual_question_bad_sensorname (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'sensors': u'Dweedle Dee and Dum', u'qtype': u'manual'} ok test_valid_create_object_1_create_user (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT SUCCESS Handler.create_user() with kwargs {u'rolename': u'Administrator', u'name': u'API Test User', u'properties': [[u'property1', u'value1']]} No results found searching for user with {'name': 'API Test User'}!! ok test_valid_create_object_2_create_package (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT SUCCESS Handler.create_package() with kwargs {u'expire_seconds': 1500, u'display_name': u'package49 API test', u'name': u'package49', u'parameters_json_file': u'../doc/example_of_all_package_parameters.json', u'verify_expire_seconds': 3600, u'command': u'package49 $1 $2 $3 $4 $5 $6 $7 $8', u'file_urls': [u'3600::testing.vbs||https://content.tanium.com/files/initialcontent/bundles/2014-10-01_11-32-15-7844/custom_tagging_-_remove_tags_[non-windows]/CustomTagRemove.sh'], u'verify_filter_options': [u'and'], u'verify_filters': [u'Custom Tags, that contains:tag'], u'command_timeout_seconds': 9999} No results found searching for PackageSpec, name: 'package49' (error: Response command PackageNotFound does not match request command GetObject)!! ok test_valid_create_object_3_create_group (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT SUCCESS Handler.create_group() with kwargs {u'groupname': u'All Windows Computers API Test', u'filters': [u'Operating System, that contains:Windows'], u'filter_options': [u'and']} No results found searching for Group, name: 'All Windows Computers API Test' (error: Response command GroupNotFound does not match request command GetObject)!! ok test_valid_create_object_4_create_whitelisted_url (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT SUCCESS Handler.create_whitelisted_url() with kwargs {u'url': u'http://test.com/.*API_Test.*URL', u'regex': True, u'properties': [[u'property1', u'value1']], u'download_seconds': 3600} No results found searching for whitelisted_url with {'url_regex': 'regex:http://test.com/.*API_Test.*URL'}!! ok test_valid_create_object_from_json_1_create_package_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'package', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_PackageSpecList_2015_09_04-20_00_07-EDT.json'} ok test_valid_create_object_from_json_2_create_user_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'user', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_UserList_2015_09_04-20_00_07-EDT.json'} ok test_valid_create_object_from_json_3_create_saved_question_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'saved_question', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_SavedQuestionList_2015_09_04-20_00_07-EDT.json'} ok test_valid_create_object_from_json_4_create_action_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'action', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_ActionList_2015_09_04-20_00_08-EDT.json'} ok test_valid_create_object_from_json_5_create_sensor_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'sensor', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_SensorList_2015_09_04-20_00_08-EDT.json'} ok test_valid_create_object_from_json_6_create_question_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'question', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_QuestionList_2015_09_04-20_00_08-EDT.json'} ok test_valid_create_object_from_json_7_create_whitelisted_url_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'whitelisted_url', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_WhiteListedUrlList_2015_09_04-20_00_08-EDT.json'} ok test_valid_create_object_from_json_8_create_group_from_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED CREATE OBJECT FROM JSON SUCCESS Handler.create_from_json() with kwargs {'objtype': u'group', 'json_file': '/Users/jolsen/gh/pytan/BUILD/TEST_OUT/test_valid_create_object_from_json_GroupList_2015_09_04-20_00_08-EDT.json'} ok test_valid_deploy_action_1_deploy_action_simple_against_windows_computers (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION SUCCESS Handler.deploy_action() with kwargs {u'run': True, u'action_filters': u'Operating System, that contains:Windows', u'package': u'Distribute Tanium Standard Utilities'} 2015-09-05 00:00:18,504 INFO pytan.pollers.QuestionPoller: ID 5783: Reached Threshold of 99% (3 of 3) 2015-09-05 00:00:34,063 INFO pytan.pollers.ActionPoller: ID 155: Reached Threshold for Seen Count of 100% (1 of 1) 2015-09-05 00:00:34,084 INFO pytan.pollers.ActionPoller: ID 155: Reached Threshold for Finished Count of 100% (1 of 1) ok test_valid_deploy_action_2_deploy_action_simple_without_results (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION SUCCESS Handler.deploy_action() with kwargs {u'get_results': False, u'run': True, u'package': u'Distribute Tanium Standard Utilities'} ok test_valid_deploy_action_3_deploy_action_with_params_against_windows_computers (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION SUCCESS Handler.deploy_action() with kwargs {u'run': True, u'action_filters': u'Operating System, that contains:Windows', u'package': u'Custom Tagging - Add Tags{$1=tag_should_be_added,$2=tag_should_be_ignore}'} 2015-09-05 00:00:44,247 INFO pytan.pollers.QuestionPoller: ID 5784: Reached Threshold of 99% (3 of 3) 2015-09-05 00:00:59,495 INFO pytan.pollers.ActionPoller: ID 157: Reached Threshold for Seen Count of 100% (1 of 1) 2015-09-05 00:00:59,516 INFO pytan.pollers.ActionPoller: ID 157: Reached Threshold for Finished Count of 100% (1 of 1) ok test_valid_deploy_action_4_deploy_action_simple (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED DEPLOY ACTION SUCCESS Handler.deploy_action() with kwargs {u'sse': True, u'run': True, u'package': u'Distribute Tanium Standard Utilities'} 2015-09-05 00:01:09,596 INFO pytan.pollers.QuestionPoller: ID 5785: Reached Threshold of 99% (3 of 3) 2015-09-05 00:01:34,906 INFO pytan.pollers.ActionPoller: ID 158: Reached Threshold for Seen Count of 100% (3 of 3) 2015-09-05 00:01:34,926 INFO pytan.pollers.ActionPoller: ID 158: Reached Threshold for Finished Count of 100% (3 of 3) ok test_valid_export_basetype_10_export_basetype_xml_default_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'xml', 'obj': } +++ EVAL TEST: '' in export_str ok test_valid_export_basetype_11_export_basetype_csv_with_explode_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', u'explode_json_string_values': True, 'obj': } +++ EVAL TEST: 'parameter_definition_parameters_0_defaultValue' in export_str.splitlines()[0].split(',') +++ EVAL TEST: 'category' == export_str.splitlines()[0].split(',')[0] ok test_valid_export_basetype_12_export_basetype_json_explode_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'json', u'explode_json_string_values': False, 'obj': } +++ EVAL TEST: '_type' in json.loads(export_str) +++ EVAL TEST: 'sensor' in json.loads(export_str) +++ EVAL TEST: 'Computer Name' == json.loads(export_str)['sensor'][0]['name'] +++ EVAL TEST: type(json.loads(export_str)['sensor'][3]['parameter_definition']) in [str, unicode] ok test_valid_export_basetype_13_export_basetype_json_type_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'json', 'obj': , u'include_type': False} +++ EVAL TEST: '_type' not in json.loads(export_str) +++ EVAL TEST: 'sensor' in json.loads(export_str) +++ EVAL TEST: 'Computer Name' == json.loads(export_str)['sensor'][0]['name'] +++ EVAL TEST: type(json.loads(export_str)['sensor'][3]['parameter_definition']) in [str, unicode] ok test_valid_export_basetype_14_export_basetype_json_default_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'json', 'obj': } +++ EVAL TEST: '_type' in json.loads(export_str) +++ EVAL TEST: 'sensor' in json.loads(export_str) +++ EVAL TEST: 'Computer Name' == json.loads(export_str)['sensor'][0]['name'] +++ EVAL TEST: type(json.loads(export_str)['sensor'][3]['parameter_definition']) in [str, unicode] ok test_valid_export_basetype_1_export_basetype_csv_with_sort_list (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': [u'name', u'description']} +++ EVAL TEST: 'parameter_definition' in export_str.splitlines()[0].split(',') +++ EVAL TEST: ['name', 'description'] == export_str.splitlines()[0].split(',')[0:2] ok test_valid_export_basetype_2_export_basetype_csv_with_explode_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', u'explode_json_string_values': False, 'obj': } +++ EVAL TEST: 'parameter_definition' in export_str.splitlines()[0].split(',') +++ EVAL TEST: 'parameter_definition_parameters_0_defaultValue' not in export_str.splitlines()[0].split(',') +++ EVAL TEST: 'category' == export_str.splitlines()[0].split(',')[0] ok test_valid_export_basetype_3_export_basetype_json_type_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'json', 'obj': , u'include_type': True} +++ EVAL TEST: '_type' in json.loads(export_str) +++ EVAL TEST: 'sensor' in json.loads(export_str) +++ EVAL TEST: 'Computer Name' == json.loads(export_str)['sensor'][0]['name'] +++ EVAL TEST: type(json.loads(export_str)['sensor'][3]['parameter_definition']) in [str, unicode] ok test_valid_export_basetype_4_export_basetype_xml_minimal_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'xml', 'obj': , u'minimal': False} +++ EVAL TEST: '' in export_str ok test_valid_export_basetype_5_export_basetype_xml_minimal_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'xml', 'obj': , u'minimal': True} +++ EVAL TEST: '' in export_str ok test_valid_export_basetype_6_export_basetype_csv_with_sort_empty_list (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': []} +++ EVAL TEST: 'parameter_definition' in export_str.splitlines()[0].split(',') +++ EVAL TEST: 'category' == export_str.splitlines()[0].split(',')[0] ok test_valid_export_basetype_7_export_basetype_csv_default_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': } +++ EVAL TEST: 'parameter_definition' in export_str.splitlines()[0].split(',') +++ EVAL TEST: 'parameter_definition_parameters_0_defaultValue' not in export_str.splitlines()[0].split(',') +++ EVAL TEST: 'category' == export_str.splitlines()[0].split(',')[0] ok test_valid_export_basetype_8_export_basetype_json_explode_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'json', u'explode_json_string_values': True, 'obj': } +++ EVAL TEST: '_type' in json.loads(export_str) +++ EVAL TEST: 'sensor' in json.loads(export_str) +++ EVAL TEST: 'Computer Name' == json.loads(export_str)['sensor'][0]['name'] +++ EVAL TEST: type(json.loads(export_str)['sensor'][3]['parameter_definition']) in [dict] +++ EVAL TEST: 'parameters' in json.loads(export_str)['sensor'][3]['parameter_definition'] ok test_valid_export_basetype_9_export_basetype_csv_with_sort_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT BaseType SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': True} +++ EVAL TEST: 'parameter_definition' in export_str.splitlines()[0].split(',') +++ EVAL TEST: 'category' == export_str.splitlines()[0].split(',')[0] ok test_valid_export_resultset_10_export_resultset_csv_default_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': } ['Computer Name', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'IP Address', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Flags') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') ok test_valid_export_resultset_11_export_resultset_csv_type_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_add_type': True} ['Computer Name (String)', 'Destination (IPAddress)', 'Flags (String)', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*] (String)', 'Gateway (IPAddress)', 'IP Address (IPAddress)', 'Interface (String)', 'Mask (String)', 'Metric (NumericInteger)'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name (String)') +++ EVAL TEST: export_str_list[0][1].startswith('Destination (IPAddress)') +++ EVAL TEST: export_str_list[0][2].startswith('Flags (String)') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][3].endswith(' (String)') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway (IPAddress)') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address (IPAddress)') +++ EVAL TEST: export_str_list[0][6].startswith('Interface (String)') +++ EVAL TEST: export_str_list[0][7].startswith('Mask (String)') +++ EVAL TEST: export_str_list[0][8].startswith('Metric (NumericInteger)') ok test_valid_export_resultset_12_export_resultset_csv_all_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'header_sort': True, 'obj': , u'export_format': u'csv', u'expand_grouped_columns': True, u'header_add_sensor': True, u'header_add_type': True} ['Computer Name: Computer Name (String)', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]: Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*] (String)', 'IP Address: IP Address (IPAddress)', 'IP Route Details: Destination (IPAddress)', 'IP Route Details: Flags (String)', 'IP Route Details: Gateway (IPAddress)', 'IP Route Details: Interface (String)', 'IP Route Details: Mask (String)', 'IP Route Details: Metric (NumericInteger)'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name: Computer Name (String)') +++ EVAL TEST: export_str_list[0][1].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][1].endswith(' (String)') +++ EVAL TEST: export_str_list[0][2].startswith('IP Address: IP Address (IPAddress)') +++ EVAL TEST: export_str_list[0][3].startswith('IP Route Details: Destination (IPAddress)') +++ EVAL TEST: export_str_list[0][4].startswith('IP Route Details: Flags (String)') +++ EVAL TEST: export_str_list[0][5].startswith('IP Route Details: Gateway (IPAddress)') +++ EVAL TEST: export_str_list[0][6].startswith('IP Route Details: Interface (String)') +++ EVAL TEST: export_str_list[0][7].startswith('IP Route Details: Mask (String)') +++ EVAL TEST: export_str_list[0][8].startswith('IP Route Details: Metric (NumericInteger)') +++ EVAL TEST: 'UNRELATED TO IP Address' in export_str ok test_valid_export_resultset_13_export_resultset_csv_sort_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': False} ['Computer Name', 'Destination', 'Gateway', 'Mask', 'Flags', 'Metric', 'Interface', 'IP Address', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Gateway') +++ EVAL TEST: export_str_list[0][3].startswith('Mask') +++ EVAL TEST: export_str_list[0][4].startswith('Flags') +++ EVAL TEST: export_str_list[0][5].startswith('Metric') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('IP Address') +++ EVAL TEST: export_str_list[0][8].startswith('Folder Name Search with RegEx Match') ok test_valid_export_resultset_1_export_resultset_json (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'json', 'obj': } ['['] +++ EVAL TEST: 'Computer Name' == json.loads(export_str)[0]['row0'][0]['column.display_name'] ok test_valid_export_resultset_2_export_resultset_csv_sensor_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_add_sensor': True} ['Computer Name: Computer Name', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]: Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'IP Address: IP Address', 'IP Route Details: Destination', 'IP Route Details: Flags', 'IP Route Details: Gateway', 'IP Route Details: Interface', 'IP Route Details: Mask', 'IP Route Details: Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name: Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][2].startswith('IP Address: IP Address') +++ EVAL TEST: export_str_list[0][3].startswith('IP Route Details: Destination') +++ EVAL TEST: export_str_list[0][4].startswith('IP Route Details: Flags') +++ EVAL TEST: export_str_list[0][5].startswith('IP Route Details: Gateway') +++ EVAL TEST: export_str_list[0][6].startswith('IP Route Details: Interface') +++ EVAL TEST: export_str_list[0][7].startswith('IP Route Details: Mask') +++ EVAL TEST: export_str_list[0][8].startswith('IP Route Details: Metric') ok test_valid_export_resultset_3_export_resultset_csv_type_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_add_type': False} ['Computer Name', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'IP Address', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Flags') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') ok test_valid_export_resultset_4_export_resultset_csv_expand_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'expand_grouped_columns': False} ['Computer Name', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'IP Address', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Flags') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') ok test_valid_export_resultset_5_export_resultset_csv_sort_empty (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': []} ['Computer Name', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'IP Address', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Flags') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') ok test_valid_export_resultset_6_export_resultset_csv_sort_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': True} ['Computer Name', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'IP Address', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Flags') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') ok test_valid_export_resultset_7_export_resultset_csv_sort_list (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_sort': [u'Computer Name', u'IP Address']} ['Computer Name', 'IP Address', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('IP Address') +++ EVAL TEST: export_str_list[0][2].startswith('Destination') +++ EVAL TEST: export_str_list[0][3].startswith('Flags') +++ EVAL TEST: export_str_list[0][4].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][5].startswith('Gateway') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') ok test_valid_export_resultset_8_export_resultset_csv_sensor_false (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'header_add_sensor': False} ['Computer Name', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'IP Address', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Flags') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') ok test_valid_export_resultset_9_export_resultset_csv_expand_true (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED EXPORT OBJECT ResultSet SUCCESS Handler.export_obj() with kwargs {u'export_format': u'csv', 'obj': , u'expand_grouped_columns': True} ['Computer Name', 'Destination', 'Flags', 'Folder Name Search with RegEx Match[No, Program Files, No, , .*Shared.*]', 'Gateway', 'IP Address', 'Interface', 'Mask', 'Metric'] +++ EVAL TEST: export_str_list[0][0].startswith('Computer Name') +++ EVAL TEST: export_str_list[0][1].startswith('Destination') +++ EVAL TEST: export_str_list[0][2].startswith('Flags') +++ EVAL TEST: export_str_list[0][3].startswith('Folder Name Search with RegEx Match') +++ EVAL TEST: export_str_list[0][4].startswith('Gateway') +++ EVAL TEST: export_str_list[0][5].startswith('IP Address') +++ EVAL TEST: export_str_list[0][6].startswith('Interface') +++ EVAL TEST: export_str_list[0][7].startswith('Mask') +++ EVAL TEST: export_str_list[0][8].startswith('Metric') +++ EVAL TEST: 'UNRELATED TO IP Address' in export_str ok test_valid_get_object_10_get_all_saved_questions (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'saved_question'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.SavedQuestionList) +++ EVAL TEST: all([isinstance(x, taniumpy.SavedQuestion) for x in response]) ok test_valid_get_object_11_get_user_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'user', u'name': u'Administrator'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.UserList) +++ EVAL TEST: all([isinstance(x, taniumpy.User) for x in response]) ok test_valid_get_object_12_get_all_userroless (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'userrole'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.UserRoleList) +++ EVAL TEST: all([isinstance(x, taniumpy.UserRole) for x in response]) ok test_valid_get_object_13_get_all_questions (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'question'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.QuestionList) +++ EVAL TEST: all([isinstance(x, taniumpy.Question) for x in response]) ok test_valid_get_object_14_get_sensor_by_id (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'sensor', u'id': 1} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.SensorList) +++ EVAL TEST: all([isinstance(x, taniumpy.Sensor) for x in response]) ok test_valid_get_object_15_get_all_groups (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'group'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.GroupList) +++ EVAL TEST: all([isinstance(x, taniumpy.Group) for x in response]) ok test_valid_get_object_16_get_all_sensors (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'sensor'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.SensorList) +++ EVAL TEST: all([isinstance(x, taniumpy.Sensor) for x in response]) ok test_valid_get_object_17_get_sensor_by_mixed (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'sensor', u'hash': [u'322086833'], u'name': [u'Computer Name'], u'id': [1, 2]} +++ EVAL TEST: len(response) == 4 +++ EVAL TEST: isinstance(response, taniumpy.SensorList) +++ EVAL TEST: all([isinstance(x, taniumpy.Sensor) for x in response]) ok test_valid_get_object_18_get_whitelisted_url_by_id (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'whitelisted_url', u'id': 1} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.WhiteListedUrlList) +++ EVAL TEST: all([isinstance(x, taniumpy.WhiteListedUrl) for x in response]) ok test_valid_get_object_19_get_group_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'group', u'name': u'All Computers'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.GroupList) +++ EVAL TEST: all([isinstance(x, taniumpy.Group) for x in response]) ok test_valid_get_object_1_get_all_users (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'user'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.UserList) +++ EVAL TEST: all([isinstance(x, taniumpy.User) for x in response]) ok test_valid_get_object_20_get_all_whitelisted_urls (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'whitelisted_url'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.WhiteListedUrlList) +++ EVAL TEST: all([isinstance(x, taniumpy.WhiteListedUrl) for x in response]) ok test_valid_get_object_21_get_sensor_by_hash (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'sensor', u'hash': u'322086833'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.SensorList) +++ EVAL TEST: all([isinstance(x, taniumpy.Sensor) for x in response]) ok test_valid_get_object_22_get_package_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'package', u'name': u'Distribute Tanium Standard Utilities'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.PackageSpecList) +++ EVAL TEST: all([isinstance(x, taniumpy.PackageSpec) for x in response]) ok test_valid_get_object_23_get_all_clients (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'client'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.SystemStatusList) +++ EVAL TEST: all([isinstance(x, taniumpy.ClientStatus) for x in response]) ok test_valid_get_object_24_get_sensor_by_names (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'sensor', u'name': [u'Computer Name', u'Action Statuses']} +++ EVAL TEST: len(response) == 2 +++ EVAL TEST: isinstance(response, taniumpy.SensorList) +++ EVAL TEST: all([isinstance(x, taniumpy.Sensor) for x in response]) ok test_valid_get_object_25_get_all_packages (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'package'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.PackageSpecList) +++ EVAL TEST: all([isinstance(x, taniumpy.PackageSpec) for x in response]) ok test_valid_get_object_26_get_saved_question_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'saved_question', u'name': u'Installed Applications'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.SavedQuestionList) +++ EVAL TEST: all([isinstance(x, taniumpy.SavedQuestion) for x in response]) ok test_valid_get_object_27_get_all_actions (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'action'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.ActionList) +++ EVAL TEST: all([isinstance(x, taniumpy.Action) for x in response]) ok test_valid_get_object_28_get_user_by_id (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'user', u'id': 1} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.UserList) +++ EVAL TEST: all([isinstance(x, taniumpy.User) for x in response]) ok test_valid_get_object_29_get_sensor_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'sensor', u'name': u'Computer Name'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.SensorList) +++ EVAL TEST: all([isinstance(x, taniumpy.Sensor) for x in response]) ok test_valid_get_object_2_get_action_by_id (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'action', u'id': 1} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.ActionList) +++ EVAL TEST: all([isinstance(x, taniumpy.Action) for x in response]) ok test_valid_get_object_30_get_saved_action_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'saved_action', u'name': u'Distribute Tanium Standard Utilities'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.SavedActionList) +++ EVAL TEST: all([isinstance(x, taniumpy.SavedAction) for x in response]) ok test_valid_get_object_3_get_question_by_id (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'question', u'id': 1} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.QuestionList) +++ EVAL TEST: all([isinstance(x, taniumpy.Question) for x in response]) ok test_valid_get_object_4_get_saved_question_by_names (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'saved_question', u'name': [u'Installed Applications', u'Computer Name']} +++ EVAL TEST: len(response) == 2 +++ EVAL TEST: isinstance(response, taniumpy.SavedQuestionList) +++ EVAL TEST: all([isinstance(x, taniumpy.SavedQuestion) for x in response]) ok test_valid_get_object_5_get_userrole_by_id (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'userrole', u'id': 1} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.UserRoleList) +++ EVAL TEST: all([isinstance(x, taniumpy.UserRole) for x in response]) ok test_valid_get_object_6_get_all_saved_actions (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'saved_action'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.SavedActionList) +++ EVAL TEST: all([isinstance(x, taniumpy.SavedAction) for x in response]) ok test_valid_get_object_7_get_leader_clients (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'client', u'status': u'Leader'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.SystemStatusList) +++ EVAL TEST: all([isinstance(x, taniumpy.ClientStatus) for x in response]) ok test_valid_get_object_8_get_all_settings (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get_all() with kwargs {u'objtype': u'setting'} +++ EVAL TEST: len(response) >= 1 +++ EVAL TEST: isinstance(response, taniumpy.SystemSettingList) +++ EVAL TEST: all([isinstance(x, taniumpy.SystemSetting) for x in response]) ok test_valid_get_object_9_get_setting_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED GET SUCCESS Handler.get() with kwargs {u'objtype': u'setting', u'name': u'control_address'} +++ EVAL TEST: len(response) == 1 +++ EVAL TEST: isinstance(response, taniumpy.SystemSettingList) +++ EVAL TEST: all([isinstance(x, taniumpy.SystemSetting) for x in response]) ok test_valid_question_10_ask_manual_question_sensor_with_parameters_and_filter (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Folder Name Search with RegEx Match{dirname=Program Files,regex=Microsoft.*}, that regex match:.*Shared.*', u'qtype': u'manual'} 2015-09-05 00:02:15,748 INFO pytan.pollers.QuestionPoller: ID 5786: Reached Threshold of 99% (3 of 3) ok test_valid_question_11_ask_parsed_question_pick_first (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'picker': 1, u'question_text': u'computer name and ip route details', u'qtype': u'parsed'} ok test_valid_question_12__ask_manual_question_sensor_complex (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'question_filter_defs': [{u'filter': {u'operator': u'RegexMatch', u'not_flag': 0, u'value': u'.*Windows.*'}, u'name': u'Operating System'}], u'sensor_defs': [u'Computer Name', {u'filter': {u'operator': u'RegexMatch', u'not_flag': 0, u'value': u'.*Shared.*'}, u'params': {u'dirname': u'Program Files'}, u'name': u'Folder Name Search with RegEx Match', u'options': {u'ignore_case_flag': 0, u'max_age_seconds': 3600, u'value_type': u'string'}}], u'question_option_defs': {u'ignore_case_flag': 0, u'max_age_seconds': 3600, u'and_flag': 0}, u'qtype': u'_manual'} 2015-09-05 00:03:06,062 INFO pytan.pollers.QuestionPoller: ID 5787: Reached Threshold of 99% (3 of 3) ok test_valid_question_13_ask_manual_question_sensor_with_parameters_and_no_supplied_parameters (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Folder Name Search with RegEx Match', u'qtype': u'manual'} 2015-09-05 00:03:51,347 INFO pytan.pollers.QuestionPoller: ID 5789: Reached Threshold of 99% (3 of 3) ok test_valid_question_14_ask_manual_question_simple_single_sensor (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Computer Name', u'qtype': u'manual'} 2015-09-05 00:04:01,946 INFO pytan.pollers.QuestionPoller: ID 5791: Reached Threshold of 99% (3 of 3) ok test_valid_question_15_ask_manual_question_sensor_with_filter (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Operating System, that contains:Windows', u'qtype': u'manual'} 2015-09-05 00:04:12,051 INFO pytan.pollers.QuestionPoller: ID 5792: Reached Threshold of 99% (3 of 3) ok test_valid_question_16_ask_manual_question_multiple_sensors_identified_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': [u'name:Computer Name', u'name:Installed Applications'], u'qtype': u'manual'} 2015-09-05 00:04:22,387 INFO pytan.pollers.QuestionPoller: ID 5793: Reached Threshold of 99% (3 of 3) ok test_valid_question_17_ask_manual_question_sensor_with_parameters_and_filter_and_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Folder Name Search with RegEx Match{dirname=Program Files,regex=Microsoft.*}, that regex match:.*Shared.*, opt:max_data_age:3600', u'qtype': u'manual'} 2015-09-05 00:05:03,312 INFO pytan.pollers.QuestionPoller: ID 5794: Reached Threshold of 99% (3 of 3) ok test_valid_question_18_ask_manual_question_sensor_with_filter_and_3_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Operating System, that contains:Windows, opt:match_all_values, opt:ignore_case, opt:max_data_age:3600', u'qtype': u'manual'} 2015-09-05 00:05:13,392 INFO pytan.pollers.QuestionPoller: ID 5795: Reached Threshold of 99% (3 of 3) ok test_valid_question_19_ask_manual_question_complex_query2 (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'question_filters': [u'Installed Applications, that regex match:.*Google (Search|Chrome).*'], u'sensors': [u'Computer Name', u'Last Logged In User', u'Installed Applications, that regex match:.*Google (Search|Chrome).*'], u'question_options': [u'ignore_case', u'or'], u'qtype': u'manual'} 2015-09-05 00:05:23,553 INFO pytan.pollers.QuestionPoller: ID 5796: Reached Threshold of 99% (3 of 3) ok test_valid_question_1_ask_manual_question_sensor_with_parameters_and_some_supplied_parameters (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Folder Name Search with RegEx Match{dirname=Program Files,regex=Microsoft.*}', u'qtype': u'manual'} 2015-09-05 00:05:53,675 INFO pytan.pollers.QuestionPoller: ID 5797: Reached Threshold of 99% (3 of 3) ok test_valid_question_20_ask_manual_question_complex_query1 (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'question_filters': [u'Operating System, that contains:Windows', u'Operating System, that does not contain:Windows'], u'sensors': [u'Computer Name', u'Folder Name Search with RegEx Match{dirname=Program Files,regex=Microsoft.*, invalidparam=test}, that regex match:.*Shared.*, opt:max_data_age:3600'], u'question_options': [u'ignore_case', u'or'], u'qtype': u'manual'} 2015-09-05 00:06:34,308 INFO pytan.pollers.QuestionPoller: ID 5798: Reached Threshold of 99% (3 of 3) ok test_valid_question_2_ask_manual_question_multiple_sensors_with_parameters_and_some_supplied_parameters (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': [u'Folder Name Search with RegEx Match{dirname=Program Files,regex=Microsoft.*}', u'Computer Name'], u'qtype': u'manual'} 2015-09-05 00:06:59,426 INFO pytan.pollers.QuestionPoller: ID 5800: Reached Threshold of 99% (3 of 3) ok test_valid_question_3_ask_manual_question_simple_single_sensor_no_results (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'get_results': False, u'sensors': u'Computer Name', u'qtype': u'manual'} ok test_valid_question_4_ask_manual_question_simple_multiple_sensors (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': [u'Computer Name', u'Installed Applications'], u'qtype': u'manual'} 2015-09-05 00:07:04,648 INFO pytan.pollers.QuestionPoller: ID 5803: Reached Threshold of 99% (3 of 3) ok test_valid_question_5_ask_manual_question_simple_single_sensor_sse (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sse': True, u'sensors': u'Computer Name', u'qtype': u'manual'} 2015-09-05 00:07:20,431 INFO pytan.pollers.QuestionPoller: ID 5804: Reached Threshold of 99% (3 of 3) ok test_valid_question_6_ask_manual_question_sensor_without_parameters_and_supplied_parameters (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Computer Name{fake=Dweedle}', u'qtype': u'manual'} 2015-09-05 00:08:00,569 INFO pytan.pollers.QuestionPoller: ID 5805: Reached Threshold of 99% (3 of 3) ok test_valid_question_7_ask_parsed_question_pick_first_no_results (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'get_results': False, u'picker': 1, u'question_text': u'computer name and ip route details', u'qtype': u'parsed'} ok test_valid_question_8_ask_manual_question_sensor_with_filter_and_2_options (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION SUCCESS Handler.ask() with kwargs {u'sensors': u'Operating System, that contains:Windows, opt:max_data_age:3600, opt:value_type:string', u'qtype': u'manual'} 2015-09-05 00:08:05,775 INFO pytan.pollers.QuestionPoller: ID 5807: Reached Threshold of 99% (3 of 3) ok test_valid_question_9_ask_parsed_question_pick_first_sse (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED QUESTION FAILURE Handler.ask() with kwargs {u'picker': 1, u'sse': True, u'question_text': u'computer name and ip route details', u'qtype': u'parsed'} ok test_valid_saved_question_1_ask_saved_question_refresh_data (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED SAVED QUESTION SUCCESS Handler.ask() with kwargs {u'refresh_data': True, u'qtype': u'saved', u'name': u'Installed Applications'} 2015-09-05 00:08:16,332 INFO pytan.pollers.QuestionPoller: ID 5808: Reached Threshold of 99% (3 of 3) ok test_valid_saved_question_2_ask_saved_question_by_name_sse (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED SAVED QUESTION SUCCESS Handler.ask() with kwargs {u'sse': True, u'qtype': u'saved', u'name': u'Installed Applications'} ok test_valid_saved_question_3_ask_saved_question_by_name (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED SAVED QUESTION SUCCESS Handler.ask() with kwargs {u'qtype': u'saved', u'name': u'Installed Applications'} ok test_valid_saved_question_4_ask_saved_question_by_name_in_list (test_pytan_valid_server_tests.ValidServerTests) ... +++ TESTING EXPECTED SAVED QUESTION SUCCESS Handler.ask() with kwargs {u'qtype': u'saved', u'name': [u'Installed Applications']} ok **************************************************************************************************** 2015-09-05T00:08:22: PyTan v'2.1.0' against Tanium v'6.2.314.3321' -- Valid Tests Finished ---------------------------------------------------------------------- Ran 132 tests in 540.839s OK