From 47106ccf390c0c38ad65aa88a50b697f43f39aad Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 5 Oct 2011 23:12:40 -0400 Subject: test coverage for pcreate command, really --- pyramid/tests/test_scripts/test_pcreate.py | 116 +++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 pyramid/tests/test_scripts/test_pcreate.py 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 + -- cgit v1.2.3