运行CKAN核心测试

时间:2017-09-12 08:44:54

标签: ckan

我试图运行CKAN测试并且它无法正常工作。

我的配置(本地泊坞窗设置,因此凭据显示正常)位于https://gist.github.com/lwm/cd33556fb18d9b8395209cb6233d75af

我非常确定我的postgreSQL,Redis和Solr设置正确。

我可以看到这些测试正在传递给CKAN HEAD,所以我很难过。

这是我的测试日志:

(default)root@b13dc1f03f32:/usr/lib/ckan/default/src/ckan# nosetests --with-pylons=$CKAN_INI -x
2017-09-12 08:38:39,831 INFO  [ckan.config.environment] Loading static files from public
2017-09-12 08:38:39,860 INFO  [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
2017-09-12 08:38:40,044 INFO  [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
2017-09-12 08:38:40,158 INFO  [ckan.model] Database tables created
2017-09-12 08:38:40,158 INFO  [ckan.websetup] Creating tables: SUCCESS
.2017-09-12 08:38:40,958 INFO  [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
F
======================================================================
FAIL: ckan.tests.config.test_environment.TestSiteUrlMandatory.test_missing_siteurl
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/usr/lib/ckan/default/src/ckan/ckan/tests/helpers.py", line 389, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/ckan/default/src/ckan/ckan/tests/config/test_environment.py", line 90, in test_missing_siteurl
    nosetools.assert_raises(RuntimeError, environment.update_config)
AssertionError: RuntimeError not raised

----------------------------------------------------------------------
Ran 2 tests in 1.564s

FAILED (failures=1)

非常感谢任何指针!

1 个答案:

答案 0 :(得分:1)

可以通过环境变量设置一些CKAN配置选项,例如将其作为Docker容器运行时。

这些特定测试没有考虑到这一点,只会检查站点URL是否直接在配置对象中设置,这就是为什么它们传入本地安装并在容器内失败。

为了使它们更健壮,您需要让它们忽略环境变量中的设置:

diff --git a/ckan/tests/config/test_environment.py b/ckan/tests/config/test_environment.py
index fafe701..16f1895 100644
--- a/ckan/tests/config/test_environment.py
+++ b/ckan/tests/config/test_environment.py
@@ -85,6 +85,15 @@ class TestUpdateConfig(h.FunctionalTestBase):

 class TestSiteUrlMandatory(object):

+    @classmethod
+    def setup_class(cls):
+        cls._site_url_from_env_var = os.environ.pop('CKAN_SITE_URL', None)
+
+    @classmethod
+    def teardown_class(cls):
+        if cls._site_url_from_env_var:
+            os.environ['CKAN_SITE_URL'] = cls._site_url_from_env_var
+
     @helpers.change_config('ckan.site_url', '')
     def test_missing_siteurl(self):
         nosetools.assert_raises(RuntimeError, environment.update_config)

随意提交拉取请求以帮助改进上游测试。