From b9ec1bfa7b9aa4bc5bf49382b51758229b8c5ce2 Mon Sep 17 00:00:00 2001 From: Hadrien David Date: Wed, 5 Dec 2012 07:32:16 -0500 Subject: [PATCH] * Freeze pymongo version to 2.3 in setup because 2.4 is not compatible with last mongokit version. * No more need to have MONGO_DB_NAME in environm it is deduced from mongo db uri --- .gitignore | 25 +++++++++++++++++++ .hgignore | 9 ------- MANIFEST.in | 1 + README.rst | 1 + example/model/__init__.py | 1 - example/model/application.py | 3 +-- example/model/message.py | 1 - example/model/user.py | 1 - example/views/application_user_messages.py | 1 - example/views/application_users.py | 1 - example/views/applications.py | 1 - example/views/messages.py | 1 - pyramid_rest/mongo.py | 10 +++----- pyramid_rest/renderer.py | 1 - pyramid_rest/resource.py | 3 ++- pyramid_rest/tests/__init__.py | 1 - pyramid_rest/tests/functional/__init__.py | 6 ++--- .../tests/functional/test_resource.py | 1 - pyramid_rest/tests/unittests/test_mongo.py | 1 - pyramid_rest/tests/unittests/test_renderer.py | 1 - setup.cfg | 2 +- setup.py | 3 +-- 22 files changed, 39 insertions(+), 36 deletions(-) create mode 100644 .gitignore delete mode 100644 .hgignore create mode 100644 MANIFEST.in diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4b86c3e --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +bin +var +sdist + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.noseids +velo/.noseids +velo/coverage.xml +velo/tests/.noseids +velo/tests/coverage.xml +coverage.xml +nosetests.xml diff --git a/.hgignore b/.hgignore deleted file mode 100644 index a21ed9e..0000000 --- a/.hgignore +++ /dev/null @@ -1,9 +0,0 @@ -\.coverage -\.noseids -\.env -coverage.xml -nosetests.xml -pyramid_rest\.egg-info -.*\.pyc -\.DS_Store -docs/build diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..bb37a27 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include *.rst diff --git a/README.rst b/README.rst index 584a1f6..1f81745 100644 --- a/README.rst +++ b/README.rst @@ -72,6 +72,7 @@ Pyramid REST What next? ---------- +#. Security #. HTTP PATCH method: http://tools.ietf.org/html/rfc5789 #. Resource Scaffolding command; #. Links; diff --git a/example/model/__init__.py b/example/model/__init__.py index 28b60c1..a5f6be0 100644 --- a/example/model/__init__.py +++ b/example/model/__init__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from example.model.application import Application diff --git a/example/model/application.py b/example/model/application.py index 7d1ccc9..fb7cc1d 100644 --- a/example/model/application.py +++ b/example/model/application.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from mongokit import Document @@ -12,7 +11,7 @@ class Application(Document): structure = { 'name': unicode, - 'secret_key': basestring, + 'secret_key': unicode, } required_fields = ['name', 'secret_key'] diff --git a/example/model/message.py b/example/model/message.py index c7f1bca..1a7111d 100644 --- a/example/model/message.py +++ b/example/model/message.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from bson.objectid import ObjectId diff --git a/example/model/user.py b/example/model/user.py index bb189f3..d1c22b4 100644 --- a/example/model/user.py +++ b/example/model/user.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from bson.objectid import ObjectId diff --git a/example/views/application_user_messages.py b/example/views/application_user_messages.py index 129e402..344436e 100644 --- a/example/views/application_user_messages.py +++ b/example/views/application_user_messages.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from pyramid_rest.mongo import CollectionView diff --git a/example/views/application_users.py b/example/views/application_users.py index be6d018..98fca79 100644 --- a/example/views/application_users.py +++ b/example/views/application_users.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from pyramid_rest.resource import method_config diff --git a/example/views/applications.py b/example/views/applications.py index 36dd7b1..e938195 100644 --- a/example/views/applications.py +++ b/example/views/applications.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from pyramid_rest.mongo import CollectionView diff --git a/example/views/messages.py b/example/views/messages.py index 30a0a26..a00128e 100644 --- a/example/views/messages.py +++ b/example/views/messages.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from pyramid_rest.mongo import CollectionView diff --git a/pyramid_rest/mongo.py b/pyramid_rest/mongo.py index d336f73..550eab4 100644 --- a/pyramid_rest/mongo.py +++ b/pyramid_rest/mongo.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import - import os import logging +from urlparse import urlparse from bson.objectid import ObjectId, InvalidId import mongokit @@ -23,13 +22,12 @@ log = logging.getLogger(__name__) -DATABASE_NAME = os.environ['MONGO_DB_NAME'] - __all__ = ['register_document', 'CollectionView', ] def includeme(config): log.info('Configure mongo...') + os.environ['MONGO_URL_NAME'] = urlparse(os.environ['MONGO_URI']).path[1:] connection = MongoConnection( os.environ['MONGO_URI'], auto_start_request=False, @@ -79,7 +77,7 @@ def mongo_connection(request): def mongo_db(request): - return getattr(request.mongo_connection, DATABASE_NAME) + return getattr(request.mongo_connection, os.environ['MONGO_DB_NAME']) def begin_request(event): @@ -172,6 +170,6 @@ def show(self, **identifiers): return self._get_document_or_404(identifiers) def delete(self, **identifiers): - # XXX: cascade delete sub resources? + """No delete cascade on sub resources.""" self._get_document_or_404(identifiers).delete() return HTTPOk() diff --git a/pyramid_rest/renderer.py b/pyramid_rest/renderer.py index 1fa78f2..9319be6 100644 --- a/pyramid_rest/renderer.py +++ b/pyramid_rest/renderer.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import from datetime import datetime, date from decimal import Decimal import json diff --git a/pyramid_rest/resource.py b/pyramid_rest/resource.py index 22870fa..1dd3a24 100644 --- a/pyramid_rest/resource.py +++ b/pyramid_rest/resource.py @@ -120,7 +120,8 @@ def add_resource( try: cls = config.maybe_dotted(dotted_class) except ImportError: - raise ImportError('No class %s found.' % dotted_class) + log.error('No class %s found.', dotted_class) + raise config.scan(dotted_module) res(cls) # decorate class to register config diff --git a/pyramid_rest/tests/__init__.py b/pyramid_rest/tests/__init__.py index 6f5c2ac..42511c9 100644 --- a/pyramid_rest/tests/__init__.py +++ b/pyramid_rest/tests/__init__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import import os diff --git a/pyramid_rest/tests/functional/__init__.py b/pyramid_rest/tests/functional/__init__.py index 9fdbc8a..2811ce3 100644 --- a/pyramid_rest/tests/functional/__init__.py +++ b/pyramid_rest/tests/functional/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import +import os import sys import unittest @@ -18,10 +18,10 @@ def setUp(self): @property def mongo_db(self): - from pyramid_rest.mongo import IMongoConnection, DATABASE_NAME + from pyramid_rest.mongo import IMongoConnection return getattr( self.app.app.registry.getUtility(IMongoConnection), - DATABASE_NAME + os.environ['MONGO_DB_NAME'] ) def tearDown(self): diff --git a/pyramid_rest/tests/functional/test_resource.py b/pyramid_rest/tests/functional/test_resource.py index d913584..97a9524 100644 --- a/pyramid_rest/tests/functional/test_resource.py +++ b/pyramid_rest/tests/functional/test_resource.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import import unittest from pyramid import testing diff --git a/pyramid_rest/tests/unittests/test_mongo.py b/pyramid_rest/tests/unittests/test_mongo.py index 6a9f088..fbf2e48 100644 --- a/pyramid_rest/tests/unittests/test_mongo.py +++ b/pyramid_rest/tests/unittests/test_mongo.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import import unittest diff --git a/pyramid_rest/tests/unittests/test_renderer.py b/pyramid_rest/tests/unittests/test_renderer.py index f15bbb5..e1c6da3 100644 --- a/pyramid_rest/tests/unittests/test_renderer.py +++ b/pyramid_rest/tests/unittests/test_renderer.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import import unittest from decimal import Decimal from bson.objectid import ObjectId diff --git a/setup.cfg b/setup.cfg index b20a802..715b1cf 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = pyramid_rest -version = 0.1.0 +version = 0.2.1 summary = Pyramid Rest Extension requires-dist = pyramid diff --git a/setup.py b/setup.py index 8ea8dc8..3c4dc6a 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import absolute_import import setuptools if not getattr(setuptools, "_distribute", False): @@ -20,7 +19,7 @@ 'yanc', ] -extras_require = {'mongo': ['mongokit', ]} +extras_require = {'mongo': ['mongokit', 'pymongo==2.3']} setuptools.setup( setup_requires=setup_requires,