def test_snapshot_full_entities(self): """Test snapshotting an entity whose data are all entities.""" snapshot = JsonSnapshot(title='Test Graph') entity_a = snapshot.new_entity(name='Entity Name') expect_a = {'_id': 1, 'name': 'Entity Name'} entity_b = snapshot.new_entity(data=1234, type='scalar') expect_b = {'_id': 2, 'data': 1234, 'type': 'scalar'} entity_c = snapshot.new_entity(data=3.14, type='real') expect_c = {'_id': 3, 'data': 3.14, 'type': 'real'} snapshot.edge_builder.make(entity_a, 'A to B', entity_b) expect_ab = {'_to': entity_b.id, 'label': 'A to B'} snapshot.edge_builder.make(entity_a, 'A to C', entity_c) expect_ac = {'_to': entity_c.id, 'label': 'A to C'} expect_a['_edges'] = [expect_ab, expect_ac] expect = { '_subject_id': 1, '_type': 'JsonSnapshot', '_entities': [expect_a, expect_b, expect_c], 'title': 'Test Graph' } json_obj = snapshot.to_json_object() self.assertItemsEqual(expect, json_obj)
def test_snapshot_full_entities(self): """Test snapshotting an entity whose data are all entities.""" snapshot = JsonSnapshot(title='Test Graph') entity_a = snapshot.new_entity(name='Entity Name') expect_a = {'_id': 1, 'name': 'Entity Name'} entity_b = snapshot.new_entity(data=1234, type='scalar') expect_b = {'_id': 2, 'data': 1234, 'type': 'scalar'} entity_c = snapshot.new_entity(data=3.14, type='real') expect_c = {'_id': 3, 'data': 3.14, 'type': 'real'} snapshot.edge_builder.make(entity_a, 'A to B', entity_b) expect_ab = {'_to': entity_b.id, 'label': 'A to B'} snapshot.edge_builder.make(entity_a, 'A to C', entity_c) expect_ac = {'_to': entity_c.id, 'label': 'A to C'} expect_a['_edges'] = [expect_ab, expect_ac] expect = {'_subject_id': 1, '_type': 'JsonSnapshot', '_entities': [expect_a, expect_b, expect_c], 'title': 'Test Graph'} json_obj = snapshot.to_json_object() self.assertItemsEqual(expect, json_obj)
def test_snapshot_edge_builder(self): """Test focused on snapshot.edge_builder property.""" snapshot = JsonSnapshot(title='Test Snapshot') entity_a = snapshot.new_entity(name='Entity A') entity_b = snapshot.new_entity(name='Entity B') expect_a = {'_id': 1, 'name': 'Entity A'} expect_edges = [] snapshot.edge_builder.make_mechanism(entity_a, 'B', entity_b) expect_edges.append({'_to': 2, 'label': 'B', 'relation': 'MECHANISM'}) snapshot.edge_builder.make_control(entity_a, 'field', -321) expect_edges.append({ '_value': -321, 'label': 'field', 'relation': 'CONTROL' }) expect = { '_subject_id': 1, '_type': 'JsonSnapshot', '_entities': [expect_a], 'title': 'Test Snapshot' } json_obj = snapshot.to_json_object() self.assertItemsEqual(expect, json_obj)
def test_snapshot_fields(self): """Test snapshotting an entity whose data are simple values.""" snapshot = JsonSnapshot(title='Test Snapshot') entity_a = snapshot.new_entity(name='Entity Name') expect_a = {'_id': 1, 'name': 'Entity Name'} expect_edges = [] snapshot.edge_builder.make(entity_a, 'scalar', 1234) expect_edges.append({'_value': 1234, 'label': 'scalar'}) snapshot.edge_builder.make(entity_a, 'real', 3.14) expect_edges.append({'_value': 3.14, 'label': 'real'}) expect = {'_subject_id': 1, '_type': 'JsonSnapshot', '_entities': [expect_a], 'title': 'Test Snapshot'} json_obj = snapshot.to_json_object() self.assertItemsEqual(expect, json_obj)
def test_snapshot_edge_builder(self): """Test focused on snapshot.edge_builder property.""" snapshot = JsonSnapshot(title='Test Snapshot') entity_a = snapshot.new_entity(name='Entity A') entity_b = snapshot.new_entity(name='Entity B') expect_a = {'_id': 1, 'name': 'Entity A'} expect_edges = [] snapshot.edge_builder.make_mechanism(entity_a, 'B', entity_b) expect_edges.append({'_to': 2, 'label': 'B', 'relation': 'MECHANISM'}) snapshot.edge_builder.make_control(entity_a, 'field', -321) expect_edges.append({'_value': -321, 'label': 'field', 'relation': 'CONTROL'}) expect = {'_subject_id': 1, '_type': 'JsonSnapshot', '_entities': [expect_a], 'title': 'Test Snapshot'} json_obj = snapshot.to_json_object() self.assertItemsEqual(expect, json_obj)