Example #1
0
    def test_refresh(self):
        dateklass = Registry.getDBAPIClass("Date")
        args = {'first_name': "a", "last_name": "b", "age": 10}
        u = yield User(**args).save()

        # mess up the props, then refresh
        u.first_name = "something different"
        u.last_name = "another thing"
        yield u.refresh()
        
        for key, value in args.items():
            self.assertEqual(getattr(u, key), value)
Example #2
0
    def test_refresh(self):
        dateklass = Registry.getDBAPIClass("Date")
        args = {'first_name': "a", "last_name": "b", "age": 10}
        u = yield User(**args).save()

        # mess up the props, then refresh
        u.first_name = "something different"
        u.last_name = "another thing"
        yield u.refresh()
        
        for key, value in args.items():
            self.assertEqual(getattr(u, key), value)
Example #3
0
    def test_update(self):
        dateklass = Registry.getDBAPIClass("Date")
        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)
Example #4
0
    def test_update(self):
        dateklass = Registry.getDBAPIClass("Date")
        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)
Example #5
0
        def sendMessage(subject, body, sender_id, receiver_id):
            now = datetime.now()

            Timestamp = Registry.getDBAPIClass("Timestamp")
            # save message to datastore
            message = Message(
                subject=subject,
                body=body,
                sender_id=sender_id,
                receiver_id=receiver_id,
                sent_at=Timestamp(now.year, now.month, now.day, now.hour, now.minute, now.second)
            )
            message.save()

            # js client is subscribed to topic with name inbox_user_<user_id> so it will publish to their list
            self.publish('com.vik.inbox_user_' + str(message.receiver_id), formatMessage(message))
Example #6
0
    def test_creation(self):
        # test creating blank object 
        u = yield User().save()
        self.assertTrue(type(u.id) == int or type(u.id) == long)

        # test creating object with props that don't correspond to columns
        u = yield User(a_fake_column="blech").save()
        self.assertTrue(type(u.id) == int or type(u.id) == long)        

        # Test table doesn't exist
        f = FakeObject(blah = "something")
        self.failUnlessFailure(f.save(), ImaginaryTableError)

        dateklass = Registry.getDBAPIClass("Date")
        args = {'first_name': "a", "last_name": "b", "age": 10, "dob": dateklass(2000, 1, 1)}
        u = yield User(**args).save()
        for key, value in args.items():
            self.assertEqual(getattr(u, key), value)
Example #7
0
    def test_creation(self):
        # test creating blank object 
        u = yield User().save()
        self.assertTrue(type(u.id) == int or type(u.id) == long)

        # test creating object with props that don't correspond to columns
        u = yield User(a_fake_column="blech").save()
        self.assertTrue(type(u.id) == int or type(u.id) == long)        

        # Test table doesn't exist
        f = FakeObject(blah = "something")
        self.failUnlessFailure(f.save(), ImaginaryTableError)

        dateklass = Registry.getDBAPIClass("Date")
        args = {'first_name': "a", "last_name": "b", "age": 10, "dob": dateklass(2000, 1, 1)}
        u = yield User(**args).save()
        for key, value in args.items():
            self.assertEqual(getattr(u, key), value)
Example #8
0
    def _setupCache(self):
        self.penguin.penguin.recentStamps = []
        database_penguin = self.penguin.dbpenguin

        self.cache.avatar = yield database_penguin.avatar.get()
        if self.cache.avatar is None:
            self.cache.avatar = yield Avatar(
                penguin_id=self.penguin['id']).save()
            yield self.cache.avatar.refresh()

        self.cache.inventories = yield database_penguin.inventories.get()
        self.cache.assets = yield database_penguin.assets.get()
        self.cache.friends = yield database_penguin.friends.get()
        self.cache.requests = []
        friends_data = []
        for friend in self.cache.friends:
            friendObj = (yield Penguin.find(where=['swid = ?', friend.friend],
                                            limit=1))
            if friendObj is None:
                continue

            friend.friend_id = friendObj.id
            friend.onlinePresence = {'online_status': False}
            data = [
                int(friendObj.id), friendObj.nickname, friendObj.swid,
                friend.bff
            ]
            friends_data.append('|'.join(map(str, data)))

        self.penguin.send('fl', (yield database_penguin.requests.count()),
                          *friends_data)

        self.cache.ignores = yield database_penguin.ignores.get()
        self.cache.careItems = yield database_penguin.careItems.get()
        self.cache.stamps = yield database_penguin.stamps.get()
        self.cache.mails = yield database_penguin.mails.get()
        self.cache.bans = yield database_penguin.bans.get()
        self.cache.puffles = yield database_penguin.puffles.get()
        self.cache.stampCovers = yield database_penguin.stampCovers.get()
        self.cache.igloos = deque()

        igloos = yield database_penguin.igloos.get(limit=6)
        for igloo in igloos:
            iglooCache = PenguinObject()
            iglooCache.igloo = igloo
            iglooCache.iglooFurnitures = yield igloo.iglooFurnitures.get(
                limit=99)
            iglooCache.iglooLikes = yield igloo.iglooLikes.get()

            self.cache.igloos.append(iglooCache)

        self.cache.memberships = yield database_penguin.memberships.get()

        self.cacheHandlers.inventories = self.handleInventory
        self.cacheHandlers.assets = self.handleAssets
        self.cacheHandlers.friends = self.handleFriends
        self.cacheHandlers.requests = self.handleRequests
        self.cacheHandlers.ignores = self.handleIgnores
        self.cacheHandlers.careItems = self.handleCareItems
        self.cacheHandlers.stamps = self.handleStamps
        self.cacheHandlers.mails = self.handleMails
        self.cacheHandlers.bans = self.handleBans
        self.cacheHandlers.puffles = self.handlePuffles
        self.cacheHandlers.stampCovers = self.handleStampCovers
        self.cacheHandlers.igloos = self.handleIgloos

        self.penguin.penguin.coins = (yield Registry.getConfig().\
            execute("SELECT COALESCE(SUM(transaction), 0) FROM coins where penguin_id = %s" % self.penguin['id']))[0][0]

        self.penguin.penguin.igloo = yield self.initPenguinIglooRoom(
            self.penguin['id'])
        if self.penguin['igloo']._id not in self.getIgloos():
            igloo = yield database_penguin.igloos.get(
                where=['id = ?', self.penguin['igloo']._id], limit=1)
            iglooCache = PenguinObject()
            iglooCache.igloo = igloo
            iglooCache.iglooFurnitures = yield igloo.iglooFurnitures.get(
                limit=99)
            iglooCache.iglooLikes = yield igloo.iglooLikes.get()

            self.cache.igloos.append(iglooCache)

        self.penguin.penguin.currentIgloo = self.getIgloos()[
            self.penguin.dbpenguin.igloo].igloo
        self.setupCJMats()

        membership = yield database_penguin.memberships.get(
            orderby='expires desc', limit=1)
        if membership is None:
            #no membership records, give a free 7 day trial
            trialExpiry = time.time() + 7 * 24 * 60 * 60

            membership = yield \
                Membership(penguin_id=self.penguin['id'],
                           expires=Registry.getDBAPIClass("TimestampFromTicks")(trialExpiry),
                           comments='Redeemed 7-day auto free trial membership. - Timeline Server').save()

        self.penguin.penguin.member = MembershipHandler(
            membership, self.penguin)
        self.cache.avatar = yield database_penguin.avatar.get()
        if self.cache.avatar is None:
            self.cache.avatar = yield Avatar(
                penguin_id=self.penguin['id']).save()

        GeneralEvent('Setup-Cache', self)

        self.CacheInitializedDefer.callback(True)