| | |
| | | class TestPCreateCommand(unittest.TestCase): |
| | | def setUp(self): |
| | | from pyramid.compat import NativeIO |
| | | |
| | | self.out_ = NativeIO() |
| | | |
| | | def out(self, msg): |
| | |
| | | |
| | | def _getTargetClass(self): |
| | | from pyramid.scripts.pcreate import PCreateCommand |
| | | |
| | | return PCreateCommand |
| | | |
| | | def _makeOne(self, *args, **kw): |
| | |
| | | result = cmd.run() |
| | | self.assertEqual(result, 2) |
| | | out = self.out_.getvalue() |
| | | self.assertTrue(out.count( |
| | | 'You must provide at least one scaffold name')) |
| | | self.assertTrue( |
| | | out.count('You must provide at least one scaffold name') |
| | | ) |
| | | |
| | | def test_no_project_name(self): |
| | | cmd = self._makeOne('-s', 'dummy') |
| | |
| | | |
| | | def test_known_scaffold_single_rendered(self): |
| | | import os |
| | | |
| | | cmd = self._makeOne('-s', 'dummy', 'Distro') |
| | | scaffold = DummyScaffold('dummy') |
| | | cmd.scaffolds = [scaffold] |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.output_dir, |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')) |
| | | ) |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')), |
| | | ) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch': '0.1-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_scaffold_with_package_name(self): |
| | | import os |
| | | cmd = self._makeOne('-s', 'dummy', '--package-name', 'dummy_package', |
| | | 'Distro') |
| | | |
| | | cmd = self._makeOne( |
| | | '-s', 'dummy', '--package-name', 'dummy_package', 'Distro' |
| | | ) |
| | | scaffold = DummyScaffold('dummy') |
| | | cmd.scaffolds = [scaffold] |
| | | cmd.pyramid_dist = DummyDist("0.1") |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.output_dir, |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')) |
| | | ) |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')), |
| | | ) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'dummy_package', |
| | | 'package': 'dummy_package', 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch':'0.1-branch'}) |
| | | |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'dummy_package', |
| | | 'package': 'dummy_package', |
| | | 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch': '0.1-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_scaffold_with_hyphen_in_project_name(self): |
| | | import os |
| | | |
| | | cmd = self._makeOne('-s', 'dummy', 'Distro-') |
| | | scaffold = DummyScaffold('dummy') |
| | | cmd.scaffolds = [scaffold] |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.output_dir, |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro-')) |
| | | ) |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro-')), |
| | | ) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro-', 'egg': 'Distro_', 'package': 'distro_', |
| | | 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) |
| | | { |
| | | 'project': 'Distro-', |
| | | 'egg': 'Distro_', |
| | | 'package': 'distro_', |
| | | 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch': '0.1-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_known_scaffold_absolute_path(self): |
| | | import os |
| | | |
| | | path = os.path.abspath('Distro') |
| | | cmd = self._makeOne('-s', 'dummy', path) |
| | | cmd.pyramid_dist = DummyDist("0.1") |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.output_dir, |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')) |
| | | ) |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')), |
| | | ) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch': '0.1-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_known_scaffold_multiple_rendered(self): |
| | | import os |
| | | |
| | | cmd = self._makeOne('-s', 'dummy1', '-s', 'dummy2', 'Distro') |
| | | scaffold1 = DummyScaffold('dummy1') |
| | | scaffold2 = DummyScaffold('dummy2') |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold1.output_dir, |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')) |
| | | ) |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')), |
| | | ) |
| | | self.assertEqual( |
| | | scaffold1.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch': '0.1-branch', |
| | | }, |
| | | ) |
| | | self.assertEqual( |
| | | scaffold2.output_dir, |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')) |
| | | ) |
| | | os.path.normpath(os.path.join(os.getcwd(), 'Distro')), |
| | | ) |
| | | self.assertEqual( |
| | | scaffold2.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch': '0.1-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_known_scaffold_with_path_as_project_target_rendered(self): |
| | | import os |
| | | |
| | | cmd = self._makeOne('-s', 'dummy', '/tmp/foo/Distro/') |
| | | scaffold = DummyScaffold('dummy') |
| | | cmd.scaffolds = [scaffold] |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.output_dir, |
| | | os.path.normpath(os.path.join(os.getcwd(), '/tmp/foo/Distro')) |
| | | ) |
| | | os.path.normpath(os.path.join(os.getcwd(), '/tmp/foo/Distro')), |
| | | ) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) |
| | | |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.1', |
| | | 'pyramid_docs_branch': '0.1-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_scaffold_with_prod_pyramid_version(self): |
| | | cmd = self._makeOne('-s', 'dummy', 'Distro') |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.2', 'pyramid_docs_branch':'0.2-branch'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.2', |
| | | 'pyramid_docs_branch': '0.2-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_scaffold_with_prod_pyramid_long_version(self): |
| | | cmd = self._makeOne('-s', 'dummy', 'Distro') |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.2.1', 'pyramid_docs_branch':'0.2-branch'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.2.1', |
| | | 'pyramid_docs_branch': '0.2-branch', |
| | | }, |
| | | ) |
| | | |
| | | def test_scaffold_with_prod_pyramid_unparsable_version(self): |
| | | cmd = self._makeOne('-s', 'dummy', 'Distro') |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': 'abc', 'pyramid_docs_branch':'latest'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': 'abc', |
| | | 'pyramid_docs_branch': 'latest', |
| | | }, |
| | | ) |
| | | |
| | | def test_scaffold_with_dev_pyramid_version(self): |
| | | cmd = self._makeOne('-s', 'dummy', 'Distro') |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.12dev', |
| | | 'pyramid_docs_branch': 'master'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.12dev', |
| | | 'pyramid_docs_branch': 'master', |
| | | }, |
| | | ) |
| | | |
| | | def test_scaffold_with_dev_pyramid_long_version(self): |
| | | cmd = self._makeOne('-s', 'dummy', 'Distro') |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', |
| | | 'pyramid_version': '0.10.1dev', |
| | | 'pyramid_docs_branch': 'master'}) |
| | | { |
| | | 'project': 'Distro', |
| | | 'egg': 'Distro', |
| | | 'package': 'distro', |
| | | 'pyramid_version': '0.10.1dev', |
| | | 'pyramid_docs_branch': 'master', |
| | | }, |
| | | ) |
| | | |
| | | def test_confirm_override_conflicting_name(self): |
| | | from pyramid.scripts.pcreate import PCreateCommand |
| | | |
| | | class YahInputPCreateCommand(PCreateCommand): |
| | | def confirm_bad_name(self, pkg_name): |
| | | return True |
| | | cmd = self._makeOne('-s', 'dummy', 'Unittest', target_class=YahInputPCreateCommand) |
| | | |
| | | cmd = self._makeOne( |
| | | '-s', 'dummy', 'Unittest', target_class=YahInputPCreateCommand |
| | | ) |
| | | scaffold = DummyScaffold('dummy') |
| | | cmd.scaffolds = [scaffold] |
| | | cmd.pyramid_dist = DummyDist("0.10.1dev") |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Unittest', 'egg': 'Unittest', 'package': 'unittest', |
| | | 'pyramid_version': '0.10.1dev', |
| | | 'pyramid_docs_branch': 'master'}) |
| | | { |
| | | 'project': 'Unittest', |
| | | 'egg': 'Unittest', |
| | | 'package': 'unittest', |
| | | 'pyramid_version': '0.10.1dev', |
| | | 'pyramid_docs_branch': 'master', |
| | | }, |
| | | ) |
| | | |
| | | def test_force_override_conflicting_name(self): |
| | | cmd = self._makeOne('-s', 'dummy', 'Unittest', '--ignore-conflicting-name') |
| | | cmd = self._makeOne( |
| | | '-s', 'dummy', 'Unittest', '--ignore-conflicting-name' |
| | | ) |
| | | scaffold = DummyScaffold('dummy') |
| | | cmd.scaffolds = [scaffold] |
| | | cmd.pyramid_dist = DummyDist("0.10.1dev") |
| | |
| | | self.assertEqual(result, 0) |
| | | self.assertEqual( |
| | | scaffold.vars, |
| | | {'project': 'Unittest', 'egg': 'Unittest', 'package': 'unittest', |
| | | 'pyramid_version': '0.10.1dev', |
| | | 'pyramid_docs_branch': 'master'}) |
| | | { |
| | | 'project': 'Unittest', |
| | | 'egg': 'Unittest', |
| | | 'package': 'unittest', |
| | | 'pyramid_version': '0.10.1dev', |
| | | 'pyramid_docs_branch': 'master', |
| | | }, |
| | | ) |
| | | |
| | | def test_force_override_site_name(self): |
| | | from pyramid.scripts.pcreate import PCreateCommand |
| | | |
| | | class NayInputPCreateCommand(PCreateCommand): |
| | | def confirm_bad_name(self, pkg_name): |
| | | return False |
| | | cmd = self._makeOne('-s', 'dummy', 'Site', target_class=NayInputPCreateCommand) |
| | | |
| | | cmd = self._makeOne( |
| | | '-s', 'dummy', 'Site', target_class=NayInputPCreateCommand |
| | | ) |
| | | scaffold = DummyScaffold('dummy') |
| | | cmd.scaffolds = [scaffold] |
| | | cmd.pyramid_dist = DummyDist("0.10.1dev") |
| | |
| | | class Test_main(unittest.TestCase): |
| | | def _callFUT(self, argv): |
| | | from pyramid.scripts.pcreate import main |
| | | |
| | | return main(argv, quiet=True) |
| | | |
| | | def test_it(self): |
| | | result = self._callFUT(['pcreate']) |
| | | self.assertEqual(result, 2) |
| | | |
| | | |
| | | class DummyScaffold(object): |
| | | def __init__(self, name): |
| | |
| | | self.output_dir = output_dir |
| | | self.vars = vars |
| | | |
| | | |
| | | class DummyDist(object): |
| | | def __init__(self, version): |
| | | self.version = version |