Exemple #1
0
class TestModeQuotationRule(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(FileModeQuotationRule())
        self.runner = RunFromText(self.collection)

    def test_statement_positive(self):
        results = self.runner.run_state(GOOD_MODE_QUOTATION_LINE)
        self.assertEqual(0, len(results))

    def test_statement_negative(self):
        results = self.runner.run_state(BAD_MODE_QUOTATION_LINE)
        self.assertEqual(3, len(results))

    def test_missing_quotes(self):
        results = self.runner.run_state(MODE_MISSING_QUOTATION_LINE)
        self.assertEqual(3, len(results))

    def test_network_mode(self):
        """
        Ensure the mode argument in the network.managed state gets ignored. See
        related GitHub issue:
        https://github.com/warpnet/salt-lint/issues/255
        """
        results = self.runner.run_state(NETWORK_MANAGED_MODE)
        self.assertEqual(0, len(results))
    def test_statement_negative(self):
        runner = RunFromText(self.collection)
        results = runner.run_state(BAD_QUIET_STATE)
        self.assertEqual(2, len(results))

        # Check line numbers of the results
        self.assertEqual(9, results[0].linenumber)
        self.assertEqual(14, results[1].linenumber)
class TestJinjaVariableHasSpaces(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(JinjaVariableHasSpacesRule())
        self.runner = RunFromText(self.collection)

    def test_statement_positive(self):
        results = self.runner.run_state(GOOD_VARIABLE_LINE)
        self.assertEqual(0, len(results))

    def test_statement_jinja_raw_positive(self):
        """Check if Jinja looking variables between raw-blocks are ignored."""
        results = self.runner.run_state(GOOD_VARIABLE_LINE_RAW)
        self.assertEqual(0, len(results))

    def test_statement_jinja_raw_negative(self):
        """Check if Jinja looking variables between raw-blocks are ignored."""
        results = self.runner.run_state(BAD_VARIABLE_LINE_RAW)
        # Check if the correct number of matches are found
        self.assertEqual(1, len(results))
        # Check if the match occurred on the correct line
        self.assertEqual(results[0].linenumber, 5)

    def test_statement_negative(self):
        results = self.runner.run_state(BAD_VARIABLE_LINE)
        self.assertEqual(1, len(results))

    def test_double_quoted_integer(self):
        results = self.runner.run_state(DOUBLE_QUOTED_INTEGER_IS_VALID)
        self.assertEqual(0, len(results))

    def test_double_quoted_integer_trailing_space_invalid(self):
        results = self.runner.run_state(DOUBLE_QUOTED_INTEGER_TRAILING_SPACE_IS_INVALID)
        self.assertEqual(1, len(results))

    def test_double_quoted_integer_leading_space_invalid(self):
        results = self.runner.run_state(DOUBLE_QUOTED_INTEGER_LEADING_SPACE_IS_INVALID)
        self.assertEqual(1, len(results))

    def test_variable_bad_ends_with_integer(self):
        results = self.runner.run_state(BAD_VARIABLE_ENDING_IN_INTEGER)
        self.assertEqual(1, len(results))

    def test_variable_bad_ends_with_integer_right(self):
        results = self.runner.run_state(BAD_VARIABLE_ENDING_IN_INTEGER_RIGHT)
        self.assertEqual(1, len(results))

    def test_nested_literal_braces(self):
        """
        Check if Jinja variables inside nested literal braces are identified
        correctly. See related GitHub issue:
        https://github.com/warpnet/salt-lint/issues/257
        """
        results = self.runner.run_state(NESTED_LITERAL_BRACES)
        self.assertEqual(0, len(results))
class TestModeQuotationRule(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(FileModeQuotationRule())
        self.runner = RunFromText(self.collection)

    def test_statement_positive(self):
        results = self.runner.run_state(GOOD_MODE_QUOTATION_LINE)
        self.assertEqual(0, len(results))

    def test_statement_negative(self):
        results = self.runner.run_state(BAD_MODE_QUOTATION_LINE)
        self.assertEqual(3, len(results))
class TestJinjaCommentHasSpaces(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(JinjaCommentHasSpacesRule())
        self.runner = RunFromText(self.collection)

    def test_comment_positive(self):
        results = self.runner.run_state(GOOD_COMMENT_LINE)
        self.assertEqual(0, len(results))

    def test_comment_negative(self):
        results = self.runner.run_state(BAD_COMMENT_LINE)
        self.assertEqual(1, len(results))
Exemple #6
0
class TestTypoOnchangesRule(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(TypoOnchangesRule())
        self.runner = RunFromText(self.collection)

    def test_statement_positive(self):
        results = self.runner.run_state(GOOD_ONCHANGES_LINE)
        self.assertEqual(0, len(results))

    def test_statement_negative(self):
        results = self.runner.run_state(BAD_ONCHANGES_LINE)
        self.assertEqual(3, len(results))
class TestLineTooLongRule(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(JinjaVariableHasSpacesRule())
        self.runner = RunFromText(self.collection)

    def test_statement_positive(self):
        results = self.runner.run_state(GOOD_VARIABLE_LINE)
        self.assertEqual(0, len(results))

    def test_statement_negative(self):
        results = self.runner.run_state(BAD_VARIABLE_LINE)
        self.assertEqual(1, len(results))
class TestJinjaPillarGrainsGetFormatRule(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(JinjaPillarGrainsGetFormatRule())
        self.runner = RunFromText(self.collection)

    def test_statement_positive(self):
        results = self.runner.run_state(GOOD_STATEMENT_LINE)
        self.assertEqual(0, len(results))

    def test_statement_negative(self):
        results = self.runner.run_state(BAD_STATEMENT_LINE)
        self.assertEqual(2, len(results))
class TestNoIrregularSpacesRule(unittest.TestCase):
    collection = RulesCollection()
    collection.register(NoIrregularSpacesRule())

    def setUp(self):
        self.runner = RunFromText(self.collection)

    def test_with_irregular_spaces(self):
        for irregular in NoIrregularSpacesRule.irregular_spaces:
            results = self.runner.run_state(unicode(LINE).format(space=irregular))
            self.assertEqual(1, len(results))

    def test_without_irregular_spaces(self):
        results = self.runner.run_state(LINE.format(space=" "))
        self.assertEqual(0, len(results))
Exemple #10
0
class TestNoTabsRule(unittest.TestCase):
    collection = RulesCollection()
    collection.register(NoTabsRule())

    def setUp(self):
        self.runner = RunFromText(self.collection)

    def test_with_tabs(self):
        results = self.runner.run_state(LINE_WITH_TABS)
        self.assertEqual(2, len(results))

    def test_with_spaces(self):
        results = self.runner.run_state(LINE_WITH_SPACES)
        self.assertEqual(0, len(results))

    def test_mixed_tab_space(self):
        results = self.runner.run_state(LINE_MIXED_TAB_SPACE)
        self.assertEqual(1, len(results))
Exemple #11
0
class TestLineTooLongRule(unittest.TestCase):
    collection = RulesCollection()
    collection.register(LineTooLongRule())

    def setUp(self):
        self.runner = RunFromText(self.collection)

    def test_long_line(self):
        results = self.runner.run_state(LONG_LINE)
        self.assertEqual(1, len(results))
Exemple #12
0
class TestTrailingWhitespaceRule(unittest.TestCase):
    collection = RulesCollection()
    collection.register(TrailingWhitespaceRule())

    def setUp(self):
        self.runner = RunFromText(self.collection)

    def test_trailing_whitespace(self):
        results = self.runner.run_state(LINE_AND_WHITESPACE)
        print(results)
        self.assertEqual(1, len(results))
class TestJinjaVariableHasSpaces(unittest.TestCase):
    collection = RulesCollection()

    def setUp(self):
        self.collection.register(JinjaVariableHasSpacesRule())
        self.runner = RunFromText(self.collection)

    def test_statement_positive(self):
        results = self.runner.run_state(GOOD_VARIABLE_LINE)
        self.assertEqual(0, len(results))

    def test_statement_negative(self):
        results = self.runner.run_state(BAD_VARIABLE_LINE)
        self.assertEqual(1, len(results))

    def test_double_quoted_integer(self):
        results = self.runner.run_state(DOUBLE_QUOTED_INTEGER_IS_VALID)
        self.assertEqual(0, len(results))

    def test_double_quoted_integer_trailing_space_invalid(self):
        results = self.runner.run_state(
            DOUBLE_QUOTED_INTEGER_TRAILING_SPACE_IS_INVALID)
        self.assertEqual(1, len(results))

    def test_double_quoted_integer_leading_space_invalid(self):
        results = self.runner.run_state(
            DOUBLE_QUOTED_INTEGER_LEADING_SPACE_IS_INVALID)
        self.assertEqual(1, len(results))

    def test_variable_bad_ends_with_integer(self):
        results = self.runner.run_state(BAD_VARIABLE_ENDING_IN_INTEGER)
        self.assertEqual(1, len(results))

    def test_variable_bad_ends_with_integer_right(self):
        results = self.runner.run_state(BAD_VARIABLE_ENDING_IN_INTEGER_RIGHT)
        self.assertEqual(1, len(results))
Exemple #14
0
 def setUp(self):
     self.collection.register(JinjaStatementHasSpacesRule())
     self.runner = RunFromText(self.collection)
 def setUp(self):
     self.collection.register(JinjaPillarGrainsGetFormatRule())
     self.runner = RunFromText(self.collection)
Exemple #16
0
 def test_statement_positive(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(GOOD_CMD_STATE)
     self.assertEqual(0, len(results))
 def setUp(self):
     self.collection.register(TypoRequireRule())
     self.runner = RunFromText(self.collection)
Exemple #18
0
 def setUp(self):
     self.collection.register(FileModeQuotationRule())
     self.runner = RunFromText(self.collection)
 def test_statement_negative(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(BAD_MODE_LEADING_ZERO_LINE)
     self.assertEqual(3, len(results))
 def test_skip_rule(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(LINE_SKIP)
     self.assertEqual(0, len(results))
 def test_skip_multiple_rules(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(LINE_SKIP_MULTIPLE)
     self.assertEqual(0, len(results))
 def setUp(self):
     self.collection.register(JinjaVariableHasSpacesRule())
     self.runner = RunFromText(self.collection)
Exemple #23
0
 def setUp(self):
     self.collection.register(TypoOnchangesRule())
     self.runner = RunFromText(self.collection)
Exemple #24
0
 def test_statement_negative(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(BAD_CMD_STATE)
     self.assertEqual(1, len(results))
Exemple #25
0
 def test_statement_negative(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(BAD_NUMBER_LINE)
     self.assertEqual(2, len(results))
Exemple #26
0
 def setUp(self):
     self.runner = RunFromText(self.collection)
 def setUp(self):
     self.collection.register(FileModeLeadingZeroRule())
     self.runner = RunFromText(self.collection)