Пример #1
0
    def test_beforeDelete(self):
        User.beforeDelete = lambda user: False
        u = yield User().save()
        oldid = u.id
        yield u.delete()
        result = yield User.find(oldid)
        self.assertEqual(result, u)

        User.beforeDelete = lambda user: True
        yield u.delete()
        result = yield User.find(oldid)
        self.assertEqual(result, None)

        # restore user's beforeDelete
        User.beforeDelete = DBObject.beforeDelete
Пример #2
0
 def test_find(self):
     ids = []
     for _ in range(3):
         user = yield User(first_name="blah").save()
         ids.append(user.id)
     yield User(first_name="not blah").save()
     results = yield User.find(where=["first_name = ?", "blah"])
     resultids = [result.id for result in results]
     self.assertEqual(ids, resultids)
Пример #3
0
    def test_afterInit(self):
        def afterInit(user):
            user.blah = "foobar"
        User.afterInit = afterInit
        u = yield User.find(limit=1)
        self.assertTrue(hasattr(u, 'blah'))
        self.assertEqual(u.blah, 'foobar')

        # restore user's afterInit
        User.afterInit = DBObject.afterInit
Пример #4
0
    def test_update(self):
        args = {'first_name': "a", "last_name": "b", "age": 10}
        u = yield User(**args).save()

        args = {'first_name': "b", "last_name": "a", "age": 100}
        for key, value in args.items():
            setattr(u, key, value)
        yield u.save()

        u = yield User.find(u.id)
        for key, value in args.items():
            self.assertEqual(getattr(u, key), value)
Пример #5
0
    def test_insert(self):
        tablename = User.tablename()
        args = {'first_name': "test", "last_name": "foo", "age": 91}
        id = yield self.dbconfig.insert(tablename, args)

        where = ['first_name = ? AND last_name = ? AND age = ?']
        where = where + ["test", "foo", 91]
        users = yield User.find(where=where)

        self.assertEqual(len(users), 1)
        self.assertEqual(users[0].id, id)
        for key, value in args.items():
            self.assertEqual(value, getattr(users[0], key))
Пример #6
0
    def test_insert(self):
        tablename = User.tablename()
        args = {'first_name': "test", "last_name": "foo", "age": 91}
        id = yield self.dbconfig.insert(tablename, args)

        where = ['first_name = ? AND last_name = ? AND age = ?']
        where = where + ["test", "foo", 91]
        users = yield User.find(where=where)

        self.assertEqual(len(users), 1)
        self.assertEqual(users[0].id, id)
        for key, value in args.items():
            self.assertEqual(value, getattr(users[0], key))
Пример #7
0
    def test_update_obj(self):
        args = {'first_name': "test_insert_obj", "last_name": "foo", "age": 91}
        user = yield User(**args).save()

        args = {'first_name': "test_insert_obj_foo", "last_name": "bar", "age": 191}
        for key, value in args.items():
            setattr(user, key, value)

        yield self.dbconfig.updateObj(user)
        user = yield User.find(user.id)

        for key, value in args.items():
            self.assertEqual(value, getattr(user, key))
Пример #8
0
    def test_insert_obj(self):
        args = {'first_name': "test_insert_obj", "last_name": "foo", "age": 91}
        user = User(**args)

        saved = yield self.dbconfig.insertObj(user)
        user = yield User.find(where=['first_name = ?', "test_insert_obj"], limit=1)
        # ensure that id was set on save
        self.assertEqual(saved.id, user.id)
        # and all values are still the same
        self.assertEqual(saved, user)

        for key, value in args.items():
            self.assertEqual(value, getattr(user, key))
Пример #9
0
    def test_insert_many(self):
        tablename = User.tablename()

        args = []
        for counter in range(10):
            args.append({'first_name': "test_insert_many", "last_name": "foo", "age": counter})
        yield self.dbconfig.insertMany(tablename, args)

        users = yield User.find(where=['first_name = ?', "test_insert_many"], orderby="age ASC")

        for counter in range(10):
            for key, value in args[counter].items():
                self.assertEqual(value, getattr(users[counter], key))
Пример #10
0
    def test_loadRelations(self):
        user = yield User.find(limit=1)
        all = yield user.loadRelations()

        pictures = yield user.pictures.get()
        self.assertEqual(pictures, all['pictures'])

        avatar = yield user.avatar.get()
        self.assertEqual(avatar, all['avatar'])

        suball = yield user.loadRelations('pictures')
        self.assertTrue('avatar' not in suball)
        self.assertEqual(pictures, suball['pictures'])
Пример #11
0
    def test_clear_has_many(self):
        pics = [self.picture]
        for _ in range(3):
            pic = yield Picture(name="a pic").save()
            pics.append(pic)

        yield self.user.pictures.set(pics)
        yield self.user.pictures.clear()

        userpics = yield self.user.pictures.get()
        self.assertEqual(userpics, [])

        # even go so far as to refetch user
        yield User.find(self.user.id)
        userpics = yield self.user.pictures.get()
        self.assertEqual(userpics, [])

        # picture records should be updated
        pics = yield Picture.find(where=["user_id=?", self.user.id])
        self.assertEqual(pics, [])

        # but still exist
        pics = yield Picture.all()
        self.assertEqual(len(pics), 4)
Пример #12
0
    def test_clear_has_many(self):
        pics = [self.picture]
        for _ in range(3):
            pic = yield Picture(name="a pic").save()
            pics.append(pic)

        yield self.user.pictures.set(pics)
        yield self.user.pictures.clear()

        userpics = yield self.user.pictures.get()
        self.assertEqual(userpics, [])

        # even go so far as to refetch user
        yield User.find(self.user.id)
        userpics = yield self.user.pictures.get()
        self.assertEqual(userpics, [])

        # picture records should be updated
        pics = yield Picture.find(where=["user_id=?", self.user.id])
        self.assertEqual(pics, [])

        # but still exist
        pics = yield Picture.all()
        self.assertEqual(len(pics), 4)
Пример #13
0
 def test_delete(self):
     u = yield User().save()
     oldid = u.id
     yield u.delete()
     result = yield User.find(oldid)
     self.assertEqual(result, None)