def test_strip_leading_comment(self):
        """Test stripping leading comments from SQL statements"""
        assert ('--delete\n', 'select 1') == \
            ImpalaShellClass.strip_leading_comment('--delete\nselect 1')
        assert ('--delete\n', 'select --do not delete\n1') == \
            ImpalaShellClass.strip_leading_comment('--delete\nselect --do not delete\n1')
        assert (None, 'select --do not delete\n1') == \
            ImpalaShellClass.strip_leading_comment('select --do not delete\n1')

        assert ('/*delete*/\n', 'select 1') == \
            ImpalaShellClass.strip_leading_comment('/*delete*/\nselect 1')
        assert ('/*delete\nme*/\n', 'select 1') == \
            ImpalaShellClass.strip_leading_comment('/*delete\nme*/\nselect 1')
        assert ('/*delete\nme*/\n', 'select 1') == \
            ImpalaShellClass.strip_leading_comment('/*delete\nme*/\nselect 1')
        assert ('/*delete*/', 'select 1') == \
            ImpalaShellClass.strip_leading_comment('/*delete*/select 1')
        assert ('/*delete*/ ', 'select /*do not delete*/ 1') == \
            ImpalaShellClass.strip_leading_comment('/*delete*/ select /*do not delete*/ 1')
        assert ('/*delete1*/ \n/*delete2*/ \n--delete3 \n', 'select /*do not delete*/ 1') == \
            ImpalaShellClass.strip_leading_comment('/*delete1*/ \n'
                                                   '/*delete2*/ \n'
                                                   '--delete3 \n'
                                                   'select /*do not delete*/ 1')
        assert (None, 'select /*do not delete*/ 1') == \
            ImpalaShellClass.strip_leading_comment('select /*do not delete*/ 1')
        assert ('/*delete*/\n', 'select c1 from\n'
                                'a\n'
                                'join -- +SHUFFLE\n'
                                'b') == \
            ImpalaShellClass.strip_leading_comment('/*delete*/\n'
                                                   'select c1 from\n'
                                                   'a\n'
                                                   'join -- +SHUFFLE\n'
                                                   'b')
        assert ('/*delete*/\n', 'select c1 from\n'
                                'a\n'
                                'join /* +SHUFFLE */\n'
                                'b') == \
            ImpalaShellClass.strip_leading_comment('/*delete*/\n'
                                                   'select c1 from\n'
                                                   'a\n'
                                                   'join /* +SHUFFLE */\n'
                                                   'b')

        assert (None, 'select 1') == \
            ImpalaShellClass.strip_leading_comment('select 1')
  def test_strip_leading_comment(self):
    """Test stripping leading comments from SQL statements"""
    assert ('--delete\n', 'select 1') == \
        ImpalaShellClass.strip_leading_comment('--delete\nselect 1')
    assert ('--delete\n', 'select --do not delete\n1') == \
        ImpalaShellClass.strip_leading_comment('--delete\nselect --do not delete\n1')
    assert (None, 'select --do not delete\n1') == \
        ImpalaShellClass.strip_leading_comment('select --do not delete\n1')

    assert ('/*delete*/\n', 'select 1') == \
        ImpalaShellClass.strip_leading_comment('/*delete*/\nselect 1')
    assert ('/*delete\nme*/\n', 'select 1') == \
        ImpalaShellClass.strip_leading_comment('/*delete\nme*/\nselect 1')
    assert ('/*delete\nme*/\n', 'select 1') == \
        ImpalaShellClass.strip_leading_comment('/*delete\nme*/\nselect 1')
    assert ('/*delete*/', 'select 1') == \
        ImpalaShellClass.strip_leading_comment('/*delete*/select 1')
    assert ('/*delete*/ ', 'select /*do not delete*/ 1') == \
        ImpalaShellClass.strip_leading_comment('/*delete*/ select /*do not delete*/ 1')
    assert ('/*delete1*/ \n/*delete2*/ \n--delete3 \n', 'select /*do not delete*/ 1') == \
        ImpalaShellClass.strip_leading_comment('/*delete1*/ \n'
                                               '/*delete2*/ \n'
                                               '--delete3 \n'
                                               'select /*do not delete*/ 1')
    assert (None, 'select /*do not delete*/ 1') == \
        ImpalaShellClass.strip_leading_comment('select /*do not delete*/ 1')
    assert ('/*delete*/\n', 'select c1 from\n'
                            'a\n'
                            'join -- +SHUFFLE\n'
                            'b') == \
        ImpalaShellClass.strip_leading_comment('/*delete*/\n'
                                               'select c1 from\n'
                                               'a\n'
                                               'join -- +SHUFFLE\n'
                                               'b')
    assert ('/*delete*/\n', 'select c1 from\n'
                            'a\n'
                            'join /* +SHUFFLE */\n'
                            'b') == \
        ImpalaShellClass.strip_leading_comment('/*delete*/\n'
                                               'select c1 from\n'
                                               'a\n'
                                               'join /* +SHUFFLE */\n'
                                               'b')

    assert (None, 'select 1') == \
        ImpalaShellClass.strip_leading_comment('select 1')