def test_to_csv_file(self): d = IODict({ 'values': [ { 'id': '1', 'name': 'Alice', 'age': '20', 'height': '62', 'weight': '120.6', }, { 'id': '2', 'name': 'Freddie', 'age': '21', 'height': '74', 'weight': '190.6', }, { 'id': '3', 'name': 'Bob', 'age': '17', 'height': '68', 'weight': '120.0', }, { 'id': '4', 'name': 'François', 'age': '32', 'height': '75', 'weight': '110.05', }, ], }) filepath = self.output_path('test_to_csv_file.csv') d.to_csv(filepath=filepath) self.assertFileExists(filepath) self.assertEqual(d, IODict.from_csv(filepath))
def test_to_csv_with_custom_columns(self): d = IODict({ 'values': [ { 'id': '1', 'name': 'Alice', 'age': '20', 'height': '62', 'weight': '120.6', }, { 'id': '2', 'name': 'Freddie', 'age': '21', 'height': '74', 'weight': '190.6', }, { 'id': '3', 'name': 'Bob', 'age': '17', 'height': '68', 'weight': '120.0', }, { 'id': '4', 'name': 'François', 'age': '32', 'height': '75', 'weight': '110.05', }, ], }) s = d.to_csv(key='values', columns=[ 'id', 'name', 'family_name', 'age', 'height', 'gender', 'weight' ]) r = """id,name,family_name,age,height,gender,weight 1,Alice,,20,62,,120.6 2,Freddie,,21,74,,190.6 3,Bob,,17,68,,120.0 4,François,,32,75,,110.05 """ self.assertEqual(s, r)
def test_to_csv_with_custom_delimiter_and_quotes(self): d = IODict({ 'values': [ { 'id': '1', 'name': 'Alice', 'age': '20', 'height': '62', 'weight': '120.6', }, { 'id': '2', 'name': 'Freddie', 'age': '21', 'height': '74', 'weight': '190.6', }, { 'id': '3', 'name': 'Bob', 'age': '17', 'height': '68', 'weight': '120.0', }, { 'id': '4', 'name': 'François', 'age': '32', 'height': '75', 'weight': '110.05', }, ], }) s = d.to_csv(columns=['id', 'name', 'age', 'height', 'weight'], delimiter=";", quote=True) r = """"id";"name";"age";"height";"weight" "1";"Alice";"20";"62";"120.6" "2";"Freddie";"21";"74";"190.6" "3";"Bob";"17";"68";"120.0" "4";"François";"32";"75";"110.05" """ self.assertEqual(s, r)
def test_to_csv_with_custom_key_valid(self): d = IODict({ 'results': [ { 'id': '1', 'name': 'Alice', 'age': '20', 'height': '62', 'weight': '120.6', }, { 'id': '2', 'name': 'Freddie', 'age': '21', 'height': '74', 'weight': '190.6', }, { 'id': '3', 'name': 'Bob', 'age': '17', 'height': '68', 'weight': '120.0', }, { 'id': '4', 'name': 'François', 'age': '32', 'height': '75', 'weight': '110.05', }, ], }) s = d.to_csv('results', columns=['id', 'name', 'age', 'height', 'weight']) r = """id,name,age,height,weight 1,Alice,20,62,120.6 2,Freddie,21,74,190.6 3,Bob,17,68,120.0 4,François,32,75,110.05 """ self.assertEqual(s, r)
def test_to_csv(self): d = IODict({ 'values': [ { 'id': '1', 'name': 'Alice', 'age': '20', 'height': '62', 'weight': '120.6', }, { 'id': '2', 'name': 'Freddie', 'age': '21', 'height': '74', 'weight': '190.6', }, { 'id': '3', 'name': 'Bob', 'age': '17', 'height': '68', 'weight': '120.0', }, { 'id': '4', 'name': 'François', 'age': '32', 'height': '75', 'weight': '110.05', }, ], }) s = d.to_csv() r = """age,height,id,name,weight 20,62,1,Alice,120.6 21,74,2,Freddie,190.6 17,68,3,Bob,120.0 32,75,4,François,110.05 """ self.assertEqual(s, r)
def test_to_csv_with_custom_key_invalid(self): d = IODict({ 'values': [ { 'id': '1', 'name': 'Alice', 'age': '20', 'height': '62', 'weight': '120.6', }, { 'id': '2', 'name': 'Freddie', 'age': '21', 'height': '74', 'weight': '190.6', }, { 'id': '3', 'name': 'Bob', 'age': '17', 'height': '68', 'weight': '120.0', }, { 'id': '4', 'name': 'François', 'age': '32', 'height': '75', 'weight': '110.05', }, ], }) with self.assertRaises(KeyError): s = d.to_csv('invalid_values', columns=['id', 'name', 'age', 'height', 'weight'])