Codebase list python-debian / 697aa45
Update test style for test_repro_deb822.py Improve continuation lines and clarity of asserts Decruft some old mypy and unittest helpers Stuart Prescott 1 year, 6 months ago
1 changed file(s) with 63 addition(s) and 72 deletion(s). Raw diff Collapse all Expand all
232232 # _print_ast(deb822_file)
233233 # logging.info(f" --- END CASE {i} --- ")
234234 assert parse_case.error_element_count == error_element_count, \
235 "Correct number of error tokens for case " + c
235 "Correct number of error tokens for case " + c
236236 assert parse_case.paragraph_count == paragraph_count, \
237 "Correct number of paragraphs parsed for case " + c
237 "Correct number of paragraphs parsed for case " + c
238238 assert parse_case.is_valid_file == deb822_file.is_valid_file, \
239 "Verify deb822_file correctly determines whether the field is invalid" \
240 " for case " + c
239 "Verify deb822_file correctly determines whether the field is invalid" \
240 " for case " + c
241241 assert case_input == deb822_file.convert_to_text(), \
242242 "Input of case " + c + " is round trip safe"
243243
272272
273273 for repro_paragraph, deb822_paragraph in zip(deb822_file, deb822_paragraphs):
274274 assert list(repro_paragraph) == list(deb822_paragraph), \
275 "Ensure keys are the same and in the correct order, case " + c
275 "Ensure keys are the same and in the correct order, case " + c
276276 # Use the key from Deb822 as it is compatible with the round safe version
277277 # (the reverse is not true typing wise)
278278 for k, ev in deb822_paragraph.items():
309309 ''')
310310
311311 assert expected == deb822_file.convert_to_text(), \
312 "Mutation should have worked while preserving comments"
312 "Mutation should have worked while preserving comments"
313313
314314 # As an alternative, we can also fix the problem if we discard comments
315315 deb822_file = parse_deb822_file(original.splitlines(keepends=True))
329329 ''')
330330
331331 assert expected == deb822_file.convert_to_text(), \
332 "Mutation should have worked while but discarded comments"
332 "Mutation should have worked while but discarded comments"
333333
334334 source_paragraph['Multi-Line-Field-Space'] = textwrap.dedent('''\
335335 foo
349349 \tbar
350350 ''')
351351 assert expected == deb822_file.convert_to_text(), \
352 "Mutation should have worked while preserving space + tab"
352 "Mutation should have worked while preserving space + tab"
353353
354354 def test_empty_fields(self):
355355 # type: () -> None
380380 Another-Empty-Field:
381381 ''')
382382 assert expected == deb822_file.convert_to_text(), \
383 "Mutation should have worked and generate a valid file"
383 "Mutation should have worked and generate a valid file"
384384
385385 def test_empty_fields_reorder(self):
386386 # type: () -> None
397397 Field: foo
398398 ''')
399399 assert expected == deb822_file.convert_to_text(), \
400 "Mutation should have worked and generate a valid file"
400 "Mutation should have worked and generate a valid file"
401401 # Re-parse
402402 deb822_file = parse_deb822_file(original.splitlines(keepends=True))
403403 source_paragraph = next(iter(deb822_file))
408408 Field: foo
409409 ''')
410410 assert expected == deb822_file.convert_to_text(), \
411 "Mutation should have worked and generate a valid file"
411 "Mutation should have worked and generate a valid file"
412412
413413 def test_case_preservation(self):
414414 # type: () -> None
440440 ''')
441441
442442 assert expected == deb822_file.convert_to_text(), \
443 "Mutation should have worked while preserving case"
443 "Mutation should have worked while preserving case"
444444
445445 # Repeat with duplicated fields
446446 original = textwrap.dedent('''\
476476 ''')
477477
478478 assert expected == deb822_file.convert_to_text(), \
479 "Mutation should have worked while preserving case"
479 "Mutation should have worked while preserving case"
480480
481481 def test_preserve_field_order_on_mutation(self):
482482 # type: () -> None
508508 ''')
509509
510510 assert expected == deb822_file.convert_to_text(), \
511 "Mutation should have worked while preserving field order"
511 "Mutation should have worked while preserving field order"
512512
513513 # Again - this time with a paragraph containing duplicate fields
514514 original = textwrap.dedent('''\
544544 ''')
545545
546546 assert expected == deb822_file.convert_to_text(), \
547 "Mutation should have worked while preserving field order"
547 "Mutation should have worked while preserving field order"
548548
549549 def test_preserve_field_case_on_iter(self):
550550 # type: () -> None
570570 actual_keys = set(source_paragraph.keys())
571571
572572 assert expected_keys == actual_keys, \
573 "Keys returned by iterations should have original case"
573 "Keys returned by iterations should have original case"
574574
575575 def test_append_paragraph(self):
576576 # type: () -> None
598598 ''')
599599
600600 assert expected == deb822_file.convert_to_text(), \
601 "Mutation should have worked while preserving " \
602 "comments"
601 "Mutation should have worked while preserving comments"
603602
604603 def test_append_paragraph_existing_trailing_newline(self):
605604 # type: () -> None
628627 ''')
629628
630629 assert expected == deb822_file.convert_to_text(), \
631 "Mutation should have worked while preserving " \
632 "comments"
630 "Mutation should have worked while preserving comments"
633631
634632 def test_append_empty_paragraph(self):
635633 # type: () -> None
653651 ''')
654652
655653 assert expected == deb822_file.convert_to_text(), \
656 "Mutation should have worked while preserving " \
657 "comments"
654 "Mutation should have worked while preserving comments"
658655
659656 def test_append_tailing_comment(self):
660657 # type: () -> None
684681 ''')
685682
686683 assert expected == deb822_file.convert_to_text(), \
687 "Mutation should have worked while preserving " \
688 "comments"
684 "Mutation should have worked while preserving comments"
689685
690686 def test_insert_paragraph(self):
691687 # type: () -> None
713709 ''')
714710
715711 assert expected == deb822_file.convert_to_text(), \
716 "Mutation should have worked while preserving " \
717 "comments"
712 "Mutation should have worked while preserving comments"
718713
719714 # Insert after the existing paragraphs
720715
737732 ''')
738733
739734 assert expected == deb822_file.convert_to_text(), \
740 "Mutation should have worked while preserving " \
741 "comments"
735 "Mutation should have worked while preserving comments"
742736
743737 def test_insert_paragraph_with_comments(self):
744738 # type: () -> None
777771 ''')
778772
779773 assert expected == deb822_file.convert_to_text(), \
780 "Mutation should have worked while preserving " \
781 "comments"
774 "Mutation should have worked while preserving comments"
782775
783776 # Insert after the existing paragraphs
784777
804797 ''')
805798
806799 assert expected == deb822_file.convert_to_text(), \
807 "Mutation should have worked while preserving " \
808 "comments"
800 "Mutation should have worked while preserving comments"
809801
810802 def test_insert_paragraph_in_empty_file(self):
811803 # type: () -> None
824816 ''')
825817
826818 assert expected == deb822_file.convert_to_text(), \
827 "Mutation should have worked while preserving " \
828 "comments"
819 "Mutation should have worked while preserving comments"
829820
830821 def test_remove_paragraph(self):
831822 # type: () -> None
851842 ''')
852843
853844 assert expected == deb822_file.convert_to_text(), \
854 "Mutation should have worked while preserving " \
855 "comments"
845 "Mutation should have worked while preserving comments"
856846
857847 # Verify that we can add another paragraph.
858848 deb822_file.append(Deb822ParagraphElement.from_dict({'Package': 'bloe'}))
866856 ''')
867857
868858 assert expected == deb822_file.convert_to_text(), \
869 "Adding new paragraph should have worked"
859 "Adding new paragraph should have worked"
870860
871861 deb822_file.remove(list(deb822_file)[1])
872862
879869 ''')
880870
881871 assert expected == deb822_file.convert_to_text(), \
882 "Mutation should have worked while preserving " \
883 "comments"
872 "Mutation should have worked while preserving comments"
884873
885874 original = textwrap.dedent('''\
886875 Source: foo
912901 ''')
913902
914903 assert expected == deb822_file.convert_to_text(), \
915 "Mutation should have worked while preserving " \
916 "comments"
904 "Mutation should have worked while preserving comments"
917905
918906 def test_duplicate_fields(self):
919907 # type: () -> None
957945
958946 expected_fixed = original.replace('Rules-Requires-Root: binary-targets\n', '')
959947 assert expected_fixed == deb822_file.convert_to_text(), \
960 "Fixed version should only have one Rules-Requires-Root field"
948 "Fixed version should only have one Rules-Requires-Root field"
961949
962950 # As an alternative, we can also fix the problem if we discard comments
963951 deb822_file = parse_deb822_file(original.splitlines(keepends=True),
982970 New-Field: value
983971 ''')
984972 assert expected == deb822_file.convert_to_text(), \
985 "Fixed version should only have one Rules-Requires-Root field"
973 "Fixed version should only have one Rules-Requires-Root field"
986974
987975 def test_sorting(self):
988976 # type: () -> None
10601048 paragraph.sort_fields(key=key_func)
10611049
10621050 assert sorted_nodups == deb822_file_nodups.convert_to_text(), \
1063 "Sorting without duplicated fields work"
1051 "Sorting without duplicated fields work"
10641052 deb822_file_with_dups = parse_deb822_file(original_with_dups.splitlines(keepends=True),
10651053 accept_files_with_duplicated_fields=True,
10661054 )
10691057 paragraph.sort_fields(key=key_func)
10701058
10711059 assert sorted_with_dups == deb822_file_with_dups.convert_to_text(), \
1072 "Sorting with duplicated fields work"
1060 "Sorting with duplicated fields work"
10731061
10741062 def test_reorder_nodups(self):
10751063 # type: () -> None
13641352 discard_comments_on_read=False
13651353 )
13661354
1367 assert ['a', 'b', 'c d', 'e'] == list(comma_list_correctly_read)
1368
1369 assert ["some",
1370 "fun",
1371 "with\n multi-line\n values",
1372 "separated by",
1373 "commas\n >:)"] == \
1374 list(ml_comma_list)
1375 assert ["some",
1376 "fun",
1377 "with\n multi-line\n# With a comment inside it for added fun\n values",
1378 "separated by",
1379 "commas\n# Comments in final value\n >:)"] == \
1380 list(ml_comma_list_w_comments)
1381
1382 assert [
1383 "Someone <nobody@example.org>",
1384 "Margrete, I, Ruler <1@margrete.dk>",
1385 "Margrete, II, Queen\n <2@margrete.dk>",
1386 ] == \
1387 list(uploaders_list)
1388 assert [
1389 "Someone <nobody@example.org>",
1390 "Margrete, I, Ruler <1@margrete.dk>",
1391 "Margrete, II, Queen\n# We could list additional names here\n <2@margrete.dk>",
1392 ] == \
1393 list(uploaders_list_with_comments)
1355 assert list(comma_list_correctly_read) == ['a', 'b', 'c d', 'e']
1356
1357 assert list(ml_comma_list) == [
1358 "some",
1359 "fun",
1360 "with\n multi-line\n values",
1361 "separated by",
1362 "commas\n >:)"
1363 ]
1364
1365 assert list(ml_comma_list_w_comments) == [
1366 "some",
1367 "fun",
1368 "with\n multi-line\n# With a comment inside it for added fun\n values",
1369 "separated by",
1370 "commas\n# Comments in final value\n >:)"
1371 ]
1372
1373 assert list(uploaders_list) == [
1374 "Someone <nobody@example.org>",
1375 "Margrete, I, Ruler <1@margrete.dk>",
1376 "Margrete, II, Queen\n <2@margrete.dk>",
1377 ]
1378
1379 assert list(uploaders_list_with_comments) == [
1380 "Someone <nobody@example.org>",
1381 "Margrete, I, Ruler <1@margrete.dk>",
1382 "Margrete, II, Queen\n# We could list additional names here\n <2@margrete.dk>",
1383 ]
1384
13941385
13951386 # Interpretation must not change the content
13961387 assert original == deb822_file.convert_to_text()