55
66class AirlineTestCase (unittest .TestCase ):
77 def test_import (self ):
8- df_airports = pandas .read_csv ("fixtures/airports.csv" )
9- df_airlines = pandas .read_csv ("fixtures/airlines.csv" )
8+ pandas .read_csv ("fixtures/airports.csv" )
9+ pandas .read_csv ("fixtures/airlines.csv" )
1010
1111 def test_duckDB (self ):
1212 conn = duckdb .connect ()
@@ -15,31 +15,37 @@ def test_duckDB(self):
1515 conn .register ("airports" , df_airports )
1616 conn .close ()
1717
18+
1819from davidkhala .data .frame .pandas import upsert
19- class SyntaxTestCase (unittest .TestCase ):
2020
21- def test_upsert (self ):
2221
23- df = pandas .DataFrame ({
24- 'id' : [1 , 2 ],
25- 'name' : ['Alice' , 'Bob' ],
26- 'score' : [85 , 90 ]
27- })
28- prim_key = 'id'
29- df = df .set_index (prim_key )
30- new_record = {'name' : 'Charlie' , 'score' : 95 , prim_key :2 }
31- upsert (df , prim_key , record = new_record )
22+ class SyntaxTestCase (unittest .TestCase ):
23+ single_index_df = pandas .DataFrame ({
24+ 'id' : [1 , 2 ],
25+ 'name' : ['Alice' , 'Bob' ],
26+ 'score' : [85 , 90 ]
27+ }).set_index ('id' )
3228
29+ def test_upsert (self ):
30+ df = self .single_index_df
31+ prim_key = df .index .name
32+ new_record = {'name' : 'Charlie' , 'score' : 95 , prim_key : 2 }
33+ df = upsert (df , prim_key , record = new_record )
3334 self .assertEqual (95 , df .at [2 , 'score' ])
35+ self .assertEqual (2 , len (df .columns ))
36+
3437 def test_upsert_empty (self ):
3538 df = pandas .DataFrame ()
3639 prim_key = 'id'
3740 new_record = {'name' : 'Charlie' , 'score' : 95 , prim_key : 2 }
38- upsert (df , prim_key , record = new_record )
39-
41+ df = upsert (df , prim_key , record = new_record )
42+ self .assertEqual (3 , len (df .columns ))
43+ self .assertEqual (1 , len (df ))
4044
4145 df = pandas .DataFrame (columns = [prim_key ]).set_index (prim_key )
42- upsert (df , prim_key , record = new_record )
46+ df = upsert (df , prim_key , record = new_record )
47+ self .assertEqual (2 , len (df .columns ))
48+ self .assertEqual (1 , len (df ))
4349
4450 def test_upsert2 (self ):
4551 df = pandas .DataFrame ([
@@ -51,6 +57,7 @@ def test_upsert2(self):
5157 df = upsert (df , 'School' , 'Country' , record = record )
5258 self .assertEqual (new_students , df .loc [('Oxford' , 'UK' )].Students )
5359 print (df )
60+
5461 def test_upsert3 (self ):
5562 df = pandas .DataFrame ([
5663 {'School' : 'Oxford' , 'Country' : 'UK' , 'Students' : 1000 },
@@ -62,6 +69,5 @@ def test_upsert3(self):
6269 self .assertEqual (new_students , df [(df ['School' ] == 'Oxford' ) & (df ['Country' ] == 'UK' )].iloc [0 ].Students )
6370
6471
65-
6672if __name__ == '__main__' :
6773 unittest .main ()
0 commit comments