def test_generate_entities_simple(self): input_data = { 'executable': { 'name': 'chrome.dll' }, 'sources': ['c:\\file'], 'objects': { "file.obj": { "namespace::function": { "size": 5.0, "contribs": [0, [1, 5.0]] } } } } entities = convert_code_tally._generate_entities(input_data) self.assertEqual(2, len(entities)) for entity in entities: if entity.name == 'c:': self.check_entity(entity, '', 5.0, True) elif entity.name == 'file': self.check_entity(entity, 'c:', 5.0, False) else: self.fail('Unknown entity, %s' % str(entity))
def test_generate_entities_complex(self): entities = convert_code_tally._generate_entities(INPUT_JSON) self.assertEqual(5, len(entities)) for entity in entities: if entity.name == 'c:': self.check_entity(entity, '', 130.0, True) elif entity.name == 'file': self.check_entity(entity, 'c:', 7.0, False) elif entity.name == 'folder': self.check_entity(entity, 'c:', 123.0, True) elif entity.name == 'file2': self.check_entity(entity, 'c:\\folder', 115.0, False) elif entity.name == 'file3': self.check_entity(entity, 'c:\\folder', 8.0, False) else: self.fail('Unknown entity, %s' % str(entity))
def test_generate_entities_simple(self): input_data = { 'executable': {'name': 'chrome.dll'}, 'sources': ['c:\\file'], 'objects': {"file.obj": {"namespace::function": { "size": 5.0, "contribs": [0, [1, 5.0]]}}}} entities = convert_code_tally._generate_entities(input_data) self.assertEqual(2, len(entities)) for entity in entities: if entity.name == 'c:': self.check_entity(entity, '', 5.0, True) elif entity.name == 'file': self.check_entity(entity, 'c:', 5.0, False) else: self.fail('Unknown entity, %s' % str(entity))
def test_output_converted_json(self): entities = convert_code_tally._generate_entities(INPUT_JSON) class Options(object): def __init__(self): self.master_id = 'master_bot' self.builder_name = 'builder_3' self.build_number = '12345' self.revision = '123' options = Options() name = 'chrome.dll' output_file = StringIO.StringIO() convert_code_tally._output_converted_json( output_file, options, name, entities) output_json = json.loads(output_file.getvalue()) self.assertEqual(options.master_id, output_json['master.id']) self.assertEqual(options.builder_name, output_json['buildername']) self.assertEqual(options.build_number, output_json['buildnumber']) self.assertEqual(options.revision, output_json['revision']) self.assertEqual(name, output_json['name']) entities = output_json['entities'] self.assertEqual(5, len(entities)) for entity in entities: if entity['name'] == 'c:': self.check_entity_dump(entity, '', 130.0, True) elif entity['name'] == 'file': self.check_entity_dump(entity, 'c:', 7.0, False) elif entity['name'] == 'folder': self.check_entity_dump(entity, 'c:', 123.0, True) elif entity['name'] == 'file2': self.check_entity_dump(entity, 'c:\\folder', 115.0, False) elif entity['name'] == 'file3': self.check_entity_dump(entity, 'c:\\folder', 8.0, False) else: self.fail('Unknown entity, %s' % str(entity))
def test_output_converted_json(self): entities = convert_code_tally._generate_entities(INPUT_JSON) class Options(object): def __init__(self): self.master_id = 'master_bot' self.builder_name = 'builder_3' self.build_number = '12345' self.revision = '123' options = Options() name = 'chrome.dll' output_file = StringIO.StringIO() convert_code_tally._output_converted_json(output_file, options, name, entities) output_json = json.loads(output_file.getvalue()) self.assertEqual(options.master_id, output_json['master.id']) self.assertEqual(options.builder_name, output_json['buildername']) self.assertEqual(options.build_number, output_json['buildnumber']) self.assertEqual(options.revision, output_json['revision']) self.assertEqual(name, output_json['name']) entities = output_json['entities'] self.assertEqual(5, len(entities)) for entity in entities: if entity['name'] == 'c:': self.check_entity_dump(entity, '', 130.0, True) elif entity['name'] == 'file': self.check_entity_dump(entity, 'c:', 7.0, False) elif entity['name'] == 'folder': self.check_entity_dump(entity, 'c:', 123.0, True) elif entity['name'] == 'file2': self.check_entity_dump(entity, 'c:\\folder', 115.0, False) elif entity['name'] == 'file3': self.check_entity_dump(entity, 'c:\\folder', 8.0, False) else: self.fail('Unknown entity, %s' % str(entity))