Bug #10477
Certains tests sont sensibles à la graine aléatoire de python
Début:
30 mars 2016
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Trouvé via tox:
$ PYTHONHASHSEED='478281749' py.test -k test_form_items_datasource tests/test_form_pages.py ============================================================================= test session starts ============================================================================== platform linux2 -- Python 2.7.9 -- py-1.4.31 -- pytest-2.6.3 plugins: random collected 146 items tests/test_form_pages.py FF =================================================================================== FAILURES =================================================================================== ______________________________________________________________________ test_form_items_datasource[pickle] ______________________________________________________________________ pub = <wcs.publisher.WcsPublisher instance at 0x7f6599bfa368> def test_form_items_datasource(pub): formdef = create_formdef() formdef.fields = [fields.ItemsField(id='1', label='items', varname='items', required=False, data_source={'type': 'foobar'})] formdef.store() data_class = formdef.data_class() data_class.wipe() # add the named data source NamedDataSource.wipe() data_source = NamedDataSource(name='foobar') data_source.data_source = {'type': 'formula', 'value': repr([])} data_source.store() resp = get_app(pub).get('/test/') formdef.data_class().wipe() resp = resp.forms[0].submit('submit') # should go straight to validation assert 'Check values then click submit.' in resp.body assert resp.forms[0]['previous'] resp = resp.forms[0].submit('previous') # replace the named data source with one with items NamedDataSource.wipe() data_source = NamedDataSource(name='foobar') data_source.data_source = {'type': 'formula', 'value': repr(['un', 'deux'])} data_source.store() resp = get_app(pub).get('/test/') assert 'f1$elementun' in resp.form.fields assert 'f1$elementdeux' in resp.form.fields resp.form['f1$elementun'].checked = True resp.form['f1$elementdeux'].checked = True resp = resp.form.submit('submit') assert 'Check values then click submit.' in resp.body resp = resp.form.submit('submit') resp = resp.follow() assert data_class.select()[0].data == {'1': ['un', 'deux'], '1_display': 'un, deux'} data_source.data_source = {'type': 'formula', 'value': repr([{'id': '1', 'text': 'un'}, {'id': '2', 'text': 'deux'}])} data_source.store() data_class.wipe() resp = get_app(pub).get('/test/') assert 'f1$element1' in resp.form.fields assert 'f1$element2' in resp.form.fields resp.form['f1$element1'].checked = True resp.form['f1$element2'].checked = True resp = resp.form.submit('submit') assert 'Check values then click submit.' in resp.body resp = resp.form.submit('submit') resp = resp.follow() > assert data_class.select()[0].data == {'1': ['1', '2'], '1_display': 'un, deux'} E assert {'1': ['2', '...': 'deux, un'} == {'1': ['1', '2...': 'un, deux'} E Differing items: E {'1': ['2', '1']} != {'1': ['1', '2']} E {'1_display': 'deux, un'} != {'1_display': 'un, deux'} tests/test_form_pages.py:2197: AssertionError _______________________________________________________________________ test_form_items_datasource[sql] ________________________________________________________________________ pub = <wcs.publisher.WcsPublisher instance at 0x7f6599b62bd8> def test_form_items_datasource(pub): formdef = create_formdef() formdef.fields = [fields.ItemsField(id='1', label='items', varname='items', required=False, data_source={'type': 'foobar'})] formdef.store() data_class = formdef.data_class() data_class.wipe() # add the named data source NamedDataSource.wipe() data_source = NamedDataSource(name='foobar') data_source.data_source = {'type': 'formula', 'value': repr([])} data_source.store() resp = get_app(pub).get('/test/') formdef.data_class().wipe() resp = resp.forms[0].submit('submit') # should go straight to validation assert 'Check values then click submit.' in resp.body assert resp.forms[0]['previous'] resp = resp.forms[0].submit('previous') # replace the named data source with one with items NamedDataSource.wipe() data_source = NamedDataSource(name='foobar') data_source.data_source = {'type': 'formula', 'value': repr(['un', 'deux'])} data_source.store() resp = get_app(pub).get('/test/') assert 'f1$elementun' in resp.form.fields assert 'f1$elementdeux' in resp.form.fields resp.form['f1$elementun'].checked = True resp.form['f1$elementdeux'].checked = True resp = resp.form.submit('submit') assert 'Check values then click submit.' in resp.body resp = resp.form.submit('submit') resp = resp.follow() assert data_class.select()[0].data == {'1': ['un', 'deux'], '1_display': 'un, deux'} data_source.data_source = {'type': 'formula', 'value': repr([{'id': '1', 'text': 'un'}, {'id': '2', 'text': 'deux'}])} data_source.store() data_class.wipe() resp = get_app(pub).get('/test/') assert 'f1$element1' in resp.form.fields assert 'f1$element2' in resp.form.fields resp.form['f1$element1'].checked = True resp.form['f1$element2'].checked = True resp = resp.form.submit('submit') assert 'Check values then click submit.' in resp.body resp = resp.form.submit('submit') resp = resp.follow() > assert data_class.select()[0].data == {'1': ['1', '2'], '1_display': 'un, deux'} E assert {'1': ['2', '...': 'deux, un'} == {'1': ['1', '2...': 'un, deux'} E Differing items: E {'1': ['2', '1']} != {'1': ['1', '2']} E {'1_display': 'deux, un'} != {'1_display': 'un, deux'} tests/test_form_pages.py:2197: AssertionError ============================================================ 144 tests deselected by '-ktest_form_items_datasource' ============================================================ =================================================================== 2 failed, 144 deselected in 4.29 seconds ===================================================================
(wcs)bdauvergne@dor-lomin:~/Code/wcs$ PYTHONHASHSEED='3816911754' py.test -k test_form_items_datasource tests/test_form_pages.py ============================================================================= test session starts ============================================================================== platform linux2 -- Python 2.7.9 -- py-1.4.31 -- pytest-2.6.3 plugins: random collected 146 items tests/test_form_pages.py .. ============================================================ 144 tests deselected by '-ktest_form_items_datasource' ============================================================ =================================================================== 2 passed, 144 deselected in 4.38 seconds ===================================================================
Fichiers
Demandes liées
Révisions associées
ci: use random hash seed (#10477)
Historique
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Sujet changé de Certains tests sont sensibles à la graine du générateur de nombre aléatoire de python à Certains tests sont sensibles à la graine aléatoire de python
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
Il y aussi:
test_format_mimetypes
test_form_items_data_source_field_submit
test_home_keywords
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0006-tests-ignore-order-of-concerned-roles-in-formdata-ap.patch 0006-tests-ignore-order-of-concerned-roles-in-formdata-ap.patch ajouté
- Fichier 0005-tests-ignore-order-in-document-type-label-after-migr.patch 0005-tests-ignore-order-in-document-type-label-after-migr.patch ajouté
- Fichier 0004-tests-only-look-for-the-mimetype-in-response-body-10.patch 0004-tests-only-look-for-the-mimetype-in-response-body-10.patch ajouté
- Fichier 0003-output-all-possible-extensions-when-formating-mimety.patch 0003-output-all-possible-extensions-when-formating-mimety.patch ajouté
- Fichier 0002-tests-use-pyquery-to-match-keywords-attributes-10477.patch 0002-tests-use-pyquery-to-match-keywords-attributes-10477.patch ajouté
- Fichier 0001-keep-order-of-elements-when-parsing-CheckboxesWidget.patch 0001-keep-order-of-elements-when-parsing-CheckboxesWidget.patch ajouté
Voilà j'ai corrigé tout ce que j'ai trouvé, pour les mimetypes j'ai du changer un peu le comportement.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0001-fix-non-determinism-when-importing-wscall-workflow-a.patch 0001-fix-non-determinism-when-importing-wscall-workflow-a.patch ajouté
- Patch proposed changé de Non à Oui
Un de plus.
Mis à jour par Christophe Siraut il y a presque 6 ans
ack.
Je n'ai pas rebasé ces patches avec la version courante de wcs, mais ils correspondent bien aux échecs de tox que je rencontre.
Mis à jour par Christophe Siraut il y a presque 6 ans
- Lié à Bug #18050: Redonner une explication claire sur comment lancer les tests ajouté
Mis à jour par Benjamin Dauvergne il y a presque 6 ans
C'est clair que le gros boulot là ce sera le rebasage.
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
- Statut changé de Nouveau à Fermé
Quelqu'un d'autre s'en occupera un jour.
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Fermé à Nouveau
Personne ne s'occupera de tickets fermés.
Mis à jour par Robot Gitea il y a 9 mois
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/559
- Titre : WIP: retirer PYTHONHASHSEED=0 (#10477)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/559/files
Mis à jour par Robot Gitea il y a 9 mois
- Statut changé de Solution proposée à Solution validée
Paul Marillonnet (pmarillonnet) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a 9 mois
- Statut changé de Solution validée à Résolu (à déployer)
Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/559
- Titre : retirer PYTHONHASHSEED=0 (#10477)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/559/files
Mis à jour par Transition automatique il y a 9 mois
- Statut changé de Résolu (à déployer) à Solution déployée
tests: allow series to be returned in any order (#10477)