def test_two_groups_one_attribute_each(self):
     text = dedent("""
         01,Title,Ran So Hard the Sun Went Down
         02,Title,Honky Tonk Heroes (Like Me)
     """).strip()
     expected = dedent("""
         Num,Title
         01,Ran So Hard the Sun Went Down
         02,Honky Tonk Heroes (Like Me)
     """).strip()
     self.assertLinesEqual(condense_csv(text, id_name='Num'), expected)
 def test_two_groups_multiple_attributes(self):
     text = dedent("""
         01,Artist,Otis Taylor
         01,Title,Ran So Hard the Sun Went Down
         01,Time,3:52
         02,Artist,Waylon Jennings
         02,Title,Honky Tonk Heroes (Like Me)
         02,Time,3:29
     """).strip()
     expected = dedent("""
         Track,Artist,Title,Time
         01,Otis Taylor,Ran So Hard the Sun Went Down,3:52
         02,Waylon Jennings,Honky Tonk Heroes (Like Me),3:29
     """).strip()
     self.assertLinesEqual(condense_csv(text, id_name='Track'), expected)
 def test_read_headers_when_no_id_name_given(self):
     text = dedent("""
         NN,Property,Value
         01,Artist,Otis Taylor
         01,Title,Ran So Hard the Sun Went Down
         01,Time,3:52
         02,Artist,Waylon Jennings
         02,Title,Honky Tonk Heroes (Like Me)
         02,Time,3:29
     """).strip()
     expected = dedent("""
         NN,Artist,Title,Time
         01,Otis Taylor,Ran So Hard the Sun Went Down,3:52
         02,Waylon Jennings,Honky Tonk Heroes (Like Me),3:29
     """).strip()
     self.assertLinesEqual(condense_csv(text), expected)
 def test_different_property_ordering_and_missing_properties(self):
     text = dedent("""
         01,Artist,Otis Taylor
         01,Title,Ran So Hard the Sun Went Down
         01,Time,3:52
         02,Title,Honky Tonk Heroes (Like Me)
         02,Artist,Waylon Jennings
         02,Time,3:29
         03,Time,3:47
         03,Title,Hear My Train A Coming
     """).strip()
     expected = dedent("""
         NN,Artist,Title,Time
         01,Otis Taylor,Ran So Hard the Sun Went Down,3:52
         02,Waylon Jennings,Honky Tonk Heroes (Like Me),3:29
         03,,Hear My Train A Coming,3:47
     """).strip()
     self.assertLinesEqual(condense_csv(text, id_name='NN'), expected)
 def test_commas_in_data(self):
     text = dedent("""
         01,Artist,Otis Taylor
         01,Title,Ran So Hard the Sun Went Down
         01,Time,3:52
         02,Artist,Waylon Jennings
         02,Title,Honky Tonk Heroes (Like Me)
         02,"Time","3:29"
         03,Artist,David Allan Coe
         03,Title,"Willie, Waylon, And Me"
         03,Time,3:26
     """).strip()
     expected = dedent("""
         Track,Artist,Title,Time
         01,Otis Taylor,Ran So Hard the Sun Went Down,3:52
         02,Waylon Jennings,Honky Tonk Heroes (Like Me),3:29
         03,David Allan Coe,"Willie, Waylon, And Me",3:26
     """).strip()
     self.assertLinesEqual(condense_csv(text, id_name='Track'), expected)