Beispiel #1
0
class TestShellCommand(TestCase):
    def setUp(self):
        self.cmd = ShellCommand(database='wordpress',
                                user='******',
                                passwd='pass',
                                mysql_options='--protocol=tcp',
                                mysqldump_options='--single-transaction')

    @staticmethod
    def replace_spaces(string):
        return re.sub(r'\s+', ' ', string)

    def test_redirect(self):
        self.assertEqual(self.cmd.redirect_null, self.cmd.redirect())
        self.assertEqual('1 ' + self.cmd.redirect_null, self.cmd.redirect(1))

    def test_cmd_mysql(self):
        self.assertEqual(
            'mysql --host=localhost --port=3306 --user=user --password=pass '
            '--protocol=tcp --column-type-info wordpress 2 > /dev/null',
            self.replace_spaces(self.cmd.cmd_mysql('--column-type-info')))

    def test_cmd_mysqldump(self):
        self.assertEqual(
            'mysqldump --host=localhost --port=3306 --user=user --password=pass '
            '--single-transaction --skip-opt wordpress 2 > /dev/null',
            self.replace_spaces(self.cmd.cmd_mysqldump('--skip-opt')))

    def test_cmd_snapshot_database(self):
        self.assertEqual(
            'mysqldump --host=localhost --port=3306 --user=user --password=pass '
            '--single-transaction wordpress 2 > /dev/null | gzip > snapshot.sql.gz',
            self.replace_spaces(
                self.cmd.cmd_snapshot_database('snapshot.sql.gz', None)))

    def test_cmd_snapshot_directory(self):
        self.assertEqual(
            'tar czpf snapshot.tar.gz public_html',
            self.replace_spaces(
                self.cmd.cmd_snapshot_directory('snapshot.tar.gz',
                                                'public_html')))

    def test_cmd_replace_local_db(self):
        self.assertEqual(
            'gunzip -c snapshot.sql.gz | '
            'mysql --host=localhost --port=3306 --user=user --password=pass '
            '--protocol=tcp wordpress 2 > /dev/null',
            self.replace_spaces(
                self.cmd.cmd_replace_local_db(snapshot_file='snapshot.sql.gz',
                                              mysql_options='',
                                              pipe='')))

        self.assertEqual(
            'gunzip -c snapshot.sql.gz | sed | pipe-test | '
            'mysql --host=localhost --port=3306 --user=user --password=pass '
            '--protocol=tcp wordpress 2 > /dev/null',
            self.replace_spaces(
                self.cmd.cmd_replace_local_db(snapshot_file='snapshot.sql.gz',
                                              mysql_options='',
                                              pipe=['sed', 'pipe-test'])))

        self.assertEqual(
            'gunzip -c snapshot.sql.gz | sed | '
            'mysql --host=localhost --port=3306 --user=user --password=pass '
            '--protocol=tcp wordpress 2 > /dev/null',
            self.replace_spaces(
                self.cmd.cmd_replace_local_db(snapshot_file='snapshot.sql.gz',
                                              mysql_options='',
                                              pipe='sed')))