示例#1
0
  def test_settings_upload_avatar(self):
    nick = 'obligated'
    self.login(nick)

    nick = clean.nick(nick)
    old_contact_avatars = api.actor_get_contacts_avatars_since(api.ROOT, nick)
    contacts = api.actor_get_contacts(api.ROOT, nick)
    self.assertEquals(len(old_contact_avatars), len(contacts) + 1)
    old_avatar = api.actor_get(api.ROOT, nick).extra.get('icon',
                                                         'avatar_default')
    start_time = api.utcnow()
    no_contact_avatars = api.actor_get_contacts_avatars_since(api.ROOT, nick,
                                                              since_time=start_time)
    self.assertEquals(len(no_contact_avatars), 0)

    # TODO(teemu): add more tests for different file types (gif and jpg).
    # Alternatively, test those against api.avatar_upload.
    f = open('testdata/test_avatar.jpg')
    r = self.client.post('/user/obligated/settings/photo',
                         {
                           'imgfile': f,
                           '_nonce' :
                              util.create_nonce('obligated', 'change_photo'),
                         })
    r = self.assertRedirectsPrefix(r, '/user/obligated/settings/photo')

    actor_ref = api.actor_get(api.ROOT, nick)
    new_avatar = actor_ref.extra.get('icon', 'avatar_default')
    self.assertNotEquals(old_avatar, new_avatar)
    self.assertTrue(actor_ref.avatar_updated_at >= start_time)
    new_contact_avatars = api.actor_get_contacts_avatars_since(api.ROOT, nick,
                                                               since_time=start_time)
    self.assertEquals(len(new_contact_avatars), 1)
    self.assertEquals(new_contact_avatars.pop().nick, nick)

    self.assertContains(r, 'Avatar uploaded')
    self.assertTemplateUsed(r, 'actor/templates/settings_photo.html')
    self.assertTemplateUsed(r, 'common/templates/flash.html')
示例#2
0
    def test_settings_upload_avatar(self):
        nick = 'obligated'
        self.login(nick)

        nick = clean.nick(nick)
        old_contact_avatars = api.actor_get_contacts_avatars_since(
            api.ROOT, nick)
        contacts = api.actor_get_contacts(api.ROOT, nick)
        self.assertEquals(len(old_contact_avatars), len(contacts) + 1)
        old_avatar = api.actor_get(api.ROOT,
                                   nick).extra.get('icon', 'avatar_default')
        start_time = api.utcnow()
        no_contact_avatars = api.actor_get_contacts_avatars_since(
            api.ROOT, nick, since_time=start_time)
        self.assertEquals(len(no_contact_avatars), 0)

        # TODO(teemu): add more tests for different file types (gif and jpg).
        # Alternatively, test those against api.avatar_upload.
        f = open('testdata/test_avatar.jpg')
        r = self.client.post(
            '/user/obligated/settings/photo', {
                'imgfile': f,
                '_nonce': util.create_nonce('obligated', 'change_photo'),
            })
        r = self.assertRedirectsPrefix(r, '/user/obligated/settings/photo')

        actor_ref = api.actor_get(api.ROOT, nick)
        new_avatar = actor_ref.extra.get('icon', 'avatar_default')
        self.assertNotEquals(old_avatar, new_avatar)
        self.assertTrue(actor_ref.avatar_updated_at >= start_time)
        new_contact_avatars = api.actor_get_contacts_avatars_since(
            api.ROOT, nick, since_time=start_time)
        self.assertEquals(len(new_contact_avatars), 1)
        self.assertEquals(new_contact_avatars.pop().nick, nick)

        self.assertContains(r, 'Avatar uploaded')
        self.assertTemplateUsed(r, 'actor/templates/settings_photo.html')
        self.assertTemplateUsed(r, 'common/templates/flash.html')