Esempio n. 1
0
def data_tree(handler, data):
    "given a data tree, will return a html-based representation"

    modules = []
    for fragment in data:
        cur_path = dtmm_utils.rpart(fragment['path'])
        module_data = dtmm_utils.get_live_module_data(handler, fragment)

        if module_data['Type'].lower() == 'hardware':
            hardware_data = dtmm_utils.get_live_hardware_data(
                handler, fragment)

            hardware_data = {
                'ID': hex(hardware_data['ID']),
                'Version': hex(hardware_data['Version']),
                'Manufacturer': hex(hardware_data['Manufacturer'])
            }
        else:
            hardware_data = None

        modules.append({
            'cur_path': cur_path,
            'module_data': module_data,
            'hardware_data': hardware_data
        })

    return handler.dorender(
        'data_tree.html',
        {
            'modules': modules
        }, write=False
    )
    def test_get_live_hardware_data(self, get_url_content):
        get_url_content.return_value = {
            'content': base64.b64encode('''
                HARDWARE = {
                    ID = 0x74fa4cae,
                    Version = 0x07c2,
                    Manufacturer = 0x21544948 -- HAROLD_IT
                };''')
        }

        import dtmm_utils
        end_data = dtmm_utils.get_live_hardware_data(
            None, {"url": "http://mock.url/hardware_file"})
        self.assertEqual(
            end_data,
            {
                'Version': 1986,
                'ID': 1962560686,
                'Manufacturer': 559171912
            }
        )