Example #1
0
    def test_edge_label_long_type_names(self):
        x = type('MyClass', (), {'__module__': 'mymodule'})()
        d = {x: 1}

        self.assertRegex(
            objgraph._edge_label(d, 1, shortnames=False),
            ' [label="mymodule\.MyClass\\n<mymodule\.MyClass object at .*"]')
Example #2
0
    def test_edge_label_long_type_names(self):
        x = type('MyClass', (), {'__module__': 'mymodule'})()
        d = {x: 1}

        self.assertRegex(
            objgraph._edge_label(d, 1, shortnames=False),
            ' [label="mymodule\.MyClass\\n<mymodule\.MyClass object at .*"]')
Example #3
0
 def test_edge_label_unbound_method(self):
     class MyClass(object):
         def a_method(self):
             pass
     self.assertEqual(' [label="__func__",weight=10]',
                      objgraph._edge_label(MyClass.a_method,
                                           MyClass.a_method.__func__))
Example #4
0
 def test_edge_label_unbound_method(self):
     class MyClass(object):
         def a_method(self):
             pass
     self.assertEqual(' [label="__func__",weight=10]',
                      objgraph._edge_label(MyClass.a_method,
                                           MyClass.a_method.__func__))
Example #5
0
def get_graph_text_repr(graph,
                        garbage_ids,
                        extra_info=False,
                        refcounts=False,
                        shortnames=True):
    node_names = {}
    for edge_data in graph:
        if edge_data['target'] not in garbage_ids or edge_data[
                'source'] not in garbage_ids:
            continue
        obj_id = edge_data['source']
        target = garbage_ids[obj_id]
        for obj_id in (edge_data['source'], edge_data['target']):
            obj = garbage_ids[obj_id]
            node_names[obj_id] = {
                'id':
                obj_id,
                'label':
                objgraph._obj_label(obj, extra_info, refcounts, shortnames)
            }

        source = garbage_ids[edge_data['target']]
        edge_data['label'] = objgraph._edge_label(target, source)

    return {'nodes': node_names, 'edges': graph}
def get_graph_text_repr(graph, garbage_ids, extra_info = False, refcounts = False, shortnames = True):
    node_names = {}
    for edge_data in graph:
        if edge_data['target'] not in garbage_ids or edge_data['source'] not in garbage_ids:
            continue
        obj_id = edge_data['source']
        target = garbage_ids[obj_id]
        for obj_id in (edge_data['source'], edge_data['target']):
            obj = garbage_ids[obj_id]
            node_names[obj_id] = {'id': obj_id,
             'label': objgraph._obj_label(obj, extra_info, refcounts, shortnames)}

        source = garbage_ids[edge_data['target']]
        edge_data['label'] = objgraph._edge_label(target, source)

    return {'nodes': node_names,
     'edges': graph}
Example #7
0
 def test_edge_label_frame_locals(self):
     frame = sys._getframe()
     self.assertEqual(' [label="f_locals",weight=10]',
                      objgraph._edge_label(frame, frame.f_locals))