def test_bind_custom(self): Dashboard.add_dashboard([User]) from mf.renderer import TextRenderer from user import CustomStatus assert isinstance(User.get_renderer("custom"), TextRenderer) == True request = [("User[custom]", "one")] user = User() user.bind_form(request) print "custom= " + str(user) assert user["custom"] == CustomStatus.unserialize("one")
def test_bind_multi_array3(self): Dashboard.add_dashboard([User]) group = connection.Group() group["name"] = "sampleGroup" group["creation_date"] = datetime.utcnow() group.save() request = [("User[multi2][0][group]", str(group["_id"])), ("User[multi2][0][role]", "role1")] renderer = User.get_renderer("multi2.group") renderer.set_reference(Group) user = User() user.bind_form(sorted(request)) assert len(user["multi2"]) == 1 assert user["multi2"][0]["role"] == "role1" assert user["multi2"][0]["group"] == group["_id"]
def test_objectdbref(self): Dashboard.add_dashboard([User]) group = connection.Group() group["name"] = "sampleGroup" group["creation_date"] = datetime.utcnow() group.save() request = [("User[groups][0]", str(group["_id"]))] user = connection.User() user["name"] = "sampleUser" user["email"] = "*****@*****.**" user["groupRef"] = group["_id"] renderer = User.get_renderer("groupRef") assert renderer.is_object_id == True renderer.set_reference(Group) user.save() assert group["_id"] == user["groupRef"] assert isinstance(user["groupRef"], ObjectId)
def test_bind_multi_array4(self): Dashboard.add_dashboard([User]) group = connection.Group() group["name"] = "sampleGroup" group["creation_date"] = datetime.utcnow() group.save() request = [("User[multi2][0][group]", str(group["_id"])), ("User[multi2][0][role]", "role1")] renderer = SimpleReferenceRenderer(User, "group", Group, "multi2") renderer.is_object_id = True # renderer = User.get_renderer("multi2.group") # renderer.set_reference(Group) user = User() user.bind_form(sorted(request)) print str(User.get_renderer("multi2.group").__class__.__name__) assert len(user["multi2"]) == 1 assert user["multi2"][0]["role"] == "role1" assert user["multi2"][0]["group"] == group["_id"]
#u2 = {"name": "Tommy", "admin" : True, "age" : 40, "email" : "nomail", "creation_date" : datetime.utcnow(), "options" : { 'tags': 'cool' , 'categories': '' }, "array" : [ 'three', 'four'] } #db.users.insert(u2) #u3 = {"name": "Mike", "admin" : True, "age" : 50, "email" : "dummy", "creation_date" : datetime.utcnow(), "options" : { 'tags': 'cool' , 'categories': 'any' }, "array" : [ 'three', 'four'] } #db.users.insert(u3) #g1 = {"name": "sample", "creation_date" : datetime.utcnow() } #db.groups.insert(g1) Dashboard.set_connection(connection) Dashboard.add_dashboard([User, Group, SuperGroup],config,'/test') renderer = mf.renderer.TextChoiceRenderer(User,'email','') renderer.limit([ 'nomail', '*****@*****.**', 'sample@nomail' ]) renderer.add_extra_control('<button class="btn btn-info">Fake button</button>') renderer = User.get_renderer('groupRef') renderer.set_reference(Group) groupid_renderer = mf.renderer.SimpleReferenceRenderer(User,'groupid',Group) # automatically serialize bson ObjectId to Mongo extended JSON json_renderer = JSON() def objectId_adapter(obj, request): return json_util.default(obj) def datetime_adapter(obj, request): return json_util.default(obj) json_renderer.add_adapter(ObjectId, objectId_adapter) json_renderer.add_adapter(datetime, datetime_adapter) config.add_renderer('json', json_renderer)