@@ -770,6 +770,33 @@ def check_items_config(self, expected):
770770 with self .assertRaises (configparser .NoSectionError ):
771771 cf .items ("no such section" )
772772
773+ def test_popitem (self ):
774+ cf = self .fromstring ("""
775+ [section1]
776+ name1 {0[0]} value1
777+ [section2]
778+ name2 {0[0]} value2
779+ [section3]
780+ name3 {0[0]} value3
781+ """ .format (self .delimiters ), defaults = {"default" : "<default>" })
782+ self .assertEqual (cf .popitem ()[0 ], 'section1' )
783+ self .assertEqual (cf .popitem ()[0 ], 'section2' )
784+ self .assertEqual (cf .popitem ()[0 ], 'section3' )
785+ with self .assertRaises (KeyError ):
786+ cf .popitem ()
787+
788+ def test_clear (self ):
789+ cf = self .newconfig ({"foo" : "Bar" })
790+ self .assertEqual (
791+ cf .get (self .default_section , "Foo" ), "Bar" ,
792+ "could not locate option, expecting case-insensitive option names" )
793+ cf ['zing' ] = {'option1' : 'value1' , 'option2' : 'value2' }
794+ self .assertEqual (cf .sections (), ['zing' ])
795+ self .assertEqual (set (cf ['zing' ].keys ()), {'option1' , 'option2' , 'foo' })
796+ cf .clear ()
797+ self .assertEqual (set (cf .sections ()), set ())
798+ self .assertEqual (set (cf [self .default_section ].keys ()), {'foo' })
799+
773800
774801class StrictTestCase (BasicTestCase ):
775802 config_class = configparser .RawConfigParser
0 commit comments