summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2011-10-05 23:12:40 -0400
committerChris McDonough <chrism@plope.com>2011-10-05 23:12:40 -0400
commit47106ccf390c0c38ad65aa88a50b697f43f39aad (patch)
tree86416c92683ada85caa0394574f010e6e3294ec4
parent126afb7d1e85ca771b350ad217ff578e52d63e87 (diff)
downloadpyramid-47106ccf390c0c38ad65aa88a50b697f43f39aad.tar.gz
pyramid-47106ccf390c0c38ad65aa88a50b697f43f39aad.tar.bz2
pyramid-47106ccf390c0c38ad65aa88a50b697f43f39aad.zip
test coverage for pcreate command, really
-rw-r--r--pyramid/tests/test_scripts/test_pcreate.py116
1 files changed, 116 insertions, 0 deletions
diff --git a/pyramid/tests/test_scripts/test_pcreate.py b/pyramid/tests/test_scripts/test_pcreate.py
new file mode 100644
index 000000000..9abbbc230
--- /dev/null
+++ b/pyramid/tests/test_scripts/test_pcreate.py
@@ -0,0 +1,116 @@
+import unittest
+from pyramid.tests.test_scripts import dummy
+
+class TestPCreateCommand(unittest.TestCase):
+ def setUp(self):
+ from pyramid.compat import NativeIO
+ self.out_ = NativeIO()
+
+ def out(self, msg):
+ self.out_.write(msg)
+
+ def _getTargetClass(self):
+ from pyramid.scripts.pcreate import PCreateCommand
+ return PCreateCommand
+
+ def _makeOne(self, *args):
+ effargs = ['pcreate']
+ effargs.extend(args)
+ cmd = self._getTargetClass()(effargs)
+ cmd.bootstrap = (dummy.DummyBootstrap(),)
+ cmd.out = self.out
+ return cmd
+
+ def test_run_show_scaffolds_exist(self):
+ cmd = self._makeOne('-l')
+ result = cmd.run()
+ self.assertEqual(result, True)
+ out = self.out_.getvalue()
+ self.assertTrue(out.startswith('Available scaffolds'))
+
+ def test_run_show_scaffolds_none_exist(self):
+ cmd = self._makeOne('-l')
+ cmd.scaffolds = []
+ result = cmd.run()
+ self.assertEqual(result, True)
+ out = self.out_.getvalue()
+ self.assertTrue(out.startswith('No scaffolds available'))
+
+ def test_run_no_scaffold_name(self):
+ cmd = self._makeOne()
+ result = cmd.run()
+ self.assertEqual(result, None)
+ out = self.out_.getvalue()
+ self.assertTrue(out.startswith(
+ 'You must provide at least one scaffold name'))
+
+ def test_no_project_name(self):
+ cmd = self._makeOne('-s', 'dummy')
+ result = cmd.run()
+ self.assertEqual(result, None)
+ out = self.out_.getvalue()
+ self.assertTrue(out.startswith('You must provide a project name'))
+
+ def test_unknown_scaffold_name(self):
+ cmd = self._makeOne('-s', 'dummyXX', 'distro')
+ result = cmd.run()
+ self.assertEqual(result, None)
+ out = self.out_.getvalue()
+ self.assertTrue(out.startswith('Unavailable scaffolds'))
+
+ def test_known_scaffold_single_rendered(self):
+ import os
+ cmd = self._makeOne('-s', 'dummy', 'Distro')
+ scaffold = DummyScaffold('dummy')
+ cmd.scaffolds = [scaffold]
+ result = cmd.run()
+ self.assertEqual(result, True)
+ self.assertEqual(
+ scaffold.output_dir,
+ os.path.normpath(os.path.join(os.getcwd(), 'Distro'))
+ )
+ self.assertEqual(
+ scaffold.vars,
+ {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'})
+
+ def test_known_scaffold_multiple_rendered(self):
+ import os
+ cmd = self._makeOne('-s', 'dummy1', '-s', 'dummy2', 'Distro')
+ scaffold1 = DummyScaffold('dummy1')
+ scaffold2 = DummyScaffold('dummy2')
+ cmd.scaffolds = [scaffold1, scaffold2]
+ result = cmd.run()
+ self.assertEqual(result, True)
+ self.assertEqual(
+ scaffold1.output_dir,
+ os.path.normpath(os.path.join(os.getcwd(), 'Distro'))
+ )
+ self.assertEqual(
+ scaffold1.vars,
+ {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'})
+ self.assertEqual(
+ scaffold2.output_dir,
+ os.path.normpath(os.path.join(os.getcwd(), 'Distro'))
+ )
+ self.assertEqual(
+ scaffold2.vars,
+ {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'})
+
+class Test_main(unittest.TestCase):
+ def _callFUT(self, argv):
+ from pyramid.scripts.pcreate import main
+ return main(argv)
+
+ def test_it(self):
+ result = self._callFUT(['pcreate', '-q'])
+ self.assertEqual(result, None)
+
+class DummyScaffold(object):
+ def __init__(self, name):
+ self.name = name
+
+ def run(self, command, output_dir, vars):
+ self.command = command
+ self.output_dir = output_dir
+ self.vars = vars
+