5 from autotest_lib
.client
.common_lib
.test_utils
import mock
6 from autotest_lib
.database
import migrate
, db_utils
8 class UtilsTest(unittest
.TestCase
):
10 EXISTS_QUERY_BASE
= ('SELECT table_name FROM information_schema.%s '
11 'WHERE table_schema = %%s')
16 self
.god
= mock
.mock_god()
17 self
.manager
= self
.god
.create_mock_class(migrate
.MigrationManager
,
20 self
.god
.stub_function(self
.manager
, 'execute')
21 self
.god
.stub_function(self
.manager
, 'get_db_name')
28 def test_check_exists(self
):
29 views
= ('view1', 'view2')
30 def _call_check_exists():
31 db_utils
.check_exists(self
.manager
, views
, db_utils
.VIEW_TYPE
)
33 self
._setup
_exists
_expects
(views
, 'VIEWS')
35 self
.god
.check_playback()
37 self
._setup
_exists
_expects
(('view1',), 'VIEWS')
38 self
.assertRaises(Exception, _call_check_exists
)
39 self
.god
.check_playback()
42 def test_drop_views(self
):
43 views
= ('view1', 'view2')
44 self
._setup
_exists
_expects
(views
, 'VIEWS')
47 self
.manager
.execute
.expect_call('DROP VIEW `%s`' % view
)
49 db_utils
.drop_views(self
.manager
, views
)
50 self
.god
.check_playback()
53 def test_rename(self
):
55 'table1' : 'new_table1',
56 'table2' : 'new_table2',
58 self
._setup
_exists
_expects
((name
for name
, _
in mapping
.iteritems()),
61 for name
, new_name
in mapping
.iteritems():
62 self
.manager
.execute
.expect_call(
63 'RENAME TABLE `%s` TO `%s`' % (name
, new_name
))
65 db_utils
.rename(self
.manager
, mapping
)
66 self
.god
.check_playback()
69 def _setup_exists_expects(self
, names
, table
):
70 self
.manager
.get_db_name
.expect_call().and_return(self
.DB_NAME
)
71 self
.manager
.execute
.expect_call(
72 self
.EXISTS_QUERY_BASE
% table
, self
.DB_NAME
).and_return(
73 self
._create
_exists
_query
_result
(names
))
76 def _create_exists_query_result(self
, names
):
77 return ((name
, None) for name
in names
)
80 if __name__
== '__main__':