class SaltLint::Tests

Main class for all the tests.

Public Class Methods

check_double_quotes(line_number, line, file) click to toggle source

Test content: Checking if given line contains double quoted content without variable.

# File lib/salt-lint/tests.rb, line 83
def self.check_double_quotes(line_number, line, file)
  if $arguments.check_double_quotes
    check_for_regexp(line_number, line, file, /\"(?!{+).*(?!}+)\"/, "Checking for double quotes: #{line_number}", "Using double quotes with no variables: #{file}:#{line_number}")
  else
    return true
  end
end
check_file_mode_single_quotes(line_number, line, file) click to toggle source

Test content: Check if file mode with leading zero is wrapped into single quotes

# File lib/salt-lint/tests.rb, line 101
def self.check_file_mode_single_quotes(line_number, line, file)
  if $arguments.check_quoted_file_mode
    check_for_regexp(line_number, line, file, /mode\:\s\d{3,4}$/, "Checking if file mode is wrapped in single quotes: #{line_number}", "Unquoted file mode found: #{file}:#{line_number}")
  else
    return true
  end
end
check_for_no_newline(line_number, line, file) click to toggle source

Test content: Checking given file for no newline at the end of the file.

# File lib/salt-lint/tests.rb, line 35
def self.check_for_no_newline(line_number, line, file)
  is_ok = true
    if $arguments.check_newlines
    Printer.print('debug', "Checking for no-newline at the end of the file in file #{file}", 5)
    f = File.readlines(file).last
    f.match(/\n$/) ? is_ok = true : is_ok = false
    if ! $invalid_newline.has_key?(file) && is_ok == false
      Printer.print('warning', "No newline at the end of the file #{file}")
      $invalid_newline[file] = is_ok
    end
  end
  return is_ok
end
check_for_regexp(line_number, line, file, regex, debug_msg, warning_msg) click to toggle source

Helper: Checking for whitespaces

# File lib/salt-lint/tests.rb, line 8
def self.check_for_regexp(line_number, line, file, regex, debug_msg, warning_msg)
  Printer.print('debug', debug_msg, 5)
  ! (line =~ Regexp.new(regex)).nil? ? is_ok = false : is_ok = true
  if ! is_ok
    Printer.print('warning', warning_msg)
  end
  return is_ok
end
check_if_single_word_declaration(line_number, line, file) click to toggle source

Test content: Check context and block all the single-word declarations

# File lib/salt-lint/tests.rb, line 18
def self.check_if_single_word_declaration(line_number, line, file)
  is_ok = true
  if $arguments.check_single_word
    Printer.print('debug', "Looking for single word declarations in #{file}", 5)
    if line =~ /(pkg|file|service):\n/
        f = File.readlines(file)[line_number-1..line_number+2]
        ( f[2] =~ /^\n$/ && f[1] =~ /- \w+\n$/ ) ? is_ok = true : is_ok = false
        if ! $invalid_oneword.has_key?(file) && is_ok == false
          Printer.print('warning', "Found single line declaration in #{file}:#{line_number-1}-#{line_number+1}")
          $invalid_oneword[file] = is_ok
        end
    end
  end
  return is_ok
end
check_if_tabs_used(line_number, line, file) click to toggle source

Test content: Check for tabs used instead of spaces.

# File lib/salt-lint/tests.rb, line 64
def self.check_if_tabs_used(line_number, line, file)
  if $arguments.check_tabs
    check_for_regexp(line_number, line, file, /^[\t]+/, "Checking for tabs presence: #{line_number}", "Found tabs used instead of spaces: #{file}:#{line_number}")
  else
    return true
  end
end
check_line_length(line_number, line, file) click to toggle source

Test content: Checking if given line isn't longer than 80 characters.

# File lib/salt-lint/tests.rb, line 50
def self.check_line_length(line_number, line, file)
  is_ok = true
  if $arguments.check_line_length
    Printer.print('debug', "Checking line length: #{line_number}", 5)
    line.length > 80 ? is_ok = false : nil
    if ! is_ok
      Printer.print('warning', "Line length above 80 characters: #{file}:#{line_number}")
    end
  end
  return is_ok
end
check_quoted_boolean(line_number, line, file) click to toggle source

Test content: Checking if there's quoted boolean value present.

# File lib/salt-lint/tests.rb, line 92
def self.check_quoted_boolean(line_number, line, file)
  if $arguments.check_quoted_boolean
    check_for_regexp(line_number, line, file, /\s+(\"|\')(true|false)(\"|\')$/, "Checking for quoted booleans: #{line_number}", "Quoted boolean found: #{file}:#{line_number}")
  else
    return true
  end
end
check_trailing_whitespace(line_number, line, file) click to toggle source

Test content: Checking given line for trailing whitespaces.

# File lib/salt-lint/tests.rb, line 73
def self.check_trailing_whitespace(line_number, line, file)
  if $arguments.check_whitespaces
    check_for_regexp(line_number, line, file, /[ \t]+$/, "Checking for trailing whitespaces: #{line_number}", "Trailing whitespace character found: #{file}:#{line_number}")
  else
    return true
  end
end