@@ -460,46 +460,33 @@ def test_date_and_index(self):
460
460
issubclass (df .IntDateCol .dtype .type , np .datetime64 ),
461
461
"IntDateCol loaded with incorrect type" )
462
462
463
-
464
- class TestSQLApi (_TestSQLApi ):
465
-
466
- """Test the public API as it would be used directly
467
- """
468
- flavor = 'sqlite'
469
-
470
- def connect (self ):
471
- if SQLALCHEMY_INSTALLED :
472
- return sqlalchemy .create_engine ('sqlite:///:memory:' )
473
- else :
474
- raise nose .SkipTest ('SQLAlchemy not installed' )
475
-
476
463
def test_to_sql_index_label (self ):
477
464
temp_frame = DataFrame ({'col1' : range (4 )})
478
465
479
466
# no index name, defaults to 'index'
480
467
sql .to_sql (temp_frame , 'test_index_label' , self .conn )
481
- frame = sql .read_table ( ' test_index_label' , self .conn )
468
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
482
469
self .assertEqual (frame .columns [0 ], 'index' )
483
470
484
471
# specifying index_label
485
472
sql .to_sql (temp_frame , 'test_index_label' , self .conn ,
486
473
if_exists = 'replace' , index_label = 'other_label' )
487
- frame = sql .read_table ( ' test_index_label' , self .conn )
474
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
488
475
self .assertEqual (frame .columns [0 ], 'other_label' ,
489
476
"Specified index_label not written to database" )
490
477
491
478
# using the index name
492
479
temp_frame .index .name = 'index_name'
493
480
sql .to_sql (temp_frame , 'test_index_label' , self .conn ,
494
481
if_exists = 'replace' )
495
- frame = sql .read_table ( ' test_index_label' , self .conn )
482
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
496
483
self .assertEqual (frame .columns [0 ], 'index_name' ,
497
484
"Index name not written to database" )
498
485
499
486
# has index name, but specifying index_label
500
487
sql .to_sql (temp_frame , 'test_index_label' , self .conn ,
501
488
if_exists = 'replace' , index_label = 'other_label' )
502
- frame = sql .read_table ( ' test_index_label' , self .conn )
489
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
503
490
self .assertEqual (frame .columns [0 ], 'other_label' ,
504
491
"Specified index_label not written to database" )
505
492
@@ -509,29 +496,29 @@ def test_to_sql_index_label_multiindex(self):
509
496
510
497
# no index name, defaults to 'level_0' and 'level_1'
511
498
sql .to_sql (temp_frame , 'test_index_label' , self .conn )
512
- frame = sql .read_table ( ' test_index_label' , self .conn )
499
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
513
500
self .assertEqual (frame .columns [0 ], 'level_0' )
514
501
self .assertEqual (frame .columns [1 ], 'level_1' )
515
502
516
503
# specifying index_label
517
504
sql .to_sql (temp_frame , 'test_index_label' , self .conn ,
518
505
if_exists = 'replace' , index_label = ['A' , 'B' ])
519
- frame = sql .read_table ( ' test_index_label' , self .conn )
506
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
520
507
self .assertEqual (frame .columns [:2 ].tolist (), ['A' , 'B' ],
521
508
"Specified index_labels not written to database" )
522
509
523
510
# using the index name
524
511
temp_frame .index .names = ['A' , 'B' ]
525
512
sql .to_sql (temp_frame , 'test_index_label' , self .conn ,
526
513
if_exists = 'replace' )
527
- frame = sql .read_table ( ' test_index_label' , self .conn )
514
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
528
515
self .assertEqual (frame .columns [:2 ].tolist (), ['A' , 'B' ],
529
516
"Index names not written to database" )
530
517
531
518
# has index name, but specifying index_label
532
519
sql .to_sql (temp_frame , 'test_index_label' , self .conn ,
533
520
if_exists = 'replace' , index_label = ['C' , 'D' ])
534
- frame = sql .read_table ( ' test_index_label' , self .conn )
521
+ frame = sql .read_sql ( 'SELECT * FROM test_index_label' , self .conn )
535
522
self .assertEqual (frame .columns [:2 ].tolist (), ['C' , 'D' ],
536
523
"Specified index_labels not written to database" )
537
524
@@ -540,6 +527,19 @@ def test_to_sql_index_label_multiindex(self):
540
527
'test_index_label' , self .conn , if_exists = 'replace' ,
541
528
index_label = 'C' )
542
529
530
+
531
+ class TestSQLApi (_TestSQLApi ):
532
+
533
+ """Test the public API as it would be used directly
534
+ """
535
+ flavor = 'sqlite'
536
+
537
+ def connect (self ):
538
+ if SQLALCHEMY_INSTALLED :
539
+ return sqlalchemy .create_engine ('sqlite:///:memory:' )
540
+ else :
541
+ raise nose .SkipTest ('SQLAlchemy not installed' )
542
+
543
543
def test_read_table_columns (self ):
544
544
# test columns argument in read_table
545
545
sql .to_sql (self .test_frame1 , 'test_frame' , self .conn )
@@ -622,23 +622,6 @@ def test_sql_open_close(self):
622
622
623
623
tm .assert_frame_equal (self .test_frame2 , result )
624
624
625
- def test_roundtrip (self ):
626
- # this test otherwise fails, Legacy mode still uses 'pandas_index'
627
- # as default index column label
628
- sql .to_sql (self .test_frame1 , 'test_frame_roundtrip' ,
629
- con = self .conn , flavor = 'sqlite' )
630
- result = sql .read_sql (
631
- 'SELECT * FROM test_frame_roundtrip' ,
632
- con = self .conn ,
633
- flavor = 'sqlite' )
634
-
635
- # HACK!
636
- result .index = self .test_frame1 .index
637
- result .set_index ('pandas_index' , inplace = True )
638
- result .index .astype (int )
639
- result .index .name = None
640
- tm .assert_frame_equal (result , self .test_frame1 )
641
-
642
625
643
626
class _TestSQLAlchemy (PandasSQLTest ):
644
627
"""
@@ -861,16 +844,6 @@ def setUp(self):
861
844
862
845
self ._load_test1_data ()
863
846
864
- def _roundtrip (self ):
865
- # overwrite parent function (level_0 -> pandas_index in legacy mode)
866
- self .drop_table ('test_frame_roundtrip' )
867
- self .pandasSQL .to_sql (self .test_frame1 , 'test_frame_roundtrip' )
868
- result = self .pandasSQL .read_sql ('SELECT * FROM test_frame_roundtrip' )
869
- result .set_index ('pandas_index' , inplace = True )
870
- result .index .name = None
871
-
872
- tm .assert_frame_equal (result , self .test_frame1 )
873
-
874
847
def test_invalid_flavor (self ):
875
848
self .assertRaises (
876
849
NotImplementedError , sql .PandasSQLLegacy , self .conn , 'oracle' )
0 commit comments