Esempio n. 1
0
    def test_add_post_to_followers_news(self):
        users = self._mass_test_follow()

        Post.add_post(users[1].id, "Test message!")

        self.assertEqual('1', users[0].get_news(0, -1)[0]['id'])
        self.assertEqual('1', users[2].get_news(0, -1)[0]['id'])
        self.assertEqual('1', users[3].get_news(0, -1)[0]['id'])
Esempio n. 2
0
def add_post():
    """Add new post"""
    user = User.get_single_user(request.form["user"])
    title = request.form["title"]
    content = request.form["content"]
    tags = request.form.getlist("tags")

    if (title == "" or content == ""):
        flash("Missing Input: Please fill out both Title and Content")
        return redirect(f"/create_post/{user.id}")

    post = Post(title=title, content=content, user_id=user.id)
    Post.add_post(post)
    for tag in tags:
        PostTag.add_post_tag(PostTag(post_id=post.id, tag_id=tag))

    return redirect(f"/post_detail/{post.id}")
Esempio n. 3
0
    def test_get_news(self):
        users = self._mass_test_follow()

        data = [
            [users[1].id, 'Test message 1!'],
            [users[1].id, 'Test message 2!'],
            [users[1].id, 'Test message 3!'],
            [users[2].id, 'Test message 1!'],
            [users[2].id, 'Test message 2!']
        ]

        for i, (test_user_id, test_status) in enumerate(data):
            Post.add_post(test_user_id, test_status)

        self.assertEqual(5, len(users[0].get_news(0, -1)))
        self.assertEqual(3, len(users[1].get_news(0, -1)))
        self.assertEqual(5, len(users[2].get_news(0, -1)))
        self.assertEqual(5, len(users[3].get_news(0, -1)))
Esempio n. 4
0
    def test_post_deleted(self):
        with app.test_client() as client:
            id = User.query.filter(User.first_name == 'Flash').one().id
            post_id = Post.add_post('test post title', 'test content', id).id

            client.post(f'/posts/{post_id}/delete')

            post = Post.get_post_by_id(post_id)
            self.assertIsNone(post)
Esempio n. 5
0
    def test_get_posts(self):
        users = self._create_test_users()

        data = [
            [users[0].id, 'Test message 1!'],
            [users[0].id, 'Test message 2!'],
            [users[0].id, 'Test message 3!']
        ]

        for i, (test_user_id, test_status) in enumerate(data):
            Post.add_post(test_user_id, test_status)

        posts = users[0].get_posts(0, -1)

        self.assertEqual(len(data), len(posts))

        for i, post in enumerate(reversed(posts)):
            self.assertEqual(data[i][0], post['user'].id)
            self.assertEqual(data[i][1], post['status'])
Esempio n. 6
0
def commit_post(id):
    title = request.form.get('title')
    content = request.form.get('content')
    post = Post.add_post(title, content, id)

    tags = Tag.get_tags()
    for tag in tags:
        if (request.form.get(tag.name, None) is not None):
            PostTag.add(post.id, tag.id)

    return redirect(f'/users/{id}')
Esempio n. 7
0
def run_scraper():
    try:
        fetch_time = datetime.datetime.now()
        post_dicts = fetch_posts(from_page_num=1, to_page_num=3)
        post_dicts.sort(key=lambda p: p['id'])
        
        for post_dict in post_dicts:
            print post_dict['id'], post_dict['title'].encode('utf-8')
            Post.add_post(id=post_dict['id'],
                          post_type=post_dict['post_type'],
                          by=post_dict['by'],
                          created_at=post_dict['created_at'],
                          url=post_dict['url'],
                          rank_when_fetched=post_dict['rank'],
                          score=post_dict['score'],
                          comment_count=post_dict['comment_count'],
                          title=post_dict['title'],
                          last_fetch_at=fetch_time
                          )
    except Exception as e:
        report_error(e, raise_again=False)
        raise app_exceptions.ScraperError("Something went wrong with the scraper, error has been reported.")
Esempio n. 8
0
 def post(self):
     title = self.get_form_value('title')
     content = self.get_form_value('content')
     if title and content:
         post = Post.add_post(title=title,
                              content=content,
                              user_id=str(self.user.key().id()))
         post.put()
         self.redirect('/posts/%s' % post.key().id())
     else:
         error = 'Please enter both title and content'
         self.render('newpost.html',
                     user=self.user,
                     title=title,
                     content=content,
                     error=error)
Esempio n. 9
0
def commit_post(id):
    title = request.form.get('title')
    content = request.form.get('content')
    Post.add_post(title, content, id)

    return redirect(f'/users/{id}')
Esempio n. 10
0
    def save(self, request):
        if not request.user.id:
            return

        Post.add_post(request.user.id, self.cleaned_data['status'])