diff options
| author | Chris McDonough <chrism@plope.com> | 2011-10-05 23:12:40 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2011-10-05 23:12:40 -0400 |
| commit | 47106ccf390c0c38ad65aa88a50b697f43f39aad (patch) | |
| tree | 86416c92683ada85caa0394574f010e6e3294ec4 | |
| parent | 126afb7d1e85ca771b350ad217ff578e52d63e87 (diff) | |
| download | pyramid-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.py | 116 |
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 + |
