def testModelFileIO(self): schema = Schema() schema.addEntity('A') schema.addEntity('B') schema.addEntity('C') schema.addRelationship('AB', ('A', Schema.ONE), ('B', Schema.MANY)) schema.addRelationship('BC', ('B', Schema.MANY), ('C', Schema.MANY)) schema.addAttribute('A', 'X', Attribute.INTEGER) schema.addAttribute('B', 'Y', Attribute.INTEGER) schema.addAttribute('C', 'Z', Attribute.INTEGER) schema.addAttribute('AB', 'XY1', Attribute.INTEGER) schema.addAttribute('AB', 'XY2', Attribute.INTEGER) schema.addAttribute('BC', 'YZ', Attribute.INTEGER) schema.toFile('schema.json') model = Model(schema, []) model.toFile('model.json') loadedModel = Model.fromFile('schema.json', 'model.json') self.assertEqual(model, loadedModel) model = Model(schema, ['[A, AB, B].Y -> [A].X']) model.toFile('model.json') loadedModel = Model.fromFile('schema.json', 'model.json') self.assertEqual(model, loadedModel) model = Model( schema, ['[A, AB, B].Y -> [A].X', '[AB, B, BC, C].Z -> [AB].exists']) model.toFile('model.json') loadedModel = Model.fromFile('schema.json', 'model.json') self.assertEqual(model, loadedModel)
def testSchemaFileIO(self): schema = Schema() schema.addEntity('A') schema.addEntity('B') schema.addEntity('C') schema.addRelationship('AB', ('A', Schema.ONE), ('B', Schema.MANY)) schema.addRelationship('BC', ('B', Schema.MANY), ('C', Schema.MANY)) schema.addAttribute('A', 'X', Attribute.INTEGER) schema.addAttribute('B', 'Y', Attribute.INTEGER) schema.addAttribute('C', 'Z', Attribute.INTEGER) schema.addAttribute('AB', 'XY1', Attribute.INTEGER) schema.addAttribute('AB', 'XY2', Attribute.INTEGER) schema.addAttribute('BC', 'YZ', Attribute.INTEGER) schema.toFile('schema.json') loadedSchema = Schema.fromFile('schema.json') self.assertEqual(schema, loadedSchema)