Michael Merickel
2018-10-15 0c29cf2df41600d3906d521c72991c7686018b71
tests/test_scripts/test_pcreate.py
@@ -4,6 +4,7 @@
class TestPCreateCommand(unittest.TestCase):
    def setUp(self):
        from pyramid.compat import NativeIO
        self.out_ = NativeIO()
    def out(self, msg):
@@ -11,6 +12,7 @@
    def _getTargetClass(self):
        from pyramid.scripts.pcreate import PCreateCommand
        return PCreateCommand
    def _makeOne(self, *args, **kw):
@@ -46,8 +48,9 @@
        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')
@@ -65,6 +68,7 @@
    def test_known_scaffold_single_rendered(self):
        import os
        cmd = self._makeOne('-s', 'dummy', 'Distro')
        scaffold = DummyScaffold('dummy')
        cmd.scaffolds = [scaffold]
@@ -73,17 +77,25 @@
        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")
@@ -92,17 +104,22 @@
        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]
@@ -111,15 +128,22 @@
        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")
@@ -130,15 +154,22 @@
        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')
@@ -148,23 +179,36 @@
        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]
@@ -173,13 +217,18 @@
        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')
@@ -190,8 +239,14 @@
        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')
@@ -202,8 +257,14 @@
        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')
@@ -214,8 +275,14 @@
        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')
@@ -226,9 +293,14 @@
        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')
@@ -239,16 +311,25 @@
        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")
@@ -256,12 +337,19 @@
        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")
@@ -269,16 +357,25 @@
        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")
@@ -289,11 +386,13 @@
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):
@@ -304,6 +403,7 @@
        self.output_dir = output_dir
        self.vars = vars
class DummyDist(object):
    def __init__(self, version):
        self.version = version