Example #1
0
    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")
Example #2
0
    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"]
Example #3
0
 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)
Example #4
0
    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"]
Example #5
0
    #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)