コード例 #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))
コード例 #2
0
    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)
コード例 #3
0
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))
コード例 #4
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))
コード例 #5
0
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))
コード例 #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))
コード例 #7
0
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))
コード例 #8
0
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))
コード例 #9
0
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))
コード例 #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))
コード例 #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))
コード例 #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))
コード例 #13
0
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))
コード例 #14
0
 def setUp(self):
     self.collection.register(JinjaStatementHasSpacesRule())
     self.runner = RunFromText(self.collection)
コード例 #15
0
 def setUp(self):
     self.collection.register(JinjaPillarGrainsGetFormatRule())
     self.runner = RunFromText(self.collection)
コード例 #16
0
 def test_statement_positive(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(GOOD_CMD_STATE)
     self.assertEqual(0, len(results))
コード例 #17
0
 def setUp(self):
     self.collection.register(TypoRequireRule())
     self.runner = RunFromText(self.collection)
コード例 #18
0
 def setUp(self):
     self.collection.register(FileModeQuotationRule())
     self.runner = RunFromText(self.collection)
コード例 #19
0
 def test_statement_negative(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(BAD_MODE_LEADING_ZERO_LINE)
     self.assertEqual(3, len(results))
コード例 #20
0
 def test_skip_rule(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(LINE_SKIP)
     self.assertEqual(0, len(results))
コード例 #21
0
 def test_skip_multiple_rules(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(LINE_SKIP_MULTIPLE)
     self.assertEqual(0, len(results))
コード例 #22
0
 def setUp(self):
     self.collection.register(JinjaVariableHasSpacesRule())
     self.runner = RunFromText(self.collection)
コード例 #23
0
 def setUp(self):
     self.collection.register(TypoOnchangesRule())
     self.runner = RunFromText(self.collection)
コード例 #24
0
 def test_statement_negative(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(BAD_CMD_STATE)
     self.assertEqual(1, len(results))
コード例 #25
0
 def test_statement_negative(self):
     runner = RunFromText(self.collection)
     results = runner.run_state(BAD_NUMBER_LINE)
     self.assertEqual(2, len(results))
コード例 #26
0
 def setUp(self):
     self.runner = RunFromText(self.collection)
コード例 #27
0
 def setUp(self):
     self.collection.register(FileModeLeadingZeroRule())
     self.runner = RunFromText(self.collection)