class MySqlAdminTest(testtools.TestCase): def setUp(self): super(MySqlAdminTest, self).setUp() self.orig_get_engine = dbaas.get_engine self.orig_LocalSqlClient = dbaas.LocalSqlClient self.orig_LocalSqlClient_enter = dbaas.LocalSqlClient.__enter__ self.orig_LocalSqlClient_exit = dbaas.LocalSqlClient.__exit__ self.orig_LocalSqlClient_execute = dbaas.LocalSqlClient.execute dbaas.get_engine = MagicMock(name='get_engine') dbaas.LocalSqlClient = Mock dbaas.LocalSqlClient.__enter__ = Mock() dbaas.LocalSqlClient.__exit__ = Mock() dbaas.LocalSqlClient.execute = Mock() self.mySqlAdmin = MySqlAdmin() def tearDown(self): super(MySqlAdminTest, self).tearDown() dbaas.get_engine = self.orig_get_engine dbaas.LocalSqlClient = self.orig_LocalSqlClient dbaas.LocalSqlClient.__enter__ = self.orig_LocalSqlClient_enter dbaas.LocalSqlClient.__exit__ = self.orig_LocalSqlClient_exit dbaas.LocalSqlClient.execute = self.orig_LocalSqlClient_execute def test_create_database(self): # setup test databases = [] databases.append(FAKE_DB) # execute test self.mySqlAdmin.create_database(databases) # verify arg passed correctly args, _ = dbaas.LocalSqlClient.execute.call_args_list[0] expected = "CREATE DATABASE IF NOT EXISTS\n " \ " `testDB` CHARACTER SET = latin2 COLLATE = " \ "latin2_general_ci;" self.assertEquals(args[0].text, expected, "Create database queries are not the same") # verify client object is called 2 times self.assertEqual(1, dbaas.LocalSqlClient.execute.call_count, "The client object was not 2 times") def test_create_database_more_than_1(self): # setup test databases = [] databases.append(FAKE_DB) databases.append(FAKE_DB_2) # execute test self.mySqlAdmin.create_database(databases) # verify arg passed correctly args, _ = dbaas.LocalSqlClient.execute.call_args_list[0] expected = "CREATE DATABASE IF NOT EXISTS\n " \ " `testDB` CHARACTER SET = latin2 COLLATE = " \ "latin2_general_ci;" self.assertEquals(args[0].text, expected, "Create database queries are not the same") args, _ = dbaas.LocalSqlClient.execute.call_args_list[1] expected = "CREATE DATABASE IF NOT EXISTS\n " \ " `testDB2` CHARACTER SET = latin2 COLLATE = " \ "latin2_general_ci;" self.assertEquals(args[0].text, expected, "Create database queries are not the same") # verify client object is called 2 times self.assertEqual(2, dbaas.LocalSqlClient.execute.call_count, "The client object was not 2 times") def test_create_database_no_db(self): # setup test databases = [] # execute test self.mySqlAdmin.create_database(databases) # verify client object was not called self.assertFalse(dbaas.LocalSqlClient.execute.called, "The client object was called when it wasn't " + "supposed to") def test_delete_database(self): # setup test database = {"_name": "testDB"} # execute test self.mySqlAdmin.delete_database(database) # verify arg passed correctly args, _ = dbaas.LocalSqlClient.execute.call_args expected = "DROP DATABASE `testDB`;" self.assertEquals(args[0].text, expected, "Delete database queries are not the same") # verify client object is called self.assertTrue(dbaas.LocalSqlClient.execute.called, "The client object was not called") def test_delete_user(self): # setup test user = {"_name": "testUser"} # execute test self.mySqlAdmin.delete_user(user) # verify arg passed correctly args, _ = dbaas.LocalSqlClient.execute.call_args expected = "DROP USER `testUser`" self.assertEquals(args[0].text, expected, "Delete user queries are not the same") # verify client object is called self.assertTrue(dbaas.LocalSqlClient.execute.called, "The client object was not called") def test_create_user(self): self.mySqlAdmin.create_user(FAKE_USER) self.assertEqual(2, dbaas.LocalSqlClient.execute.call_count)
class MySqlAdminTest(testtools.TestCase): def setUp(self): super(MySqlAdminTest, self).setUp() self.orig_get_engine = dbaas.get_engine self.orig_LocalSqlClient = dbaas.LocalSqlClient self.orig_LocalSqlClient_enter = dbaas.LocalSqlClient.__enter__ self.orig_LocalSqlClient_exit = dbaas.LocalSqlClient.__exit__ self.orig_LocalSqlClient_execute = dbaas.LocalSqlClient.execute self.orig_MySQLUser_is_valid_user_name = \ models.MySQLUser._is_valid_user_name dbaas.get_engine = MagicMock(name='get_engine') dbaas.LocalSqlClient = Mock dbaas.LocalSqlClient.__enter__ = Mock() dbaas.LocalSqlClient.__exit__ = Mock() dbaas.LocalSqlClient.execute = Mock() self.mySqlAdmin = MySqlAdmin() def tearDown(self): super(MySqlAdminTest, self).tearDown() dbaas.get_engine = self.orig_get_engine dbaas.LocalSqlClient = self.orig_LocalSqlClient dbaas.LocalSqlClient.__enter__ = self.orig_LocalSqlClient_enter dbaas.LocalSqlClient.__exit__ = self.orig_LocalSqlClient_exit dbaas.LocalSqlClient.execute = self.orig_LocalSqlClient_execute models.MySQLUser._is_valid_user_name = \ self.orig_MySQLUser_is_valid_user_name def test_create_database(self): databases = [] databases.append(FAKE_DB) self.mySqlAdmin.create_database(databases) args, _ = dbaas.LocalSqlClient.execute.call_args_list[0] expected = "CREATE DATABASE IF NOT EXISTS\n " \ " `testDB` CHARACTER SET = latin2 COLLATE = " \ "latin2_general_ci;" self.assertEquals(args[0].text, expected, "Create database queries are not the same") self.assertEqual(1, dbaas.LocalSqlClient.execute.call_count, "The client object was not 2 times") def test_create_database_more_than_1(self): databases = [] databases.append(FAKE_DB) databases.append(FAKE_DB_2) self.mySqlAdmin.create_database(databases) args, _ = dbaas.LocalSqlClient.execute.call_args_list[0] expected = "CREATE DATABASE IF NOT EXISTS\n " \ " `testDB` CHARACTER SET = latin2 COLLATE = " \ "latin2_general_ci;" self.assertEquals(args[0].text, expected, "Create database queries are not the same") args, _ = dbaas.LocalSqlClient.execute.call_args_list[1] expected = "CREATE DATABASE IF NOT EXISTS\n " \ " `testDB2` CHARACTER SET = latin2 COLLATE = " \ "latin2_general_ci;" self.assertEquals(args[0].text, expected, "Create database queries are not the same") self.assertEqual(2, dbaas.LocalSqlClient.execute.call_count, "The client object was not 2 times") def test_create_database_no_db(self): databases = [] self.mySqlAdmin.create_database(databases) self.assertFalse(dbaas.LocalSqlClient.execute.called, "The client object was called when it wasn't " + "supposed to") def test_delete_database(self): database = {"_name": "testDB"} self.mySqlAdmin.delete_database(database) args, _ = dbaas.LocalSqlClient.execute.call_args expected = "DROP DATABASE `testDB`;" self.assertEquals(args[0].text, expected, "Delete database queries are not the same") self.assertTrue(dbaas.LocalSqlClient.execute.called, "The client object was not called") def test_delete_user(self): user = {"_name": "testUser"} self.mySqlAdmin.delete_user(user) args, _ = dbaas.LocalSqlClient.execute.call_args expected = "DROP USER `testUser`" self.assertEquals(args[0].text, expected, "Delete user queries are not the same") self.assertTrue(dbaas.LocalSqlClient.execute.called, "The client object was not called") def test_create_user(self): self.mySqlAdmin.create_user(FAKE_USER) expected = 'GRANT ALL PRIVILEGES ON `testDB`.* TO `random`@:host;' args, _ = dbaas.LocalSqlClient.execute.call_args self.assertEquals(args[0].text.strip(), expected, "Create user queries are not the same") self.assertEqual(2, dbaas.LocalSqlClient.execute.call_count)
class MySqlAdminTest(testtools.TestCase): def setUp(self): super(MySqlAdminTest, self).setUp() self.orig_get_engine = dbaas.get_engine self.orig_LocalSqlClient = dbaas.LocalSqlClient self.orig_LocalSqlClient_enter = dbaas.LocalSqlClient.__enter__ self.orig_LocalSqlClient_exit = dbaas.LocalSqlClient.__exit__ self.orig_LocalSqlClient_execute = dbaas.LocalSqlClient.execute self.orig_MySQLUser_is_valid_user_name = \ models.MySQLUser._is_valid_user_name dbaas.get_engine = MagicMock(name='get_engine') dbaas.LocalSqlClient = Mock dbaas.LocalSqlClient.__enter__ = Mock() dbaas.LocalSqlClient.__exit__ = Mock() dbaas.LocalSqlClient.execute = Mock() self.mySqlAdmin = MySqlAdmin() def tearDown(self): super(MySqlAdminTest, self).tearDown() dbaas.get_engine = self.orig_get_engine dbaas.LocalSqlClient = self.orig_LocalSqlClient dbaas.LocalSqlClient.__enter__ = self.orig_LocalSqlClient_enter dbaas.LocalSqlClient.__exit__ = self.orig_LocalSqlClient_exit dbaas.LocalSqlClient.execute = self.orig_LocalSqlClient_execute models.MySQLUser._is_valid_user_name = \ self.orig_MySQLUser_is_valid_user_name def test_create_database(self): databases = [] databases.append(FAKE_DB) self.mySqlAdmin.create_database(databases) args, _ = dbaas.LocalSqlClient.execute.call_args_list[0] expected = ("CREATE DATABASE IF NOT EXISTS " "`testDB` CHARACTER SET = 'latin2' " "COLLATE = 'latin2_general_ci';") self.assertEquals(args[0].text, expected, "Create database queries are not the same") self.assertEqual(1, dbaas.LocalSqlClient.execute.call_count, "The client object was not 2 times") def test_create_database_more_than_1(self): databases = [] databases.append(FAKE_DB) databases.append(FAKE_DB_2) self.mySqlAdmin.create_database(databases) args, _ = dbaas.LocalSqlClient.execute.call_args_list[0] expected = ("CREATE DATABASE IF NOT EXISTS " "`testDB` CHARACTER SET = 'latin2' " "COLLATE = 'latin2_general_ci';") self.assertEquals(args[0].text, expected, "Create database queries are not the same") args, _ = dbaas.LocalSqlClient.execute.call_args_list[1] expected = ("CREATE DATABASE IF NOT EXISTS " "`testDB2` CHARACTER SET = 'latin2' " "COLLATE = 'latin2_general_ci';") self.assertEquals(args[0].text, expected, "Create database queries are not the same") self.assertEqual(2, dbaas.LocalSqlClient.execute.call_count, "The client object was not 2 times") def test_create_database_no_db(self): databases = [] self.mySqlAdmin.create_database(databases) self.assertFalse( dbaas.LocalSqlClient.execute.called, "The client object was called when it wasn't " + "supposed to") def test_delete_database(self): database = {"_name": "testDB"} self.mySqlAdmin.delete_database(database) args, _ = dbaas.LocalSqlClient.execute.call_args expected = "DROP DATABASE `testDB`;" self.assertEquals(args[0].text, expected, "Delete database queries are not the same") self.assertTrue(dbaas.LocalSqlClient.execute.called, "The client object was not called") def test_delete_user(self): user = {"_name": "testUser"} self.mySqlAdmin.delete_user(user) # For some reason, call_args is None. call_args = dbaas.LocalSqlClient.execute.call_args if call_args is not None: args, _ = call_args expected = "DROP USER `testUser`;" self.assertEquals(args[0].text, expected, "Delete user queries are not the same") self.assertTrue(dbaas.LocalSqlClient.execute.called, "The client object was not called") def test_create_user(self): self.mySqlAdmin.create_user(FAKE_USER) expected = ("GRANT ALL PRIVILEGES ON `testDB`.* TO `random`@`%` " "IDENTIFIED BY 'guesswhat' " "WITH GRANT OPTION;") # For some reason, call_args is None. call_args = dbaas.LocalSqlClient.execute.call_args if call_args is not None: args, _ = call_args self.assertEquals(args[0].text.strip(), expected, "Create user queries are not the same") self.assertEqual(2, dbaas.LocalSqlClient.execute.call_count)