def test_implicit_schema_copy(self): from cocktail.schema import Schema, Adapter user_schema = get_user_schema() adapter = Adapter() self.assertTrue(adapter.implicit_copy) # Exporting schemas form_schema = Schema() adapter.export_schema(user_schema, form_schema) self.assertEqual( len(list(user_schema.members().keys())), len(list(form_schema.members().keys())) ) self.assertEqual( set(user_schema.members().keys()), set(form_schema.members().keys()) ) # Importing schemas user_schema_2 = Schema() adapter.import_schema(form_schema, user_schema_2) self.assertEqual( list(form_schema.members().keys()), list(user_schema_2.members().keys()) )
def test_exclude_undefined_member(self): from cocktail.schema import Adapter, Schema adapter = Adapter() adapter.exclude("fictitious_member") user_schema = get_user_schema() form_schema = Schema() adapter.export_schema(user_schema, form_schema) self.assertFalse("fictitious_member" in form_schema.members())
def test_disabled_implicit_schema_copy(self): from cocktail.schema import Schema, Adapter user_schema = get_user_schema() form_schema = Schema() adapter = Adapter() adapter.implicit_copy = False adapter.export_schema(user_schema, form_schema) self.assertFalse(form_schema.members())
def test_simple_schema_copy(self): from cocktail.schema import Adapter, Schema, Copy adapter = Adapter() adapter.implicit_copy = False adapter.copy("id") adapter.copy("name") user_schema = get_user_schema() form_schema = Schema() adapter.export_schema(user_schema, form_schema) self.assertEqual(len(form_schema.members()), 2) self.assertEqual( set(form_schema.members().keys()), set(["id", "name"]) )