summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt3
-rw-r--r--pyramid/scaffolds/__init__.py4
-rw-r--r--pyramid/tests/test_scaffolds/test_init.py5
3 files changed, 12 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index c1a4f0216..8bdb35d6e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -48,6 +48,9 @@ Bug Fixes
argument which contains characters that are unsuitable for URLs. See
https://github.com/Pylons/pyramid/issues/349 for more info.
+- Prevent a scaffold rendering from being named ``site`` (conflicts with
+ Python internal site.py).
+
Backwards Incompatibilities
---------------------------
diff --git a/pyramid/scaffolds/__init__.py b/pyramid/scaffolds/__init__.py
index dc6926024..50c04017a 100644
--- a/pyramid/scaffolds/__init__.py
+++ b/pyramid/scaffolds/__init__.py
@@ -7,6 +7,10 @@ from pyramid.scaffolds.template import Template
class PyramidTemplate(Template):
def pre(self, command, output_dir, vars):
+ if vars['package'] == 'site':
+ raise ValueError('Sorry, you may not name your package "site". '
+ 'The package name "site" has a special meaning in '
+ 'Python. Please name it anything except "site".')
vars['random_string'] = native_(binascii.hexlify(os.urandom(20)))
package_logger = vars['package']
if package_logger == 'root':
diff --git a/pyramid/tests/test_scaffolds/test_init.py b/pyramid/tests/test_scaffolds/test_init.py
index 6b038914a..4988e66ff 100644
--- a/pyramid/tests/test_scaffolds/test_init.py
+++ b/pyramid/tests/test_scaffolds/test_init.py
@@ -11,6 +11,11 @@ class TestPyramidTemplate(unittest.TestCase):
inst.pre('command', 'output dir', vars)
self.assertTrue(vars['random_string'])
self.assertEqual(vars['package_logger'], 'one')
+
+ def test_pre_site(self):
+ inst = self._makeOne()
+ vars = {'package':'site'}
+ self.assertRaises(ValueError, inst.pre, 'command', 'output dir', vars)
def test_pre_root(self):
inst = self._makeOne()