运行CKAN核心测试
我正在尝试运行CKAN测试,但它不起作用 我的配置(本地docker设置,因此凭证显示正常)位于 我确信我的postgreSQL、Redis和Solr设置正确 我可以看到这些测试都通过了,所以我很困惑 以下是我的测试日志:运行CKAN核心测试,ckan,Ckan,我正在尝试运行CKAN测试,但它不起作用 我的配置(本地docker设置,因此凭证显示正常)位于 我确信我的postgreSQL、Redis和Solr设置正确 我可以看到这些测试都通过了,所以我很困惑 以下是我的测试日志: (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
(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)
非常感谢任何指点 一些CKAN配置选项可以通过环境变量进行设置,例如作为Docker容器运行时 这些特定的测试没有考虑到这一点,只会检查站点url是否直接在config对象中设置,所以这就是为什么它们通过本地安装,但在容器中失败的原因 要使它们更健壮,需要使它们忽略环境变量中的设置:
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)
请随时提交请求,以帮助改进上游测试。这是我的postgres日志(一些可疑行)