def testWithTwoBlogEntries(self):
     BlogEntry(title='entry1', text='entry1').save()
     BlogEntry(title='entry2', text='entry2').save()
     result = IndexHandler().render()
     self.assertIn('entry2', result)
     self.assertIn('entry1', result)
     self.assertLess(result.index('entry2'), result.index('entry1'))
Esempio n. 2
0
def updateblog(request):
    # Get feed
    url = 'http://blog.instanssi.org/feeds/posts/default'
    feed = feedparser.parse(url)

    # Delete old entries
    BlogEntry.objects.filter(locked=False).delete()

    # Get items that have changed
    for item in feed['items']:
        locked = False
        try:
            oldentry = BlogEntry.objects.get(title=item['title'])
            locked = oldentry.locked
        except BlogEntry.DoesNotExist:
            pass

        if not locked:
            timestamp = datetime.fromtimestamp(
                time.mktime(item['published_parsed'])) + timedelta(hours=2)
            entry = BlogEntry()
            entry.title = item['title']
            entry.summary = item['summary']
            entry.date = timestamp
            entry.link = item['link']
            entry.name = item['authors'][0]['name']
            entry.save()

    # Just return "ok"
    return HttpResponse("ok")
    def testEditBlogEntry(self):
        # Given there is a blog entry in the database
        entry = BlogEntry(title='entry1', text='entry1')
        entry.save()
        self.assertEqual(1, BlogEntry.all().count())
        # And I am signed in as admin
        self.signInAsAdmin()
        # When I edit the blog entry
        handler = self.createEditBlogEntryHandler()
        handler.request.GET['id'] = entry.key().id()
        handler.get()
        result = str(handler.response.out)
        # And I should see an input for "title"
        self.assertRegexpMatches(result, r'<[^>]+ name="title"[^>]*>')
        self.assertRegexpMatches(result, r'<[^>]+ value="entry1"[^>]*>')
        # And I should see an input for "text"
        self.assertRegexpMatches(result, r'<[^>]+ name="text"[^>]*>')
        self.assertRegexpMatches(result, r'<textarea[^>]*>entry1<')
        # And I should see a "Save" button
        self.assertRegexpMatches(result, r'<button[^>]*>Save</')

        # And I fill out the "title" field with "new title"
        handler = self.createEditBlogEntryHandler()
        handler.request.POST['id'] = entry.key().id()
        handler.request.POST['title'] = 'new title'
        # And I fill out the "text" field with "new text"
        handler.request.POST['text'] = 'new text'
        # And I click on the "Save" button
        handler.post()
        # And I should see the blog entry with "title": "new title"
        self.assertEqual(1, BlogEntry.all().count())
        entry = BlogEntry.all().get()
        self.assertEqual('new title', entry.title)
        # And I should see the blog entry with "text": "new text"
        self.assertEqual('new text', entry.text)
Esempio n. 4
0
    def post(self):

        # AUTHENTICATE
        user_id = None
        # AUTHENTICATE check for valid cookie
        user_id = auth(self.request.cookies.get('user_id'))

        title = self.request.get("title")
        body = self.request.get("body")
        like = 0

        if user_id:
            if title and body:
                u = Users.get_by_id(int(user_id))
                b = BlogEntry(title=title,
                              body=body,
                              author_name=u.userName,
                              likes=like,
                              author_id=user_id)
                b.put()

                self.redirect("/welcome")

            else:
                error = "Please provide BOTH a title and body."
                # must include all the parameters below to preserve user
                # entered data
                self.render_newpost(title=title, body=body, error=error)
        else:
            self.redirect("/login")
 def testNoEditLinkForGuest(self):
     # Given there is a blog entry in the database
     BlogEntry(title='entry1', text='entry1').save()
     self.assertEqual(1, BlogEntry.all().count())
     # When I visit the home page
     result = IndexHandler().render()
     # Then I should not see the "Edit" link
     self.assertNotRegexpMatches(result, r"<a href=[^>]+>Edit</a>")
 def testRenderingBlogEntries(self):
     self.assertEqual(0, BlogEntry.all().count())
     BlogEntry(title='asdsad', text='my text').save()
     self.assertEqual(1, BlogEntry.all().count())
     result = IndexHandler().render()
     today = datetime.datetime.now().strftime('%Y-%m-%d')
     self.assertRegexpMatches(result, r'<[^>]+ class="title"[^>]*>asdsad</')
     self.assertRegexpMatches(result,
                              r'<[^>]+ class="text"[^>]*><p>my text</p></')
     self.assertRegexpMatches(result,
                              r'<[^>]+ class="date"[^>]*>%s</' % today)
 def testEditLinkForAdmin(self):
     # Given there are no blog entries in the database
     self.assertEqual(0, BlogEntry.all().count())
     # And I am signed in as admin
     self.signInAsAdmin()
     # And I add a new blog entry "entry1"
     BlogEntry(title='entry1', text='entry1').save()
     self.assertEqual(1, BlogEntry.all().count())
     # When I visit the home page
     result = IndexHandler().render()
     # Then I should see a "Edit" link
     self.assertRegexpMatches(result, r"<a href=[^>]+>Edit</a>")
Esempio n. 8
0
 def post(self):
     title = self.request.get("subject")
     content = self.request.get("content")
     cookie = self.request.cookies.get('name')
     user = check_login(cookie)
     if title and content and user:
         blog_post = BlogEntry(title=title, content=content, creator=user)
         blog_post.put()
         post_id = blog_post.key.id()
         self.redirect("/blog/%s" % post_id)
     else:
         error = "You must include both a title and content"
         self.render("/newpost.html",
                     title=title,
                     content=content,
                     error=error,
                     user=user)
 def testRenderingBlogEntriesWithMarkdown(self):
     self.assertEqual(0, BlogEntry.all().count())
     BlogEntry(
         title='asdsad',
         text='Hello Markdown\n' + '==\n' + '\n' +
         'This is an example post using [Markdown](http://a.b).').save()
     self.assertEqual(1, BlogEntry.all().count())
     result = IndexHandler().render()
     today = datetime.datetime.now().strftime('%Y-%m-%d')
     self.assertRegexpMatches(result, r'<[^>]+ class="title"[^>]*>asdsad</')
     self.assertRegexpMatches(
         result,
         r'<[^>]+ class="text"[^>]*><h1>Hello Markdown</h1>' + '[^<]*' +
         '<p>This is an example post using <a href="http://a.b">Markdown</a>.</p></'
     )
     self.assertRegexpMatches(result,
                              r'<[^>]+ class="date"[^>]*>%s</' % today)