def testShowForm(self): self.mox.StubOutWithMock(base.PageHandler, 'ShowRaw') self.mox.StubOutWithMock(entity, '_GetGeometriesDescription') layer = model.Layer(name='a', world='earth') layer.put() entity1 = model.Entity(layer=layer, name='b', field_c='d') entity1.put().id() entity2 = model.Entity(layer=layer, name='e', field_f='g') entity2.put().id() geometries1 = [{'type': 'x', 'value': 'y'}, {'type': 'z', 'u': 'v', 'w': 5}] geometries2 = [] handler = entity.EntityHandler() entity._GetGeometriesDescription(mox.IgnoreArg()).AndReturn( geometries1) entity._GetGeometriesDescription(mox.IgnoreArg()).AndReturn( geometries2) self.mox.ReplayAll() result = handler.ShowForm(layer) self.assertEqual(result.keys(), ['entities']) self.assertEqual(len(result['entities']), 2) self.assertEqual(result['entities'][0].geometry_objects, [{ 'type': 'x', 'fields': json.dumps({'value': 'y'}) }, { 'type': 'z', 'fields': json.dumps({'u': 'v', 'w': 5}) }]) self.assertEqual(result['entities'][1].geometry_objects, None)
def testGetGeometriesDescription(self): layer = model.Layer(name='a', world='earth') layer.put() resource = model.Resource(layer=layer, type='model', external_url='/there', filename='test') resource_id = resource.put().id() entity_object = model.Entity(layer=layer, name='b') entity_object.put() polygon = model.Polygon(outer_points=[db.GeoPt(12, 34), db.GeoPt(56, 78)], parent=entity_object) polygon_id = polygon.put().id() model_object = model.Model(model=resource, location=db.GeoPt(90, 17), altitude=35.0, altitude_mode='absolute', parent=entity_object) model_id = model_object.put().id() entity_object.geometries = [polygon_id, model_id] entity_object.put().id() self.assertEqual(entity._GetGeometriesDescription(entity_object), [ {'type': 'Polygon', 'outer_points': [[12.0, 34.0], [56.0, 78.0]], 'extrude': None, 'altitude_mode': None, 'inner_altitudes': [], 'outer_altitudes': [], 'inner_points': [], 'tessellate': None}, {'type': 'Model', 'model': resource_id, 'location': [90.0, 17.0], 'resource_alias_sources': [], 'resource_alias_targets': [], 'tilt': None, 'heading': None, 'roll': None, 'altitude': 35.0, 'altitude_mode': u'absolute', 'scale_x': None, 'scale_y': None, 'scale_z': None} ])
def testShowRaw(self): self.mox.StubOutWithMock(base.PageHandler, 'ShowRaw') self.mox.StubOutWithMock(entity, '_GetGeometriesDescription') layer = model.Layer(name='a', world='earth') layer.put() entity_object = model.Entity(layer=layer, name='b', field_c='d') entity_id = entity_object.put().id() dummy_geometries = object() handler = entity.EntityHandler() handler.request = {'id': str(entity_id)} entity._GetGeometriesDescription(mox.IgnoreArg()).AndReturn( dummy_geometries) base.PageHandler.ShowRaw(handler, layer, field_c='d', geometries=dummy_geometries) self.mox.ReplayAll() handler.ShowRaw(layer)