summaryrefslogtreecommitdiff
path: root/pyramid
AgeCommit message (Collapse)Author
2015-06-11use input_ from p.compat, renamed optionIgor Stroh
- Use pyramid.compat.input_ instead of manually checking for python version and chosing the appropriate input/raw_input function - Renamed--force-conflicting-name option to --ignore-conflicting-name - Display invalid scaffold names in a sorted manner
2015-06-10added py2.6 compatibility, removed test for 'site'Igor Stroh
- Made sure str.format() calls are py2.6 compatible - Removed test_scaffolds/test_init.py#test_pre_site since the check is handled in pcreate script
2015-06-10make sure user input is py2.x/py3 compatibleIgor Stroh
- Use input() in python3 and raw_input in python 2.x - Remoced unused local variables
2015-06-10removed unused exceptionsIgor Stroh
2015-06-10handle conflicting project names gracefully, fixes: #1357Igor Stroh
- Check for importable packages/modules with the same name as the package to be created - Added --force-conflicting-name option to enforce the use of a conflicting package - Added appropriate tests
2015-06-09Merge pull request #1836 from Pylons/fix-1832-masterTres Seaver
Return concrete classes from 'pyramid.httpexceptions.exception_response'
2015-06-09Return concrete classes from 'pyramid.httpexceptions.exception_response'.Tres Seaver
The base classes are not appropriate for 400 and 500 status codes. See: #1832
2015-06-05We explicitly pass in the interfaces provided by the request asChris McDonough
request_iface to _call_view; we don't want _call_view to use request.request_iface, because render_view_to_response and friends are pretty much limited to finding views that are not views associated with routes, and the only thing request.request_iface is used for is to find route-based views. The render_view_to_response API is (and always has been) a stepchild API reserved for use of those who actually use traversal. Doing this fixes an infinite recursion bug introduced in Pyramid 1.6a1, and causes the render_view* APIs to behave as they did in 1.5 and previous. We should probably provide some sort of different API that would allow people to find views for routes. Fixes #1643.
2015-05-27add an example decorator showing a response being used unconditionallyMichael Merickel
2015-05-24update theme CSS files for wiki tutorialsSteve Piercy
2015-05-24cache bust tokenSteve Piercy
2015-04-26allow dots in the jsonp callback and prefix content with a commentMichael Merickel
The comment prefix should potential exploints from flash plugins (See CVE-2014-4671 "Rosetta Flash").
2015-04-20update development.ini in scaffolds to listen on 127.0.0.1Michael Merickel
2015-04-19Merge pull request #1627 from bertjwregeer/security/jsonpMichael Merickel
Add some validation for the JSONP callback
2015-04-19Merge branch 'pr/1571'Michael Merickel
2015-04-17default response_callback and finished_callback to an empty deque instead of ↵Michael Merickel
None fixes #1600
2015-04-15Restore request.response if renderer raises exceptionJeff Dairiki
This fixes two bugs in the ``temporary_response`` context manager: - ``Request.response`` should be restored even if the renderer raises an exception - If ``request.response`` is initially set to ``None``, it should be restored to ``None`` (rather than deleted). References: #1563
2015-04-15Add tests for temporary_response context managerJeff Dairiki
These tests test for, among other things, the nits described in comments on #1563, namely: - ``Request.response`` should be restored even if the renderer raises an exception - If ``request.response`` is initially set to ``None``, it should be restored to ``None`` (rather than deleted). (Some of these tests currently fail.)
2015-04-14Add some validation for the JSONP callbackBert JW Regeer
The callback variable could be used to arbitrarily inject javascript into the response object. This validates that the callback doesn't begin with a number and is standard US ASCII characters, because trying to make sure the JavaScript function name is actually valid would require parsing JavaScript itself...
2015-04-13Ignore more pep8 checks and add to travisJohn Anderson
2015-04-13Merge branch 'master' of https://github.com/Pylons/pyramid into start_pep8John Anderson
Conflicts: pyramid/view.py
2015-04-13make it possible to run scaffold functests using toxChris McDonough
2015-04-12omg how embarrassing, forgot to run tests before merging the request ↵Chris McDonough
subclass fix branch
2015-04-12merge master back into this PR branchChris McDonough
2015-04-06Merge branch 'fix.view-lookup'Chris McDonough
2015-04-06change excview_tween to use _call_view instead of adapters.lookup; ↵Chris McDonough
parameterize _call_view and _find_views to cope
2015-04-06add comment about not changing view_execution_permitted use of .lookup for ↵Chris McDonough
view finding
2015-04-06convert render_view_to_response to use _call_viewChris McDonough
2015-04-06break out _call_view into separate importable callable for use in scriptsChris McDonough
2015-04-06use _find_views instead of lookup in proutesChris McDonough
2015-04-06unused importsChris McDonough
2015-04-06use _find_views in pviewsChris McDonough
2015-04-03no need to iter() the resultChris McDonough
2015-04-03cache view lookups; see #1557Chris McDonough
2015-03-15add docs to notfound_view_config decorator code, expand docs to inlcude an ↵Chris McDonough
example
2015-03-15Allow passing a custom redirect class for appending slashesDonald Stufft
2015-03-13fix comment in forbidden_view_configJunya Hayashi
2015-03-11fix merge conflicts after merging master to fix.view-lookup branch; do the ↵Chris McDonough
merge to see diffs more clearly
2015-03-06Merge branch 'master' of https://github.com/Pylons/pyramid into start_pep8John Anderson
Conflicts: pyramid/config/views.py pyramid/scaffolds/tests.py tox.ini
2015-03-05Merge pull request #1471 from Pylons/feature.py3-coverageMichael Merickel
update tox/travis to check code coverage on py3
2015-03-05add clone to the IRendererInfo interfaceMichael Merickel
2015-03-05Merge branch 'master' into fix.shared-view-rendererMichael Merickel
2015-02-24only reset terminal echo flag if stdin is a ttyDavid Glick
2015-02-22remove tuple creation from inner loopMichael Merickel
2015-02-22Merge pull request #1563 from Pylons/fix.idempotent-render-to-responseMichael Merickel
update render_to_response to prevent renderers from mutating request.response
2015-02-20Merge branch 'master' into feature.py3-coverageMichael Merickel
2015-02-19Fix asset override with packageMarc Abramowitz
`AssetsConfiguratorMixin.override_asset` does: ```python __import__(override_package) to_package = sys.modules[override_package] override_source = PackageAssetSource(to_package, override_prefix) ``` so it's assuming that the `package` argument to `PackageAssetSource.__init__` takes a module object. But then `PackageAssetSource` had a bunch of methods that did stuff like: - `pkg_resources.resource_exists(self.package, path)` - `pkg_resources.resource_filename(self.package, path)` - `pkg_resources.resource_stream(self.package, path)` and all these `pkg_resources` functions need their `package_or_requirement` argument to be a **string**; not a module - see https://pythonhosted.org/setuptools/pkg_resources.html#basic-resource-access, which says: > the `package_or_requirement argument` may be either a Python package/module > name (e.g. `foo.bar`) or a `Requirement` instance. This causes errors when overriding assets -- e.g.: I am using Kotti and Kotti has this code (https://github.com/Kotti/Kotti/blob/master/kotti/__init__.py#L251): ```python for override in [a.strip() for a in settings['kotti.asset_overrides'].split() if a.strip()]: config.override_asset(to_override='kotti', override_with=override) ``` A Kotti add-on called kotti_navigation does this (https://github.com/Kotti/kotti_navigation/blob/master/kotti_navigation/__init__.py#L12): ```python settings['kotti.asset_overrides'] += ' kotti_navigation:kotti-overrides/' ``` The above code is all legit as far as I can tell and it works fine in pyramid 1.5.2, but it fails with pyramid master with the following: ```pytb File "/Users/marca/python/virtualenvs/kotti_inventorysvc/lib/python2.7/site-packages/pkg_resources.py", line 959, in resource_filename self, resource_name File "/Users/marca/dev/git-repos/pyramid/pyramid/config/assets.py", line 31, in get_resource_filename filename = overrides.get_filename(resource_name) File "/Users/marca/dev/git-repos/pyramid/pyramid/config/assets.py", line 125, in get_filename result = source.get_filename(path) File "/Users/marca/dev/git-repos/pyramid/pyramid/config/assets.py", line 224, in get_filename if pkg_resources.resource_exists(self.package, path): File "/Users/marca/python/virtualenvs/kotti_inventorysvc/lib/python2.7/site-packages/pkg_resources.py", line 948, in resource_exists return get_provider(package_or_requirement).has_resource(resource_name) File "/Users/marca/python/virtualenvs/kotti_inventorysvc/lib/python2.7/site-packages/pkg_resources.py", line 225, in get_provider __import__(moduleOrReq) TypeError: __import__() argument 1 must be string, not module ``` This was a little tricky to resolve because the `override_asset` function wants to pass a module object to `PackageAssetSource.__init__`, but there are a number of tests in `pyramid/tests/test_config/test_assets.py` that assume that it takes a string. So I ended up making it legal to pass either one, so that I don't have to change as much calling code. See https://github.com/Kotti/kotti_navigation/issues/13
2015-02-19Enhance test_assets to expose #1580Marc Abramowitz
This enhances existing tests so that they detect the issue in #1580. Then I'm going to fix the issue in PR #1587. See #1580
2015-02-17pserve -b will always open 127.0.0.1Michael Merickel
2015-02-17appease coverageChris McDonough