2017-09-12 1 views
1

J'essaie d'exécuter les tests CKAN et cela ne fonctionne pas.Exécution des tests de cœur CKAN

Ma configuration (installation de docker locale, donc les informations d'identification sont correctes) est à https://gist.github.com/lwm/cd33556fb18d9b8395209cb6233d75af.

Je suis sûr que mes postgreSQL, Redis et Solr sont correctement configurés.

Je peux voir ces tests passer sur CKAN HEAD, donc je suis assez perplexe.

Voilà mes journaux de test:

(default)[email protected]:/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) 

Les pointeurs sont très appréciés!

+0

Voici mon journal postgres (quelques lignes suspectes) https://gist.github.com/lwm/9f010d0e38c301219b75e6afaf17b95f –

Répondre

1

Certaines options de configuration CKAN peuvent être définies via des variables d'environnement, par exemple lors de l'exécution en tant que conteneur Docker. Ces tests particuliers ne tiennent pas compte de cela et ne vérifient que si l'URL du site a été définie directement dans l'objet config, c'est pourquoi ils passent dans une installation locale et échouent à l'intérieur du conteneur.

Pour les rendre plus robustes, vous devez les faire ignorer le paramètre de la variable d'environnement:

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) 

Ne hésitez pas à soumettre une demande de traction pour aider à améliorer les essais en amont.