[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