コード例 #1
0
    def setUp(self):
        super(DatabaseAdminCommandTest, self).setUp()
        self.mock_statement_executor = self.mox.CreateMock(
            SQLStatementExecutor)
        self.mock_feedback = self.mox.CreateMock(ExecutionFeedback)

        self.database_admin_command = DatabaseAdminCommand(
            self.mock_statement_executor, self.mock_feedback)
コード例 #2
0
    def test_can_create_instance(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create a DatabaseAdminCommand instance"""

        database_credentials = TemplateLoader.load_database_credentials()
        mock_host_controller = self.mox.CreateMock(RemoteHostController)
        mock_host_controller.feedback = self.mock_feedback

        self.mox.ReplayAll()

        self.assertIsInstance(DatabaseAdminCommand.create_with(database_credentials, mock_host_controller), DatabaseAdminCommand)
コード例 #3
0
ファイル: admin.py プロジェクト: mahmoudimus/akvo-rsr
 def create_with(database_credentials, deployment_host_config,
                 host_controller):
     return DatabaseAdmin(
         DatabaseAdminCommand.create_with(database_credentials,
                                          host_controller),
         DatabaseCopier(database_credentials, host_controller),
         RSRDataPopulator.create_with(database_credentials,
                                      deployment_host_config,
                                      host_controller),
         TimeStampFormatter(), host_controller.feedback)
コード例 #4
0
    def test_can_create_instance(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create a DatabaseAdminCommand instance"""

        database_credentials = TemplateLoader.load_database_credentials()
        mock_host_controller = self.mox.CreateMock(RemoteHostController)
        mock_host_controller.feedback = self.mock_feedback

        self.mox.ReplayAll()

        self.assertIsInstance(
            DatabaseAdminCommand.create_with(database_credentials,
                                             mock_host_controller),
            DatabaseAdminCommand)
コード例 #5
0
class DatabaseAdminCommandTest(mox.MoxTestBase):
    def setUp(self):
        super(DatabaseAdminCommandTest, self).setUp()
        self.mock_statement_executor = self.mox.CreateMock(
            SQLStatementExecutor)
        self.mock_feedback = self.mox.CreateMock(ExecutionFeedback)

        self.database_admin_command = DatabaseAdminCommand(
            self.mock_statement_executor, self.mock_feedback)

    def test_can_create_instance(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create a DatabaseAdminCommand instance"""

        database_credentials = TemplateLoader.load_database_credentials()
        mock_host_controller = self.mox.CreateMock(RemoteHostController)
        mock_host_controller.feedback = self.mock_feedback

        self.mox.ReplayAll()

        self.assertIsInstance(
            DatabaseAdminCommand.create_with(database_credentials,
                                             mock_host_controller),
            DatabaseAdminCommand)

    def test_can_check_for_existing_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for an existing database"""

        database_search_response = MySQLResponseData("+--\n|existing_db|\n--+")

        self.mock_statement_executor.execute_without_output([
            "SHOW DATABASES LIKE 'existing_db'"
        ]).AndReturn(database_search_response)
        self.mock_feedback.comment("Found database 'existing_db'")
        self.mox.ReplayAll()

        self.assertTrue(
            self.database_admin_command.database_exists("existing_db"),
            "Should recognise an existing database")

    def test_can_check_for_nonexistent_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for a non-existent database"""

        database_search_response = MySQLResponseData("")

        self.mock_statement_executor.execute_without_output([
            "SHOW DATABASES LIKE 'non_existent_db'"
        ]).AndReturn(database_search_response)
        self.mock_feedback.comment("Database 'non_existent_db' does not exist")
        self.mox.ReplayAll()

        self.assertFalse(
            self.database_admin_command.database_exists("non_existent_db"),
            "Should recognise a non-existent database")

    def test_can_check_for_existing_user_account(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for an existing user account"""

        user_search_response = MySQLResponseData("+--\n|joe|\n--+")
        sql_for_user_search = [
            "USE mysql", "SELECT User FROM user WHERE User = '******'"
        ]

        self.mock_statement_executor.execute_without_output(
            sql_for_user_search).AndReturn(user_search_response)
        self.mock_feedback.comment("Found user 'joe'")
        self.mox.ReplayAll()

        self.assertTrue(self.database_admin_command.user_exists("joe"),
                        "Should recognise an existing user account")

    def test_can_check_for_nonexistent_user_account(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for a non-existent user account"""

        user_search_response = MySQLResponseData("")
        sql_for_user_search = [
            "USE mysql", "SELECT User FROM user WHERE User = '******'"
        ]

        self.mock_statement_executor.execute_without_output(
            sql_for_user_search).AndReturn(user_search_response)
        self.mock_feedback.comment("User 'kenny' does not exist")
        self.mox.ReplayAll()

        self.assertFalse(self.database_admin_command.user_exists("kenny"),
                         "Should recognise a non-existent user account")

    def test_can_drop_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can drop database"""

        self.mock_statement_executor.execute(["DROP DATABASE unused_db"])
        self.mox.ReplayAll()

        self.database_admin_command.drop_database("unused_db")

    def test_can_create_empty_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create empty database"""

        self.mock_statement_executor.execute(
            ["CREATE DATABASE projects_db DEFAULT CHARACTER SET UTF8"])
        self.mox.ReplayAll()

        self.database_admin_command.create_empty_database("projects_db")

    def test_can_create_user_account(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create user account"""

        self.mock_statement_executor.execute_without_output(
            ["CREATE USER joe IDENTIFIED BY 'secret'"])
        self.mox.ReplayAll()

        self.database_admin_command.create_user_account("joe", "secret")

    def test_can_grant_all_database_permissions_for_specified_user(self):
        """fab.tests.database.mysql.database_admin_command_test  Can grant all database permissions for a specified user"""

        self.mock_statement_executor.execute(
            ["GRANT ALL ON foo.* TO rupaul@localhost"])
        self.mox.ReplayAll()

        self.database_admin_command.grant_all_database_permissions_for_user(
            "rupaul", "foo")
コード例 #6
0
    def setUp(self):
        super(DatabaseAdminCommandTest, self).setUp()
        self.mock_statement_executor = self.mox.CreateMock(SQLStatementExecutor)
        self.mock_feedback = self.mox.CreateMock(ExecutionFeedback)

        self.database_admin_command = DatabaseAdminCommand(self.mock_statement_executor, self.mock_feedback)
コード例 #7
0
class DatabaseAdminCommandTest(mox.MoxTestBase):

    def setUp(self):
        super(DatabaseAdminCommandTest, self).setUp()
        self.mock_statement_executor = self.mox.CreateMock(SQLStatementExecutor)
        self.mock_feedback = self.mox.CreateMock(ExecutionFeedback)

        self.database_admin_command = DatabaseAdminCommand(self.mock_statement_executor, self.mock_feedback)

    def test_can_create_instance(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create a DatabaseAdminCommand instance"""

        database_credentials = TemplateLoader.load_database_credentials()
        mock_host_controller = self.mox.CreateMock(RemoteHostController)
        mock_host_controller.feedback = self.mock_feedback

        self.mox.ReplayAll()

        self.assertIsInstance(DatabaseAdminCommand.create_with(database_credentials, mock_host_controller), DatabaseAdminCommand)

    def test_can_check_for_existing_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for an existing database"""

        database_search_response = MySQLResponseData("+--\n|existing_db|\n--+")

        self.mock_statement_executor.execute_without_output(["SHOW DATABASES LIKE 'existing_db'"]).AndReturn(database_search_response)
        self.mock_feedback.comment("Found database 'existing_db'")
        self.mox.ReplayAll()

        self.assertTrue(self.database_admin_command.database_exists("existing_db"), "Should recognise an existing database")

    def test_can_check_for_nonexistent_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for a non-existent database"""

        database_search_response = MySQLResponseData("")

        self.mock_statement_executor.execute_without_output(["SHOW DATABASES LIKE 'non_existent_db'"]).AndReturn(database_search_response)
        self.mock_feedback.comment("Database 'non_existent_db' does not exist")
        self.mox.ReplayAll()

        self.assertFalse(self.database_admin_command.database_exists("non_existent_db"), "Should recognise a non-existent database")

    def test_can_check_for_existing_user_account(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for an existing user account"""

        user_search_response = MySQLResponseData("+--\n|joe|\n--+")
        sql_for_user_search = ["USE mysql", "SELECT User FROM user WHERE User = '******'"]

        self.mock_statement_executor.execute_without_output(sql_for_user_search).AndReturn(user_search_response)
        self.mock_feedback.comment("Found user 'joe'")
        self.mox.ReplayAll()

        self.assertTrue(self.database_admin_command.user_exists("joe"), "Should recognise an existing user account")

    def test_can_check_for_nonexistent_user_account(self):
        """fab.tests.database.mysql.database_admin_command_test  Can check for a non-existent user account"""

        user_search_response = MySQLResponseData("")
        sql_for_user_search = ["USE mysql", "SELECT User FROM user WHERE User = '******'"]

        self.mock_statement_executor.execute_without_output(sql_for_user_search).AndReturn(user_search_response)
        self.mock_feedback.comment("User 'kenny' does not exist")
        self.mox.ReplayAll()

        self.assertFalse(self.database_admin_command.user_exists("kenny"), "Should recognise a non-existent user account")

    def test_can_drop_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can drop database"""

        self.mock_statement_executor.execute(["DROP DATABASE unused_db"])
        self.mox.ReplayAll()

        self.database_admin_command.drop_database("unused_db")

    def test_can_create_empty_database(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create empty database"""

        self.mock_statement_executor.execute(["CREATE DATABASE projects_db DEFAULT CHARACTER SET UTF8"])
        self.mox.ReplayAll()

        self.database_admin_command.create_empty_database("projects_db")

    def test_can_create_user_account(self):
        """fab.tests.database.mysql.database_admin_command_test  Can create user account"""

        self.mock_statement_executor.execute_without_output(["CREATE USER joe IDENTIFIED BY 'secret'"])
        self.mox.ReplayAll()

        self.database_admin_command.create_user_account("joe", "secret")

    def test_can_grant_all_database_permissions_for_specified_user(self):
        """fab.tests.database.mysql.database_admin_command_test  Can grant all database permissions for a specified user"""

        self.mock_statement_executor.execute(["GRANT ALL ON foo.* TO rupaul@localhost"])
        self.mox.ReplayAll()

        self.database_admin_command.grant_all_database_permissions_for_user("rupaul", "foo")
コード例 #8
0
ファイル: admin.py プロジェクト: caetie/akvo-rsr
 def create_with(database_credentials, deployment_host_config, host_controller):
     return DatabaseAdmin(DatabaseAdminCommand.create_with(database_credentials, host_controller),
                          DatabaseCopier(database_credentials, host_controller),
                          RSRDataPopulator.create_with(database_credentials, deployment_host_config, host_controller),
                          TimeStampFormatter(),
                          host_controller.feedback)