[ckan-changes] [okfn/ckan] 66c450: [#642] Use single quotes where possible
GitHub
noreply at github.com
Tue Apr 2 22:00:16 UTC 2013
Branch: refs/heads/642-localization-independent-datastore-permission-ckecks
Home: https://github.com/okfn/ckan
Commit: 66c450a6d655c52e679e3de9a25d36a810bc73da
https://github.com/okfn/ckan/commit/66c450a6d655c52e679e3de9a25d36a810bc73da
Author: Dominik Moritz <domoritz at gmail.com>
Date: 2013-04-02 (Tue, 02 Apr 2013)
Changed paths:
M ckanext/datastore/db.py
M ckanext/datastore/plugin.py
Log Message:
-----------
[#642] Use single quotes where possible
Commit: a64916ce12ceb88fa5da1e8fe15b02f2848519dd
https://github.com/okfn/ckan/commit/a64916ce12ceb88fa5da1e8fe15b02f2848519dd
Author: Vitor Baptista <vitor at vitorbaptista.com>
Date: 2013-04-02 (Tue, 02 Apr 2013)
Changed paths:
M ckanext/datastore/tests/test_configure.py
Log Message:
-----------
[#642] Refactor and fix Datastore tests
Datastore is a SingletonPlugin, so it doesn't matter if we call
plugin.DatastorePlugin() many times: we always end up with the same instance.
I've added a workaround that, first, saves and unloads the current datastore
instance, then sets:
pyutilib.component.core.PluginGlobals.singleton_services()[plugin.DatastorePlugin] = True
This will make plugin.DatastorePlugin not be a Singleton anymore, so any
subsequent calls to ckan.plugins.load('datastore') will create a new instance.
Then, in the next line, we create a new DatastorePlugin instance by loading
it, and save it into self.p and
pyutilib.component.core.PluginGlobals.singleton_services()[plugin.DatastorePlugin].
This turns DatastorePlugin into a Singleton again, and subsequent calls to
ckan.plugins.load('datastore') will return this new instance instead.
Then, in the teardown, we unload the current the datastore, which gets rid of
our test instance, and put the original datastore back in its place, so the
environment before setUp() is the same as after tearDown().
For InvalidUrlsOrPermissionsException, what I wanted was a way to check if
_check_urls_and_permissions() failed. I did this by overloading _log_or_raise()
with an unique Exception, and checking if it's raised. If so, I guarantee that
_log_or_raise() was called. This feels like too much boilerplate, but we don't
have a stub/mock library, so we have to write it.
Conflicts:
ckanext/datastore/tests/test_configure.py
Compare: https://github.com/okfn/ckan/compare/ad4bb46df8a2...a64916ce12ce
More information about the ckan-changes
mailing list