# -*- coding: utf-8 -*- from flask import url_for from phshare.models import User, Photo from tests.base import BaseTestCase class AjaxTestCase(BaseTestCase): def test_notifications_count(self): response = self.client.get(url_for('ajax.notifications_count')) data = response.get_json() self.assertEqual(response.status_code, 403) self.assertEqual(data['message'], 'Login required.') self.login() response = self.client.get(url_for('ajax.notifications_count')) self.assertEqual(response.status_code, 200) def test_get_profile(self): response = self.client.get(url_for('ajax.get_profile', user_id=1)) data = response.get_data(as_text=True) self.assertEqual(response.status_code, 200) self.assertIn('Admin', data) def test_followers_count(self): response = self.client.get(url_for('ajax.followers_count', user_id=1)) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['count'], 0) user = User.query.get(2) user.follow(User.query.get(1)) response = self.client.get(url_for('ajax.followers_count', user_id=1)) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['count'], 1) def test_collectors_count(self): response = self.client.get(url_for('ajax.collectors_count', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['count'], 0) user = User.query.get(1) user.collect(Photo.query.get(1)) response = self.client.get(url_for('ajax.collectors_count', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['count'], 1) def test_collect(self): response = self.client.post(url_for('ajax.collect', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 403) self.assertEqual(data['message'], 'Login required.') self.login(email='unconfirmed@helloflask.com', password='123') response = self.client.post(url_for('ajax.collect', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 400) self.assertEqual(data['message'], 'Confirm account required.') self.logout() self.login() response = self.client.post(url_for('ajax.collect', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['message'], 'Photo collected.') response = self.client.post(url_for('ajax.collect', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 400) self.assertEqual(data['message'], 'Already collected.') def test_uncollect(self): response = self.client.post(url_for('ajax.uncollect', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 403) self.assertEqual(data['message'], 'Login required.') self.login() response = self.client.post(url_for('ajax.uncollect', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 400) self.assertEqual(data['message'], 'Not collect yet.') user = User.query.get(2) user.collect(Photo.query.get(1)) response = self.client.post(url_for('ajax.uncollect', photo_id=1)) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['message'], 'Collect canceled.') def test_follow(self): response = self.client.post(url_for('ajax.follow', username='admin')) data = response.get_json() self.assertEqual(response.status_code, 403) self.assertEqual(data['message'], 'Login required.') self.login(email='unconfirmed@helloflask.com', password='123') response = self.client.post(url_for('ajax.follow', username='admin')) data = response.get_json() self.assertEqual(response.status_code, 400) self.assertEqual(data['message'], 'Confirm account required.') self.logout() self.login() response = self.client.post(url_for('ajax.follow', username='normal')) data = response.get_json() self.assertEqual(response.status_code, 400) self.assertEqual(data['message'], 'Already followed.') response = self.client.post(url_for('ajax.follow', username='admin')) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['message'], 'User followed.') def test_unfollow(self): response = self.client.post(url_for('ajax.unfollow', username='admin')) data = response.get_json() self.assertEqual(response.status_code, 403) self.assertEqual(data['message'], 'Login required.') self.login() response = self.client.post(url_for('ajax.unfollow', username='admin')) data = response.get_json() self.assertEqual(response.status_code, 400) self.assertEqual(data['message'], 'Not follow yet.') user = User.query.get(2) user.follow(User.query.get(1)) response = self.client.post(url_for('ajax.unfollow', username='admin')) data = response.get_json() self.assertEqual(response.status_code, 200) self.assertEqual(data['message'], 'Follow canceled.')