Example #1
0
    def test_get_unread_messages(self):
        self.login(self.user.email)

        hour_ago = datetime.datetime.now() - datetime.timedelta(hours=1)

        # Add older message.
        message1 = Message(from_user=self.contact, to_user=self.user,
                           message='test message', ttl=10, created=hour_ago)
        message2 = Message(from_user=self.contact, to_user=self.user,
                           message='test message 2', ttl=10)
        db.session.add(message2)
        db.session.add(message1)
        db.session.commit()

        # Get message list from API.
        rv = self.client.get('/%s/messages/unread' % API_VERSION)
        eq_(rv.status_code, 200)

        data = json.loads(rv.data)
        eq_(len(data['data']), 2)
        for attr in ('email', 'avatar'):
            eq_(data['data'][0][attr], getattr(self.contact, attr))
        # First created stamp is less than second.
        ok_(data['data'][0]['created'] < data['data'][1]['created'],
            'Messages not sorted by created descending.')
        # Photo is empty so has_media is false.
        eq_(data['data'][0]['has_media'], False)

        # Expire one and make sure it's gone.
        sec_ago = datetime.datetime.now() - datetime.timedelta(seconds=1)
        message1.expire = sec_ago
        db.session.add(message1)
        db.session.commit()

        # Get message list from API.
        rv = self.client.get('/%s/messages/unread' % API_VERSION)
        eq_(rv.status_code, 200)

        data = json.loads(rv.data)
        eq_(len(data['data']), 1)
        for attr in ('email', 'avatar'):
            eq_(data['data'][0][attr], getattr(self.contact, attr))
Example #2
0
    def test_get_message(self):
        self.login(self.user.email)

        # Add a message.
        message = Message(from_user=self.contact, to_user=self.user,
                          message='test message', ttl=10)
        db.session.add(message)
        db.session.commit()

        # Get message from API.
        rv = self.client.get('/%s/message/%s' % (API_VERSION, message.id))
        eq_(rv.status_code, 200)

        data = json.loads(rv.data)
        message_data = message.to_json()
        for k in data['data'].keys():
            eq_(data['data'][k], message_data[k])

        # Verify that the message was set to expire.
        message = Message.query.filter(Message.id==message.id).one()
        ok_(message.expire is not None)