Beispiel #1
0
class TestCreateArticle(unittest.TestCase):
    """
    Test method VimBlogger.create_article
    """
    def setUp(self):
        """
        Create VimBlogger object
        """
        self.vimob = VimBlogger(None, shared.LOGIN, shared.PASS)

    def test_create_simple_article(self):
        """
        Test creation of article with minimum requirements
        """
        html = "<p>article</p>"
        post = self.vimob.create_article(html)
        self.vimob.draft = True

        self.assertEqual(post.id.text, '1234567890')
        self.assertEqual(post.content.text, html)
        self.assertEqual(post.published, None)
        self.assertTrue(post.updated is not None)
        self.assertEqual(post.title.text, "")
        self.assertEqual(post.category, [])
        self.assertEqual(post.control.draft.text, "yes")

    def test_create_article(self):
        """
        Test creation of article with full attrs
        """
        html = u"<p>article \xe2\x80\x94 article</p>"
        labels = "tag with spaces|vim|python|blogger".split("|")
        attrs = {"title":  u'Title \xe2\x80\x94 title',
                 "tags": ", ".join(labels),
                 "date": "2010-12-10T14:18:32+00:00"}
        self.vimob.draft = False

        post = self.vimob.create_article(html, attrs)
        self.assertEqual(post.id.text, '1234567890')
        self.assertEqual(post.content.text, html)
        self.assertEqual(post.published.text, attrs['date'])
        self.assertTrue(post.updated is not None)
        self.assertEqual(post.title.text, attrs['title'])
        self.assertEqual(len(post.category), 4)

        for label in post.category:
            self.assertTrue(label.term in labels)
            del(labels[labels.index(label.term)])

        self.assertEqual(post.control, None)
Beispiel #2
0
class TestDeleteArticle(unittest.TestCase):
    """
    Test method VimBlogger.create_article
    """
    def setUp(self):
        """
        Create VimBlogger object
        """
        self.vimob = VimBlogger(None, shared.LOGIN, shared.PASS)
        for bid, bname in {1: 'one', 3: 'test', 7: 'blog_name'}.items():
            blog = shared.MockBlog(bname, bid)
            self.vimob.feed.entry.append(blog)
        self.vimob._set_blog('test')

    def test_delete_non_existing_article(self):
        """
        Test removing article without id
        """
        self.assertEqual(self.vimob.delete_article(None),
                         "No article id provided")

    def test_delete_article(self):
        """
        Test removing article
        """
        html = u"<p>article \xe2\x80\x94 article</p>"
        labels = "tag with spaces|vim|python|blogger".split("|")
        attrs = {"title":  u'Title \xe2\x80\x94 title',
                 "tags": ", ".join(labels),
                 "date": "2010-12-10T14:18:32+00:00"}
        self.vimob.draft = False

        post = self.vimob.create_article(html, attrs)
        self.assertEqual(self.vimob.delete_article(post.id.text), None)
Beispiel #3
0
    def post(self):
        """
        Do post article
        """
        bufcontent = "\n".join(self.buff)
        html, attrs = blogArticleString(bufcontent)

        parse_msg = self._check_html(html, True)
        if parse_msg:
            self._open_qf(parse_msg)
            return "There are errors in generated document"

        if not self.password:
            self.password = \
                    vim.eval('inputsecret("Enter your gmail password: "******"Article '%s' has been updated" % post.title.text)
            msg = msg.encode(self.vim_encoding)
        else:
            post = blog.create_article(html, attrs=attrs)
            msg = "New article with id %s has been created" % \
                    post.get_post_id()

        for item, value in (('id', post.get_post_id()),
                            ('date', post.published.text),
                            ('title', post.title.text),
                            ('modified', post.updated.text),
                            ('tags',
                             ", ".join([cat.term for cat in post.category]))):
            self._update_docinfo(item, value)
        return msg