Skip to content

Commit

Permalink
add unit test for complete_articles but do not enable it yet
Browse files Browse the repository at this point in the history
as we say: #bugrelou
  • Loading branch information
mdamien committed Sep 12, 2018
1 parent 65b038f commit ba1d36b
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 14 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ script:
- python tlfp/tools/update_procedure.py
- python tlfp/tools/sort_articles.py
- python tests/test_parse_texte.py
- # python tests/test_complete_articles.py # not yet passing
- python tests/test_steps.py
- git clone https://github.com/regardscitoyens/the-law-factory-parser-test-cases.git tests_cases
- python tests/test_regressions.py tests_cases
Expand Down
55 changes: 55 additions & 0 deletions tests/ressources/complete_me.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"current": [
{
"definitif": false,
"depot": false,
"expose": "",
"id": "S11-ta064",
"nossenateurs_id": "20112012-064",
"source": "https://www.senat.fr/leg/tas11-064.html",
"titre": "proposition de loi portant diverses dispositions d'ordre cynégétique",
"type": "texte"
},
{
"alineas": {
"001": "L'article L. 424-3 du code de l'environnement est ainsi modifié :",
"002": "1° et 1° bis (Non modifié)",
"003": "2° Le second alinéa du II est ainsi rédigé :",
"004": "\"Dans ces établissements, les dates d'ouverture et de fermeture de la chasse des perdrix grises, perdrix rouges et faisans de chasse, issus d'élevage sont les dates d'ouverture générale et de clôture générale de la chasse dans le département.\""
},
"order": 9,
"statut": "none",
"titre": "6",
"type": "article"
}
],
"previous": [
{
"definitif": false,
"depot": false,
"expose": "",
"id": "S11-l298",
"source": "https://www.senat.fr/leg/ppl11-298.html",
"titre": "proposition de loi portant diverses dispositions d'ordre cynégétique",
"type": "texte"
},
{
"alineas": {
"001": "L'article L. 424-3 du même code est ainsi modifié :",
"002": "1° Au second alinéa du I, la référence : \"L. 425-14\" est remplacée par la référence : \"L. 425-15\" et, après le mot : \"applicables\", sont insérés les mots : \"au gibier à poil\" ;",
"003": "1° bis Le premier alinéa du II est complété par une phrase ainsi rédigée :",
"004": "\"L'article L. 425-15 ne s'applique pas à la pratique de la chasse d'oiseaux issus de lâchers dans les établissements de chasse à caractère commercial.\" ;",
"005": "2° Le second alinéa du II est ainsi rédigé :",
"006": "\"Dans ces établissements, les dates d'ouverture et de fermeture de la chasse des oiseaux d'élevage sont les dates d'ouverture générale et de clôture générale de la chasse dans le département.\""
},
"order": 8,
"statut": "none",
"titre": "6",
"type": "article"
}
],
"previous_step_metas": {
},
"step": {
}
}
14 changes: 14 additions & 0 deletions tests/test_complete_articles.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import sys, os, json
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from tlfp.tools.common import log_print
from tlfp.tools import complete_articles


TESTS_DIR = os.path.dirname(os.path.abspath(__file__))

with log_print() as log:
case = json.load(open(os.path.join(TESTS_DIR, 'ressources/complete_me.json')))
result = complete_articles.complete(**case)
assert len(result[1]['alineas']) == 6
assert log.getvalue() == ''
21 changes: 10 additions & 11 deletions tests/test_regressions.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,17 +101,16 @@ def _is_same_helper(dircmp):
senat_id = directory.split('/')[-1]
print(' - test regressions for', senat_id)

with log_print(only_log=True) as log:
parse_one.process(OUTPUT_DIR, senat_id)
comp = filecmp.dircmp(directory, OUTPUT_DIR + '/' + senat_id)
if _is_same_helper(comp):
print(' > OK')
else:
print(log.getvalue().replace('\n', '\nlog: '))
print(' > Output different to the verified output: '
'https://github.com/regardscitoyens/'
'the-law-factory-parser-test-cases/tree/master/%s' % senat_id)
sys.exit(1)
parse_one.process(OUTPUT_DIR, senat_id)
comp = filecmp.dircmp(directory, OUTPUT_DIR + '/' + senat_id)
if _is_same_helper(comp):
print(' > OK')
else:
print()
print(' > Output different to the verified output: '
'https://github.com/regardscitoyens/'
'the-law-factory-parser-test-cases/tree/master/%s' % senat_id)
sys.exit(1)

if not REGEN_TESTS:
shutil.rmtree(OUTPUT_DIR)
Expand Down
6 changes: 3 additions & 3 deletions tlfp/tools/complete_articles.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
from tlfp.tools.common import clean_text_for_diff, compute_similarity, open_json, print_json


def complete(current, previous, step, previous_step_metas, table_concordance, anteprevious=None, debug=False):
def complete(current, previous, step, previous_step_metas, table_concordance=None, anteprevious=None, debug=False):
current = copy.deepcopy(current)
previous = copy.deepcopy(previous)
table_concordance = CaseInsensitiveDict(table_concordance)
table_concordance = CaseInsensitiveDict(table_concordance or dict())

This comment has been minimized.

Copy link
@boogheta

boogheta Sep 14, 2018

Contributor

Pas du tout sûr que ce que je propose soit correct, mais mettre {} à la place de None dans la definition de la fonction ne ferait pas ces deux choses là d'un coup ?

DEBUG = debug or '--debug' in sys.argv
def log(text):
Expand Down Expand Up @@ -121,7 +121,7 @@ def get_mark_from_last(text, s, l="", sep="", enable_copyall=False, copyall=Fals
if n == 0:
i = "%s%s %s" % (s, ". -" if re_mat_simple.match(s) else sep, i)
if record:
log(" copy alinea")
log(" copy alinea: " + i[:10])
res.append(i)
# retry and get everything as I before II added if not found
if not res:
Expand Down

1 comment on commit ba1d36b

@boogheta
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 pour des test unit pour complete, on pourra y caser beaucoup de choses

Please sign in to comment.