def test_posts_success(self): # create user posts for i in range(4): get_mock_post(author=self.user).save() # create other posts for i in range(6): get_mock_post().save() response = self.client.get('/user/{}/posts'.format(str(self.user.id))) assert response.status_code == 200 # ensure only posts for specified user are returned posts = json.loads(response.get_data(as_text=True)) assert len(posts) == 4
def test_get_comments_success(self): # create post and comments post = get_mock_post().save() for i in range(4): get_mock_comment(post=post).save() # create another post and comments another_post = get_mock_post().save() for i in range(6): get_mock_comment(post=another_post).save() response = self.client.get('/post/{}/comments'.format(str(post.id))) # ensure only comments for specified post are returned comments = json.loads(response.get_data(as_text=True)) assert len(comments) == 4 assert response.status_code == 200
def test_latest_success(self): # create posts for i in range(16): get_mock_post().save() # assert that we get first page of results response = self.client.get('/post/latest?limit=10&skip=0') posts = json.loads(response.get_data(as_text=True)) assert len(posts) == 10 assert response.status_code == 200 # assert that we get the second page of results response = self.client.get('/post/latest?limit=10&skip=10') posts = json.loads(response.get_data(as_text=True)) assert len(posts) == 6 assert response.status_code == 200
def test_search_success(self, mock_search_posts): term = 'python' # create posts containing search term mocked_posts = [] for i in range(4): post = get_mock_post() post.content = term post.save() mocked_posts.append(post) mock_search_posts.return_value = mocked_posts # create other posts for i in range(6): get_mock_post().save() response = self.client.get('/search?terms={}'.format(term), headers={'accept': 'application/json'}) assert response.status_code == 200 # ensure only posts containing specified term are returned posts = json.loads(response.get_data(as_text=True)) assert len(posts) == 4
def test_delete_success(self): post = get_mock_post(author=self.user).save() response = self.client.post('/post/{}/delete'.format(str(post.id))) assert Post.objects(id=post.id).first() is None assert response.status_code == 302
def test_delete_GET(self): post = get_mock_post(author=self.user).save() response = self.client.get('/post/{}/delete'.format(str(post.id))) assert response.status_code == 200
def test_settings_success(self): post = get_mock_post(author=self.user).save() response = self.client.get('/post/{}/settings'.format(str(post.id))) assert response.status_code == 200
def test_create_comment_text_length_equal_to_maximum(self): post = get_mock_post().save() data = {'text': random_string(500)} self.assert_create_comment_successful(post, data)
def test_create_content_length_equal_to_maximum(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() data['content'] = random_string(10_000) self.assert_update_successful(str(post.id), data)
def test_update_content_too_long(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() data['content'] = random_string(10_001) self.assert_update_unsuccessful(str(post.id), data)
def test_update_no_content(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() data['content'] = '' self.assert_update_unsuccessful(str(post.id), data)
def test_update_invalid_image_url(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() data['image_url'] = 'invalid' self.assert_update_unsuccessful(str(post.id), data)
def test_update_lead_paragraph_length_equal_to_maximum(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() data['lead_paragraph'] = random_string(500) self.assert_update_successful(str(post.id), data)
def test_update_lead_paragraph_too_long(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() data['lead_paragraph'] = random_string(501) self.assert_update_unsuccessful(str(post.id), data)
def test_update_title_length_equal_to_maximum(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() data['title'] = random_string(16) self.assert_update_successful(str(post.id), data)
def test_create_comment_no_text(self): post = get_mock_post().save() data = self.get_mock_comment_data() data['text'] = '' self.assert_create_comment_unsuccessful(post, data)
def test_create_comment_text_too_long(self): post = get_mock_post().save() data = self.get_mock_comment_data() data['text'] = random_string(501) self.assert_create_comment_unsuccessful(post, data)
def test_update_success(self): post = get_mock_post(author=self.user).save() data = self.get_mock_post_data() self.assert_update_successful(str(post.id), data)
def test_create_comment_success(self): post = get_mock_post().save() data = {'text': random_string(7)} self.assert_create_comment_successful(post, data)
def test_delete_sign_in_required(self): sign_out(self.client) post = get_mock_post(author=self.user).save() response = self.client.get('/post/{}/delete'.format(str(post.id))) assert response.status_code == 302
def test_delete_not_the_author(self): post = get_mock_post().save() response = self.client.get('/post/{}/delete'.format(str(post.id))) assert response.status_code == 302
def test_show_success(self): post = get_mock_post().save() response = self.client.get('/post/{}/show'.format(str(post.id))) assert response.status_code == 200