You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2019/11/15 23:32:04 UTC

[allura] 02/07: [#8340] more blog tests

This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch db/8340
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 8de16c84dbd4b36f39dc2072acd65be2958b3dd0
Author: Dave Brondsema <da...@brondsema.net>
AuthorDate: Thu Nov 14 17:47:27 2019 -0500

    [#8340] more blog tests
---
 Allura/allura/tests/test_globals.py               | 23 +++++++++++++++++++++++
 ForgeBlog/forgeblog/tests/functional/test_root.py | 22 +++++++++++++++++++++-
 ForgeBlog/forgeblog/tests/test_app.py             | 20 +++++++++++++++++++-
 3 files changed, 63 insertions(+), 2 deletions(-)

diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 33453cb..7176654 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -644,6 +644,29 @@ def test_hideawards_macro():
         assert_not_in('Award short', r)
 
 
+@td.with_tool('test', 'Blog', 'blog')
+def test_project_blog_posts_macro():
+    from forgeblog import model as BM
+    with h.push_context('test', 'blog', neighborhood='Projects'):
+        BM.BlogPost.new(
+            title='Test title',
+            text='test post',
+            state='published',
+        )
+        BM.BlogPost.new(
+            title='Test title2',
+            text='test post2',
+            state='published',
+        )
+
+        r = g.markdown_wiki.convert('[[project_blog_posts]]')
+        assert_in('Test title</a></h3>', r)
+        assert_in('Test title2</a></h3>', r)
+        assert_in('<div class="markdown_content"><p>test post</p></div>', r)
+        assert_in('<div class="markdown_content"><p>test post2</p></div>', r)
+        assert_in('by <em>Test Admin</em>', r)
+
+
 def get_project_names(r):
     """
     Extracts a list of project names from a wiki page HTML.
diff --git a/ForgeBlog/forgeblog/tests/functional/test_root.py b/ForgeBlog/forgeblog/tests/functional/test_root.py
index 47b4d87..310f690 100644
--- a/ForgeBlog/forgeblog/tests/functional/test_root.py
+++ b/ForgeBlog/forgeblog/tests/functional/test_root.py
@@ -21,7 +21,7 @@ import datetime
 import json
 
 import tg
-from nose.tools import assert_equal
+from nose.tools import assert_equal, assert_in
 from mock import patch
 
 from allura.lib import helpers as h
@@ -268,3 +268,23 @@ class Test(TestController):
             wf = json.loads(self.webflash(r))
             assert_equal(wf['status'], 'error')
             assert_equal(wf['message'], 'Create/edit rate limit exceeded. Please try again later.')
+
+    def test_admin_external_feed_invalid(self):
+        r = self.app.get('/blog/')
+        r = self.app.get('/admin/blog/exfeed')
+        form = r.forms[0]
+        form['new_exfeed'].value = 'asdfasdf'
+        r = form.submit()
+        assert_in('Invalid', self.webflash(r))
+
+    def test_admin_external_feed_ok(self):
+        # sidebar menu doesn't expose link to this, unless "forgeblog.exfeed" config is true, but can use form anyway
+        r = self.app.get('/blog/')
+        r = self.app.get('/admin/blog/exfeed')
+        form = r.forms[0]
+        form['new_exfeed'].value = 'https://example.com/feed.rss'
+        r = form.submit()
+        assert_in('External feeds updated', self.webflash(r))
+
+        r = self.app.get('/admin/blog/exfeed')
+        r.mustcontain('https://example.com/feed.rss')
diff --git a/ForgeBlog/forgeblog/tests/test_app.py b/ForgeBlog/forgeblog/tests/test_app.py
index ac50f8b..24e6bfa 100644
--- a/ForgeBlog/forgeblog/tests/test_app.py
+++ b/ForgeBlog/forgeblog/tests/test_app.py
@@ -20,6 +20,7 @@
 import tempfile
 import json
 import os
+from cgi import FieldStorage
 
 from nose.tools import assert_equal
 from tg import tmpl_context as c
@@ -31,7 +32,24 @@ from allura.lib import helpers as h
 from alluratest.controller import setup_basic_test, setup_global_objects
 from allura.tests import decorators as td
 from forgeblog import model as BM
-from cgi import FieldStorage
+
+
+class TestApp(object):
+
+    def setUp(self):
+        setup_basic_test()
+
+    @td.with_tool('test', 'Blog', 'blog')
+    def test_uninstall(self):
+        BM.BlogPost.new(
+            title='Test title',
+            text='test post',
+        )
+        ThreadLocalORMSession.flush_all()
+        assert BM.BlogPost.query.get(title='Test title')
+        # c.app.uninstall(c.project) errors out, but works ok in test_uninstall for repo tools.  So instead:
+        c.project.uninstall_app('blog')
+        assert not BM.BlogPost.query.get(title='Test title')
 
 
 class TestBulkExport(object):