<s> from . . import fixtures , config <EOL> from . . config import requirements <EOL> from . . import exclusions <EOL> from . . assertions import eq_ <EOL> from . . import engines <EOL> from sqlalchemy import Integer , String , select , util , sql , DateTime <EOL> import datetime <EOL> from . . schema import Table , Column <EOL> class RowFetchTest ( fixtures . TablesTest ) : <EOL> __backend__ = True <EOL> @ classmethod <EOL> def define_tables ( cls , metadata ) : <EOL> Table ( '<STR_LIT>' , metadata , <EOL> Column ( '<STR_LIT:id>' , Integer , primary_key = True ) , <EOL> Column ( '<STR_LIT:data>' , String ( <NUM_LIT:50> ) ) <EOL> ) <EOL> Table ( '<STR_LIT>' , metadata , <EOL> Column ( '<STR_LIT:id>' , Integer , primary_key = True ) , <EOL> Column ( '<STR_LIT>' , DateTime ) <EOL> ) <EOL> @ classmethod <EOL> def insert_data ( cls ) : <EOL> config . db . execute ( <EOL> cls . tables . plain_pk . insert ( ) , <EOL> [ <EOL> { "<STR_LIT:id>" : <NUM_LIT:1> , "<STR_LIT:data>" : "<STR_LIT>" } , <EOL> { "<STR_LIT:id>" : <NUM_LIT:2> , "<STR_LIT:data>" : "<STR_LIT>" } , <EOL> { "<STR_LIT:id>" : <NUM_LIT:3> , "<STR_LIT:data>" : "<STR_LIT>" } , <EOL> ] <EOL> ) <EOL> config . db . execute ( <EOL> cls . tables . has_dates . insert ( ) , <EOL> [ <EOL> { "<STR_LIT:id>" : <NUM_LIT:1> , "<STR_LIT>" : datetime . datetime ( <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT:12> , <NUM_LIT:12> , <NUM_LIT:0> , <NUM_LIT:0> ) } <EOL> ] <EOL> ) <EOL> def test_via_string ( self ) : <EOL> row = config . db . execute ( <EOL> self . tables . plain_pk . select ( ) . <EOL> order_by ( self . tables . plain_pk . c . id ) <EOL> ) . first ( ) <EOL> eq_ ( <EOL> row [ '<STR_LIT:id>' ] , <NUM_LIT:1> <EOL> ) <EOL> eq_ ( <EOL> row [ '<STR_LIT:data>' ] , "<STR_LIT>" <EOL> ) <EOL> def test_via_int ( self ) : <EOL> row = config . db . execute ( <EOL> self . tables . plain_pk . select ( ) . <EOL> order_by ( self . tables . plain_pk . c . id ) <EOL> ) . first ( ) <EOL> eq_ ( <EOL> row [ <NUM_LIT:0> ] , <NUM_LIT:1> <EOL> ) <EOL> eq_ ( <EOL> row [ <NUM_LIT:1> ] , "<STR_LIT>" <EOL> ) <EOL> def test_via_col_object ( self ) : <EOL> row = config . db . execute ( <EOL> self . tables . plain_pk . select ( ) . <EOL> order_by ( self . tables . plain_pk . c . id ) <EOL> ) . first ( ) <EOL> eq_ ( <EOL> row [ self . tables . plain_pk . c . id ] , <NUM_LIT:1> <EOL> ) <EOL> eq_ ( <EOL> row [ self . tables . plain_pk . c . data ] , "<STR_LIT>" <EOL> ) <EOL> @ requirements . duplicate_names_in_cursor_description <EOL> def test_row_with_dupe_names ( self ) : <EOL> result = config . db . execute ( <EOL> select ( [ self . tables . plain_pk . c . data , <EOL> self . tables . plain_pk . c . data . label ( '<STR_LIT:data>' ) ] ) . <EOL> order_by ( self . tables . plain_pk . c . id ) <EOL> ) <EOL> row = result . first ( ) <EOL> eq_ ( result . keys ( ) , [ '<STR_LIT:data>' , '<STR_LIT:data>' ] ) <EOL> eq_ ( row , ( '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> def test_row_w_scalar_select ( self ) : <EOL> """<STR_LIT>""" <EOL> datetable = self . tables . has_dates <EOL> s = select ( [ datetable . alias ( '<STR_LIT:x>' ) . c . today ] ) . as_scalar ( ) <EOL> s2 = select ( [ datetable . c . id , s . label ( '<STR_LIT>' ) ] ) <EOL> row = config . db . execute ( s2 ) . first ( ) <EOL> eq_ ( row [ '<STR_LIT>' ] , datetime . datetime ( <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT:12> , <NUM_LIT:12> , <NUM_LIT:0> , <NUM_LIT:0> ) ) <EOL> class PercentSchemaNamesTest ( fixtures . TablesTest ) : <EOL> """<STR_LIT>""" <EOL> __requires__ = ( '<STR_LIT>' , ) <EOL> __backend__ = True <EOL> @ classmethod <EOL> def define_tables ( cls , metadata ) : <EOL> cls . tables . percent_table = Table ( '<STR_LIT>' , metadata , <EOL> Column ( "<STR_LIT>" , Integer ) , <EOL> Column ( <EOL> "<STR_LIT>" , Integer ) , <EOL> ) <EOL> cls . tables . lightweight_percent_table = sql . table ( <EOL> '<STR_LIT>' , sql . column ( "<STR_LIT>" ) , <EOL> sql . column ( "<STR_LIT>" ) <EOL> ) <EOL> def test_single_roundtrip ( self ) : <EOL> percent_table = self . tables . percent_table <EOL> for params in [ <EOL> { '<STR_LIT>' : <NUM_LIT:5> , '<STR_LIT>' : <NUM_LIT:12> } , <EOL> { '<STR_LIT>' : <NUM_LIT:7> , '<STR_LIT>' : <NUM_LIT:11> } , <EOL> { '<STR_LIT>' : <NUM_LIT:9> , '<STR_LIT>' : <NUM_LIT:10> } , <EOL> { '<STR_LIT>' : <NUM_LIT:11> , '<STR_LIT>' : <NUM_LIT:9> } <EOL> ] : <EOL> config . db . execute ( percent_table . insert ( ) , params ) <EOL> self . _assert_table ( ) <EOL> def test_executemany_roundtrip ( self ) : <EOL> percent_table = self . tables . percent_table <EOL> config . db . execute ( <EOL> percent_table . insert ( ) , <EOL> { '<STR_LIT>' : <NUM_LIT:5> , '<STR_LIT>' : <NUM_LIT:12> } <EOL> ) <EOL> config . db . execute ( <EOL> percent_table . insert ( ) , <EOL> [ { '<STR_LIT>' : <NUM_LIT:7> , '<STR_LIT>' : <NUM_LIT:11> } , <EOL> { '<STR_LIT>' : <NUM_LIT:9> , '<STR_LIT>' : <NUM_LIT:10> } , <EOL> { '<STR_LIT>' : <NUM_LIT:11> , '<STR_LIT>' : <NUM_LIT:9> } ] <EOL> ) <EOL> self . _assert_table ( ) <EOL> def _assert_table ( self ) : <EOL> percent_table = self . tables . percent_table <EOL> lightweight_percent_table = self . tables . lightweight_percent_table <EOL> for table in ( <EOL> percent_table , <EOL> percent_table . alias ( ) , <EOL> lightweight_percent_table , <EOL> lightweight_percent_table . alias ( ) ) : <EOL> eq_ ( <EOL> list ( <EOL> config . db . execute ( <EOL> table . select ( ) . order_by ( table . c [ '<STR_LIT>' ] ) <EOL> ) <EOL> ) , <EOL> [ <EOL> ( <NUM_LIT:5> , <NUM_LIT:12> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:11> ) , <EOL> ( <NUM_LIT:9> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:11> , <NUM_LIT:9> ) <EOL> ] <EOL> ) <EOL> eq_ ( <EOL> list ( <EOL> config . db . execute ( <EOL> table . select ( ) . <EOL> where ( table . c [ '<STR_LIT>' ] . in_ ( [ <NUM_LIT:9> , <NUM_LIT:10> ] ) ) . <EOL> order_by ( table . c [ '<STR_LIT>' ] ) , <EOL> ) <EOL> ) , <EOL> [ <EOL> ( <NUM_LIT:9> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:11> , <NUM_LIT:9> ) <EOL> ] <EOL> ) <EOL> row = config . db . execute ( table . select ( ) . <EOL> order_by ( table . c [ '<STR_LIT>' ] ) ) . first ( ) <EOL> eq_ ( row [ '<STR_LIT>' ] , <NUM_LIT:5> ) <EOL> eq_ ( row [ '<STR_LIT>' ] , <NUM_LIT:12> ) <EOL> eq_ ( row [ table . c [ '<STR_LIT>' ] ] , <NUM_LIT:5> ) <EOL> eq_ ( row [ table . c [ '<STR_LIT>' ] ] , <NUM_LIT:12> ) <EOL> config . db . execute ( <EOL> percent_table . update ( ) . values ( <EOL> { percent_table . c [ '<STR_LIT>' ] : <NUM_LIT:15> } <EOL> ) <EOL> ) <EOL> eq_ ( <EOL> list ( <EOL> config . db . execute ( <EOL> percent_table . <EOL> select ( ) . <EOL> order_by ( percent_table . c [ '<STR_LIT>' ] ) <EOL> ) <EOL> ) , <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:15> ) , ( <NUM_LIT:7> , <NUM_LIT:15> ) , ( <NUM_LIT:9> , <NUM_LIT:15> ) , ( <NUM_LIT:11> , <NUM_LIT:15> ) ] <EOL> ) </s>
