Exemplo n.º 1
0
  def setUp(self):
    self.test_expected_reports_csv_file = os.path.realpath('test_expected_reports.csv')
    self.test_expected_reports_csv_content = open(self.test_expected_reports_csv_file).read()
    
    self.test_technique_file = os.path.realpath('test_technique.cf')
    self.technique_content = open(self.test_technique_file).read()
    self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)
    method_calls = ncf.parse_technique_methods(self.test_technique_file)
    self.technique_metadata['method_calls'] = method_calls

    self.test_reporting = os.path.realpath('test_technique_reporting.cf')
    self.reporting_content = open(self.test_reporting).read()
    self.reporting_metadata = ncf.parse_technique_metadata(self.reporting_content)
    reporting_method_calls = ncf.parse_technique_methods(self.test_reporting)
    self.reporting_metadata['method_calls'] = reporting_method_calls

    self.test_reporting_with_var = os.path.realpath('test_technique_with_variable.cf')
    self.reporting_with_var_content = open(self.test_reporting_with_var).read()
    self.reporting_with_var_metadata = ncf.parse_technique_metadata(self.reporting_with_var_content)
    reporting_with_var_method_calls = ncf.parse_technique_methods(self.test_reporting_with_var)
    self.reporting_with_var_metadata['method_calls'] = reporting_with_var_method_calls


    self.test_any_technique = os.path.realpath('test_technique_any.cf')
    self.any_technique_content = open(self.test_any_technique).read()
    self.any_technique_metadata = ncf.parse_technique_metadata(self.any_technique_content)
    any_technique_method_calls = ncf.parse_technique_methods(self.test_any_technique)
    self.any_technique_metadata['method_calls'] = any_technique_method_calls

    self.test_metadata_xml_file = os.path.realpath('test_metadata.xml')
    self.test_metadata_xml_content = open(self.test_metadata_xml_file).read()
Exemplo n.º 2
0
  def setUp(self):
    self.maxDiff = None
    self.test_expected_reports_csv_file = os.path.realpath('test_expected_reports.csv')
    with open(self.test_expected_reports_csv_file) as fd:
      self.test_expected_reports_csv_content = fd.read()
    
    self.test_technique_file = os.path.realpath('test_technique.cf')
    with open(self.test_technique_file) as fd:
      self.technique_content = fd.read()
    self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)['result']
    method_calls = ncf.parse_technique_methods(self.test_technique_file)
    self.technique_metadata['method_calls'] = method_calls

    self.test_reporting = os.path.realpath('test_technique_reporting.cf')
    with open(self.test_reporting) as fd:
      self.reporting_content = fd.read()
    self.reporting_metadata = ncf.parse_technique_metadata(self.reporting_content)['result']
    reporting_method_calls = ncf.parse_technique_methods(self.test_reporting)
    self.reporting_metadata['method_calls'] = reporting_method_calls

    self.test_reporting_with_var = os.path.realpath('test_technique_with_variable.cf')
    with open(self.test_reporting_with_var) as fd:
      self.reporting_with_var_content = fd.read()
    self.reporting_with_var_metadata = ncf.parse_technique_metadata(self.reporting_with_var_content)['result']
    reporting_with_var_method_calls = ncf.parse_technique_methods(self.test_reporting_with_var)
    self.reporting_with_var_metadata['method_calls'] = reporting_with_var_method_calls


    self.test_any_technique = os.path.realpath('test_technique_any.cf')
    with open(self.test_any_technique) as fd:
      self.any_technique_content = fd.read()
    self.any_technique_metadata = ncf.parse_technique_metadata(self.any_technique_content)['result']
    any_technique_method_calls = ncf.parse_technique_methods(self.test_any_technique)
    self.any_technique_metadata['method_calls'] = any_technique_method_calls

    self.test_metadata_xml_file = os.path.realpath('test_metadata.xml')
    with open(self.test_metadata_xml_file) as fd:
      self.test_metadata_xml_content = fd.read()


    # Testing Techniques with quote
    self.test_technique_with_quote_file = os.path.realpath('test_technique_with_quote.cf')
    self.technique_with_quote_content = open(self.test_technique_with_quote_file).read()
    self.technique_with_quote_metadata = ncf.parse_technique_metadata(self.technique_with_quote_content)['result']
    method_with_quote_calls = ncf.parse_technique_methods(self.test_technique_with_quote_file)
    self.technique_with_quote_metadata['method_calls'] = method_with_quote_calls

    self.test_expected_reports_with_quote_csv_file = os.path.realpath('test_expected_reports_with_quote.csv')
    self.test_expected_reports_with_quote_csv_content = open(self.test_expected_reports_with_quote_csv_file).read()

    self.test_metadata_with_quote_xml_file = os.path.realpath('test_metadata_with_quote.xml')
    self.test_metadata_with_quote_xml_content = open(self.test_metadata_with_quote_xml_file).read()
Exemplo n.º 3
0
  def setUp(self):
    self.test_technique_file = os.path.realpath('test_technique.cf')
    self.test_generic_method_file = 'test_generic_method.cf'
    with open(self.test_technique_file) as fd:
      self.technique_content = fd.read()
    with open(self.test_generic_method_file) as fd:
      self.generic_method_content = fd.read()
    self.all_methods = ncf.get_all_generic_methods_metadata()["data"]["generic_methods"]

    self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)['result']
    method_calls = ncf.parse_technique_methods(self.test_technique_file)
    self.technique_metadata['method_calls'] = method_calls

    self.technique_metadata_test = { 'name': 'ncf technique method argument escape test', 'description': "This is a bundle to test ncf's Python lib", 'version': '0.1', 'bundle_name': 'content_escaping_test', 'bundle_args': [],
        'method_calls': [
            { 'method_name': 'package_install_version', 'args': ['apache2', '2.2.11'], 'class_context': 'any' },
            { 'method_name': 'file_replace_lines', 'args': ['/etc/httpd/conf/httpd.conf', 'ErrorLog \"/var/log/httpd/error_log\"', 'ErrorLog "/projet/logs/httpd/error_log"'],  'class_context': 'redhat' },
          ]
        }
    self.technique_metadata_test_content = os.path.realpath('technique_metadata_test_content.cf')
    all_tags = ncf.tags["generic_method"]+ncf.tags["common"]
    self.methods_expected_tags = [ tag for tag in all_tags if not tag in ncf.optionnal_tags ]

    with open(self.technique_metadata_test_content) as fd:
      self.technique_test_expected_content = fd.read()
Exemplo n.º 4
0
    def setUp(self):
        self.test_technique_file = os.path.realpath("test_technique.cf")
        self.test_generic_method_file = "test_generic_method.cf"
        self.technique_content = open(self.test_technique_file).read()
        self.generic_method_content = open(self.test_generic_method_file).read()

        self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)
        method_calls = ncf.parse_technique_methods(self.test_technique_file)
        self.technique_metadata["method_calls"] = method_calls

        self.technique_metadata_test = {
            "name": "ncf technique method argument escape test",
            "description": "This is a bundle to test ncf's Python lib",
            "version": "0.1",
            "bundle_name": "content_escaping_test",
            "bundle_args": [],
            "method_calls": [
                {"method_name": "package_install_version", "args": ["apache2", "2.2.11"], "class_context": "any"},
                {
                    "method_name": "file_replace_lines",
                    "args": [
                        "/etc/httpd/conf/httpd.conf",
                        'ErrorLog "/var/log/httpd/error_log"',
                        'ErrorLog "/projet/logs/httpd/error_log"',
                    ],
                    "class_context": "redhat",
                },
            ],
        }
        self.technique_metadata_test_content = os.path.realpath("technique_metadata_test_content.cf")
        self.technique_test_expected_content = open(self.technique_metadata_test_content).read()
Exemplo n.º 5
0
    def setUp(self):
        self.test_technique_file = os.path.realpath('test_technique.cf')
        self.test_generic_method_file = 'test_generic_method.cf'
        with open(self.test_technique_file) as fd:
            self.technique_content = fd.read()
        with open(self.test_generic_method_file) as fd:
            self.generic_method_content = fd.read()
        self.all_methods = ncf.get_all_generic_methods_metadata(
        )["data"]["generic_methods"]

        self.technique_metadata = ncf.parse_technique_metadata(
            self.technique_content)['result']
        method_calls = ncf.parse_technique_methods(self.test_technique_file,
                                                   self.all_methods)
        self.technique_metadata['method_calls'] = method_calls

        self.technique_metadata_test = {
            'name':
            'ncf technique method argument escape test',
            'description':
            "This is a bundle to test ncf's Python lib",
            'version':
            '0.1',
            'bundle_name':
            'content_escaping_test',
            'bundle_args': [],
            'parameter': [],
            'method_calls': [
                {
                    'method_name': 'package_install_version',
                    "component": "Install a package with correct version",
                    'args': ['apache2', '2.2.11'],
                    'class_context': 'any'
                },
                {
                    'method_name':
                    'file_replace_lines',
                    "component":
                    "Edit conf file",
                    'args': [
                        '/etc/httpd/conf/httpd.conf',
                        'ErrorLog \"/var/log/httpd/error_log\"',
                        'ErrorLog "/projet/logs/httpd/error_log"'
                    ],
                    'class_context':
                    'redhat'
                },
            ]
        }
        self.technique_metadata_test_content = os.path.realpath(
            'technique_metadata_test_content.cf')
        all_tags = ncf.tags["generic_method"]
        self.methods_expected_tags = [
            tag for tag in all_tags
            if not tag in ncf.optionnal_tags["generic_method"]
        ]

        with open(self.technique_metadata_test_content) as fd:
            self.technique_test_expected_content = fd.read().split("\n")
Exemplo n.º 6
0
 def test_parse_technique_data(self):
   """Parsing should return a dict with the data from the test technique"""
   metadata = ncf.parse_technique_metadata(self.technique_content)
   self.assertEqual(metadata['name'], "Bla Technique for evaluation of parsingness")
   self.assertEqual(metadata['description'], "This meta-Technique is a sample only, allowing for testing.")
   self.assertEqual(metadata['version'], "0.1")
   self.assertEqual(metadata['bundle_name'], "bla")
   self.assertEqual(metadata['bundle_args'], [])
Exemplo n.º 7
0
 def setUp(self):
   self.test_technique_file = os.path.realpath('test_technique.cf')
   self.test_generic_method_file = 'test_generic_method.cf'
   self.technique_content = open(self.test_technique_file).read()
   self.generic_method_content = open(self.test_generic_method_file).read()
   
   self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)
   method_calls = ncf.parse_technique_methods(self.test_technique_file)
   self.technique_metadata['method_calls'] = method_calls
Exemplo n.º 8
0
  def setUp(self):
    self.maxDiff = None
    
    self.test_technique_file = os.path.realpath('test_technique.cf')
    with open(self.test_technique_file) as fd:
      self.technique_content = fd.read()
    self.all_methods = ncf.get_all_generic_methods_metadata()["data"]["generic_methods"]  
    self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)['result']
    method_calls = ncf.parse_technique_methods(self.test_technique_file, self.all_methods)
    self.technique_metadata['method_calls'] = method_calls

    self.test_reporting = os.path.realpath('test_technique_reporting.cf')
    with open(self.test_reporting) as fd:
      self.reporting_content = fd.read()
    self.reporting_metadata = ncf.parse_technique_metadata(self.reporting_content)['result']
    reporting_method_calls = ncf.parse_technique_methods(self.test_reporting, self.all_methods)
    self.reporting_metadata['method_calls'] = reporting_method_calls

    self.test_reporting_with_var = os.path.realpath('test_technique_with_variable.cf')
    with open(self.test_reporting_with_var) as fd:
      self.reporting_with_var_content = fd.read()
    self.reporting_with_var_metadata = ncf.parse_technique_metadata(self.reporting_with_var_content)['result']
    reporting_with_var_method_calls = ncf.parse_technique_methods(self.test_reporting_with_var, self.all_methods)
    self.reporting_with_var_metadata['method_calls'] = reporting_with_var_method_calls


    self.test_any_technique = os.path.realpath('test_technique_any.cf')
    with open(self.test_any_technique) as fd:
      self.any_technique_content = fd.read()
    self.any_technique_metadata = ncf.parse_technique_metadata(self.any_technique_content)['result']
    any_technique_method_calls = ncf.parse_technique_methods(self.test_any_technique, self.all_methods)
    self.any_technique_metadata['method_calls'] = any_technique_method_calls

    self.rudder_reporting_file = os.path.realpath('test_technique_rudder_reporting.cf')
    with open(self.rudder_reporting_file) as fd:
      self.rudder_reporting_content = fd.read()

    # Testing Techniques with quote
    self.test_technique_with_quote_file = os.path.realpath('test_technique_with_quote.cf')
    with open(self.test_technique_with_quote_file) as fd:
      self.technique_with_quote_content = fd.read()
    self.technique_with_quote_metadata = ncf.parse_technique_metadata(self.technique_with_quote_content)['result']
    method_with_quote_calls = ncf.parse_technique_methods(self.test_technique_with_quote_file, self.all_methods)
    self.technique_with_quote_metadata['method_calls'] = method_with_quote_calls
Exemplo n.º 9
0
  def setUp(self):
    self.maxDiff = None
    
    self.test_technique_file = os.path.realpath('test_technique.cf')
    with open(self.test_technique_file) as fd:
      self.technique_content = fd.read()
    self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)['result']
    method_calls = ncf.parse_technique_methods(self.test_technique_file)
    self.technique_metadata['method_calls'] = method_calls

    self.test_reporting = os.path.realpath('test_technique_reporting.cf')
    with open(self.test_reporting) as fd:
      self.reporting_content = fd.read()
    self.reporting_metadata = ncf.parse_technique_metadata(self.reporting_content)['result']
    reporting_method_calls = ncf.parse_technique_methods(self.test_reporting)
    self.reporting_metadata['method_calls'] = reporting_method_calls

    self.test_reporting_with_var = os.path.realpath('test_technique_with_variable.cf')
    with open(self.test_reporting_with_var) as fd:
      self.reporting_with_var_content = fd.read()
    self.reporting_with_var_metadata = ncf.parse_technique_metadata(self.reporting_with_var_content)['result']
    reporting_with_var_method_calls = ncf.parse_technique_methods(self.test_reporting_with_var)
    self.reporting_with_var_metadata['method_calls'] = reporting_with_var_method_calls


    self.test_any_technique = os.path.realpath('test_technique_any.cf')
    with open(self.test_any_technique) as fd:
      self.any_technique_content = fd.read()
    self.any_technique_metadata = ncf.parse_technique_metadata(self.any_technique_content)['result']
    any_technique_method_calls = ncf.parse_technique_methods(self.test_any_technique)
    self.any_technique_metadata['method_calls'] = any_technique_method_calls

    self.rudder_reporting_file = os.path.realpath('test_technique_rudder_reporting.cf')
    with open(self.rudder_reporting_file) as fd:
      self.rudder_reporting_content = fd.read()

    # Testing Techniques with quote
    self.test_technique_with_quote_file = os.path.realpath('test_technique_with_quote.cf')
    self.technique_with_quote_content = open(self.test_technique_with_quote_file).read()
    self.technique_with_quote_metadata = ncf.parse_technique_metadata(self.technique_with_quote_content)['result']
    method_with_quote_calls = ncf.parse_technique_methods(self.test_technique_with_quote_file)
    self.technique_with_quote_metadata['method_calls'] = method_with_quote_calls
Exemplo n.º 10
0
 def test_parse_technique_data(self):
     """Parsing should return a dict with the data from the test technique"""
     metadata = ncf.parse_technique_metadata(self.technique_content)
     self.assertEqual(metadata['name'],
                      "Bla Technique for evaluation of parsingness")
     self.assertEqual(
         metadata['description'],
         "This meta-Technique is a sample only, allowing for testing.")
     self.assertEqual(metadata['version'], "0.1")
     self.assertEqual(metadata['bundle_name'], "bla")
     self.assertEqual(metadata['bundle_args'], [])
Exemplo n.º 11
0
  def setUp(self):
    self.test_expected_reports_csv_file = os.path.realpath('test_expected_reports.csv')
    self.test_expected_reports_csv_content = open(self.test_expected_reports_csv_file).read()
    
    self.test_technique_file = os.path.realpath('test_technique.cf')
    self.technique_content = open(self.test_technique_file).read()
    self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)
    method_calls = ncf.parse_technique_methods(self.test_technique_file)
    self.technique_metadata['method_calls'] = method_calls

    self.test_metadata_xml_file = os.path.realpath('test_metadata.xml')
    self.test_metadata_xml_content = open(self.test_metadata_xml_file).read()
Exemplo n.º 12
0
    def setUp(self):
        self.test_expected_reports_csv_file = os.path.realpath(
            'test_expected_reports.csv')
        self.test_expected_reports_csv_content = open(
            self.test_expected_reports_csv_file).read()

        self.test_technique_file = os.path.realpath('test_technique.cf')
        self.technique_content = open(self.test_technique_file).read()
        self.technique_metadata = ncf.parse_technique_metadata(
            self.technique_content)
        method_calls = ncf.parse_technique_methods(self.test_technique_file)
        self.technique_metadata['method_calls'] = method_calls

        self.test_metadata_xml_file = os.path.realpath('test_metadata.xml')
        self.test_metadata_xml_content = open(
            self.test_metadata_xml_file).read()
Exemplo n.º 13
0
  def setUp(self):
    self.test_technique_file = os.path.realpath('test_technique.cf')
    self.test_generic_method_file = 'test_generic_method.cf'
    self.technique_content = open(self.test_technique_file).read()
    self.generic_method_content = open(self.test_generic_method_file).read()
    
    self.technique_metadata = ncf.parse_technique_metadata(self.technique_content)
    method_calls = ncf.parse_technique_methods(self.test_technique_file)
    self.technique_metadata['method_calls'] = method_calls

    self.technique_metadata_test = { 'name': 'ncf technique method argument escape test', 'description': "This is a bundle to test ncf's Python lib", 'version': '0.1', 'bundle_name': 'content_escaping_test', 'bundle_args': [],
        'method_calls': [
            { 'method_name': 'package_install_version', 'args': ['apache2', '2.2.11'], 'class_context': 'any' },
            { 'method_name': 'file_replace_lines', 'args': ['/etc/httpd/conf/httpd.conf', 'ErrorLog \"/var/log/httpd/error_log\"', 'ErrorLog "/projet/logs/httpd/error_log"'],  'class_context': 'redhat' },
          ]
        }
    self.technique_metadata_test_content = os.path.realpath('technique_metadata_test_content.cf')
    self.technique_test_expected_content = open(self.technique_metadata_test_content).read()
Exemplo n.º 14
0
    def setUp(self):
        self.technique_file = os.path.realpath(
            'technique_metadata_test_content.cf')
        with open(self.technique_file) as fd:
            self.technique_content = fd.read()

        self.all_methods = ncf.get_all_generic_methods_metadata(
        )["data"]["generic_methods"]

        # For test, for now add dsc_support to all method
        for method in self.all_methods:
            self.all_methods[method]["agent_support"] = ["dsc"]

        self.technique_metadata = ncf.parse_technique_metadata(
            self.technique_content)['result']
        method_calls = ncf.parse_technique_methods(self.technique_file)
        self.technique_metadata['method_calls'] = method_calls

        self.dsc_technique_file = os.path.realpath('test_technique.ps1')
        with open(self.dsc_technique_file) as fd:
            self.dsc_content = fd.read()
Exemplo n.º 15
0
 def test_parse_technique(self):
   """Parsing should return a dict with all defined technique tags"""
   metadata = ncf.parse_technique_metadata(self.technique_content)
   self.assertEqual(sorted(metadata.keys()), sorted(ncf.tags["technique"]+ncf.tags["common"]))
Exemplo n.º 16
0
    def setUp(self):
        self.maxDiff = None
        self.test_expected_reports_csv_file = os.path.realpath(
            'test_expected_reports.csv')
        with open(self.test_expected_reports_csv_file) as fd:
            self.test_expected_reports_csv_content = fd.read()

        self.test_technique_file = os.path.realpath('test_technique.cf')
        with open(self.test_technique_file) as fd:
            self.technique_content = fd.read()
        self.technique_metadata = ncf.parse_technique_metadata(
            self.technique_content)
        method_calls = ncf.parse_technique_methods(self.test_technique_file)
        self.technique_metadata['method_calls'] = method_calls

        self.test_reporting = os.path.realpath('test_technique_reporting.cf')
        with open(self.test_reporting) as fd:
            self.reporting_content = fd.read()
        self.reporting_metadata = ncf.parse_technique_metadata(
            self.reporting_content)
        reporting_method_calls = ncf.parse_technique_methods(
            self.test_reporting)
        self.reporting_metadata['method_calls'] = reporting_method_calls

        self.test_reporting_with_var = os.path.realpath(
            'test_technique_with_variable.cf')
        with open(self.test_reporting_with_var) as fd:
            self.reporting_with_var_content = fd.read()
        self.reporting_with_var_metadata = ncf.parse_technique_metadata(
            self.reporting_with_var_content)
        reporting_with_var_method_calls = ncf.parse_technique_methods(
            self.test_reporting_with_var)
        self.reporting_with_var_metadata[
            'method_calls'] = reporting_with_var_method_calls

        self.test_any_technique = os.path.realpath('test_technique_any.cf')
        with open(self.test_any_technique) as fd:
            self.any_technique_content = fd.read()
        self.any_technique_metadata = ncf.parse_technique_metadata(
            self.any_technique_content)
        any_technique_method_calls = ncf.parse_technique_methods(
            self.test_any_technique)
        self.any_technique_metadata[
            'method_calls'] = any_technique_method_calls

        self.test_metadata_xml_file = os.path.realpath('test_metadata.xml')
        with open(self.test_metadata_xml_file) as fd:
            self.test_metadata_xml_content = fd.read()

        # Testing Techniques with quote
        self.test_technique_with_quote_file = os.path.realpath(
            'test_technique_with_quote.cf')
        self.technique_with_quote_content = open(
            self.test_technique_with_quote_file).read()
        self.technique_with_quote_metadata = ncf.parse_technique_metadata(
            self.technique_with_quote_content)
        method_with_quote_calls = ncf.parse_technique_methods(
            self.test_technique_with_quote_file)
        self.technique_with_quote_metadata[
            'method_calls'] = method_with_quote_calls

        self.test_expected_reports_with_quote_csv_file = os.path.realpath(
            'test_expected_reports_with_quote.csv')
        self.test_expected_reports_with_quote_csv_content = open(
            self.test_expected_reports_with_quote_csv_file).read()

        self.test_metadata_with_quote_xml_file = os.path.realpath(
            'test_metadata_with_quote.xml')
        self.test_metadata_with_quote_xml_content = open(
            self.test_metadata_with_quote_xml_file).read()
Exemplo n.º 17
0
 def test_parse_technique(self):
     """Parsing should return a dict with all defined technique tags"""
     metadata = ncf.parse_technique_metadata(
         self.technique_content)['result']
     self.assertEqual(sorted(metadata.keys()),
                      sorted(ncf.tags["technique"]))