summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/paster.py11
-rw-r--r--pyramid/tests/test_paster.py34
2 files changed, 41 insertions, 4 deletions
diff --git a/pyramid/paster.py b/pyramid/paster.py
index bc1573fb8..def9a6f3e 100644
--- a/pyramid/paster.py
+++ b/pyramid/paster.py
@@ -10,7 +10,7 @@ from paste.util.template import paste_script_template_renderer
from pyramid.scripting import get_root
class PyramidTemplate(Template):
- def pre(self, command, output_dir, vars): # pragma: no cover
+ def pre(self, command, output_dir, vars):
vars['random_string'] = os.urandom(20).encode('hex')
package_logger = vars['package']
if package_logger == 'root':
@@ -19,9 +19,12 @@ class PyramidTemplate(Template):
vars['package_logger'] = package_logger
return Template.pre(self, command, output_dir, vars)
- def post(self, *arg, **kw): # pragma: no cover
- print 'Welcome to Pyramid. Sorry for the convenience.'
- return Template.post(self, *arg, **kw)
+ def post(self, command, output_dir, vars):
+ self.out('Welcome to Pyramid. Sorry for the convenience.')
+ return Template.post(self, command, output_dir, vars)
+
+ def out(self, msg): # pragma: no cover (replaceable testing hook)
+ print msg
class StarterProjectTemplate(PyramidTemplate):
_template_dir = 'paster_templates/starter'
diff --git a/pyramid/tests/test_paster.py b/pyramid/tests/test_paster.py
index 35349b7c7..e000e29d4 100644
--- a/pyramid/tests/test_paster.py
+++ b/pyramid/tests/test_paster.py
@@ -1,5 +1,39 @@
import unittest
+class TestPyramidTemplate(unittest.TestCase):
+ def _getTargetClass(self):
+ from pyramid.paster import PyramidTemplate
+ return PyramidTemplate
+
+ def _makeOne(self, name):
+ cls = self._getTargetClass()
+ return cls(name)
+
+ def test_pre_logger_eq_root(self):
+ tmpl = self._makeOne('name')
+ vars = {'package':'root'}
+ result = tmpl.pre(None, None, vars)
+ self.assertEqual(result, None)
+ self.assertEqual(vars['package_logger'], 'app')
+ self.failUnless(len(vars['random_string']) == 40)
+
+ def test_pre_logger_noteq_root(self):
+ tmpl = self._makeOne('name')
+ vars = {'package':'notroot'}
+ result = tmpl.pre(None, None, vars)
+ self.assertEqual(result, None)
+ self.assertEqual(vars['package_logger'], 'notroot')
+ self.failUnless(len(vars['random_string']) == 40)
+
+ def test_post(self):
+ tmpl = self._makeOne('name')
+ vars = {'package':'root'}
+ L = []
+ tmpl.out = lambda msg: L.append(msg)
+ result = tmpl.post(None, None, vars)
+ self.assertEqual(result, None)
+ self.assertEqual(L, ['Welcome to Pyramid. Sorry for the convenience.'])
+
class TestPShellCommand(unittest.TestCase):
def _getTargetClass(self):
from pyramid.paster import PShellCommand