@@ -391,8 +391,8 @@ def assertDictEqual(self, d1, d2, msg=None):
391
391
if d1 != d2 :
392
392
raise AssertionError ("Dicts do not match: %s" % msg )
393
393
394
- def create_container (self ):
395
- xml = '''
394
+ def create_container (self , xml = None ):
395
+ default_xml = '''
396
396
<numbering>
397
397
<abstractNum abstractNumId="1">
398
398
<lvl ilvl="0"></lvl>
@@ -437,6 +437,7 @@ def create_container(self):
437
437
</numbering>
438
438
'''
439
439
440
+ xml = xml or default_xml
440
441
numbering = self ._load_from_xml (xml )
441
442
442
443
container = type (
@@ -450,7 +451,7 @@ def create_container(self):
450
451
451
452
return container
452
453
453
- def create_numbering_paragraph (self , num_id , level_id = '0' , container = True ):
454
+ def create_numbering_paragraph (self , num_id , level_id = '0' , container = None , ):
454
455
paragraph_params = {
455
456
'properties' : ParagraphProperties (
456
457
numbering_properties = NumberingProperties (
@@ -460,8 +461,10 @@ def create_numbering_paragraph(self, num_id, level_id='0', container=True):
460
461
)
461
462
}
462
463
463
- if container :
464
- paragraph_params ['container' ] = self .create_container ()
464
+ if container is None :
465
+ container = self .create_container ()
466
+
467
+ paragraph_params ['container' ] = container
465
468
466
469
return Paragraph (** paragraph_params )
467
470
@@ -756,3 +759,90 @@ def test_nested_sublist_parent_contains_child_and_child_parent(self):
756
759
self .assertDictEqual (builder .parent_child_num_map , parent_items )
757
760
self .assertDictEqual (builder .child_parent_num_map , child_item )
758
761
self .assertTrue (result )
762
+
763
+ def test_skip_bullets_listing_items (self ):
764
+ xml = '''
765
+ <numbering>
766
+ <abstractNum abstractNumId="1">
767
+ <lvl ilvl="0">
768
+ <numFmt val="decimal"/>
769
+ </lvl>
770
+ </abstractNum>
771
+ <num numId="1">
772
+ <abstractNumId val="1" />
773
+ </num>
774
+ <abstractNum abstractNumId="2">
775
+ <lvl ilvl="0">
776
+ <numFmt val="decimal"/>
777
+ </lvl>
778
+ </abstractNum>
779
+ <num numId="2">
780
+ <abstractNumId val="2" />
781
+ </num>
782
+ <abstractNum abstractNumId="3">
783
+ <lvl ilvl="0">
784
+ <numFmt val="bullet"/>
785
+ </lvl>
786
+ <lvl ilvl="1">
787
+ <numFmt val="bullet"/>
788
+ </lvl>
789
+ </abstractNum>
790
+ <num numId="3">
791
+ <abstractNumId val="3" />
792
+ </num>
793
+ <abstractNum abstractNumId="4">
794
+ <lvl ilvl="0">
795
+ <numFmt val="bullet"/>
796
+ </lvl>
797
+ </abstractNum>
798
+ <num numId="4">
799
+ <abstractNumId val="4" />
800
+ </num>
801
+ <abstractNum abstractNumId="5">
802
+ <lvl ilvl="0">
803
+ <numFmt val="bullet"/>
804
+ </lvl>
805
+ </abstractNum>
806
+ <num numId="5">
807
+ <abstractNumId val="5" />
808
+ </num>
809
+ </numbering>
810
+ '''
811
+
812
+ container = self .create_container (xml )
813
+ components = [
814
+ self .create_numbering_paragraph ('1' , '0' , container = container ),
815
+ self .create_numbering_paragraph ('3' , '0' , container = container ),
816
+ self .create_numbering_paragraph ('3' , '1' , container = container ),
817
+ self .create_numbering_paragraph ('4' , '0' , container = container ),
818
+ self .create_numbering_paragraph ('3' , '0' , container = container ),
819
+ self .create_numbering_paragraph ('1' , '0' , container = container ),
820
+ self .create_numbering_paragraph ('2' , '0' , container = container ),
821
+ self .create_numbering_paragraph ('5' , '0' , container = container ),
822
+ self .create_numbering_paragraph ('2' , '0' , container = container ),
823
+ ]
824
+
825
+ builder = NumberingSpanBuilder (components )
826
+ result = builder .detect_parent_child_map_for_items ()
827
+
828
+ parent_items = {
829
+ ('1' , '0' ):
830
+ [
831
+ {'num_id' : '3' , 'level' : '0' },
832
+ {'num_id' : '3' , 'level' : '1' },
833
+ {'num_id' : '4' , 'level' : '0' },
834
+ ],
835
+ ('2' , '0' ):
836
+ [
837
+ {'num_id' : '5' , 'level' : '0' },
838
+ ]
839
+ }
840
+ child_item = {
841
+ '3' : {'num_id' : '1' , 'level' : '0' },
842
+ '4' : {'num_id' : '1' , 'level' : '0' },
843
+ '5' : {'num_id' : '2' , 'level' : '0' },
844
+ }
845
+
846
+ self .assertDictEqual (builder .parent_child_num_map , parent_items )
847
+ self .assertDictEqual (builder .child_parent_num_map , child_item )
848
+ self .assertTrue (result )
0 commit comments