Ejemplo n.º 1
0
    def testReadWriteRetrieveUsers(self):
        u1 = UserData.onLogin("user1", "User One", "*****@*****.**",
                              "testing")
        u2 = UserData.onLogin("user2", "User Two", "*****@*****.**",
                              "testing")
        self.assertNotEquals(u1.getId(), u2.getId())

        ctx = UserContext("WithUsers", [u1.getId(), u2.getId()], {
            "u1Name": u1.getUserName(),
            "u2Name": u2.getUserName()
        })

        self.assertReadWrite(ctx)

        #If read/write succeeded, check the indexes
        self.assertEquals([ctx], UserContext.objects(users=u1.getId()))
        self.assertEquals([ctx], UserContext.objects(users=u2.getId()))
        self.assertEquals([], UserContext.objects(users='notAPerson'))
        self.assertEquals([ctx], UserContext.objects(name='WithUsers'))
        self.assertEquals([], UserContext.objects(name='notAContext'))

        idList = sorted([u1.getId(), u2.getId()])

        #Test users changes that shouldn't affect state
        copy = UserContext.read(ctx.getId())
        self.assertSerialEquals(ctx, copy)
        ctx.addUser(u1.getId())
        ctx.removeUser("user3")
        self.assertSerialEquals(ctx, copy)
        self.assertEquals(idList, copy.getUsers())

        #Check user DB read
        users = ctx.readDBUsers()
        self.assertEquals(idList, sorted([u.getId() for u in users]))

        #What about empty users (via removal and then when hitting the DB)
        ctx.removeUser(u1.getId())
        ctx.removeUser(u2.getId())
        self.assertEquals([], ctx.getUsers())
        self.assertEquals([], ctx.readDBUsers())
 def testReadWriteRetrieveUsers(self):
     u1 = UserData.onLogin("user1", "User One", "*****@*****.**", "testing")
     u2 = UserData.onLogin("user2", "User Two", "*****@*****.**", "testing")
     self.assertNotEquals(u1.getId(), u2.getId())
     
     ctx = UserContext(
         "WithUsers", 
         [u1.getId(), u2.getId()],
         {"u1Name": u1.getUserName(), "u2Name": u2.getUserName()}
     )
     
     self.assertReadWrite(ctx)
     
     #If read/write succeeded, check the indexes
     self.assertEquals([ctx], UserContext.objects(users=u1.getId()))
     self.assertEquals([ctx], UserContext.objects(users=u2.getId()))
     self.assertEquals([],    UserContext.objects(users='notAPerson'))
     self.assertEquals([ctx], UserContext.objects(name='WithUsers'))
     self.assertEquals([],    UserContext.objects(name='notAContext'))
     
     idList = sorted([u1.getId(), u2.getId()])
     
     #Test users changes that shouldn't affect state
     copy = UserContext.read(ctx.getId())
     self.assertSerialEquals(ctx, copy)
     ctx.addUser(u1.getId())
     ctx.removeUser("user3")
     self.assertSerialEquals(ctx, copy)
     self.assertEquals(idList, copy.getUsers())
     
     #Check user DB read
     users = ctx.readDBUsers()
     self.assertEquals(idList, sorted([u.getId() for u in users]))
     
     #What about empty users (via removal and then when hitting the DB)
     ctx.removeUser(u1.getId())
     ctx.removeUser(u2.getId())
     self.assertEquals([], ctx.getUsers())
     self.assertEquals([], ctx.readDBUsers())