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()
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()
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()
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()
def test_parse_technique_methods_unescape_double_quotes(self): test_parse_technique_methods_unescape_double_quotes_calls = ncf.parse_technique_methods(self.technique_metadata_test_content, self.all_methods) expected_result = [ { 'method_name': u'package_install_version', 'class_context': u'any', 'component': u'Install a package with correct version', 'args': [u'apache2', u'2.2.11'] }, { 'method_name': u'file_replace_lines', 'class_context': u'redhat', 'component': u'Edit conf file', 'args': [u'/etc/httpd/conf/httpd.conf', u'ErrorLog "/var/log/httpd/error_log"', u'ErrorLog "/projet/logs/httpd/error_log"'] } ] self.assertEqual(expected_result, test_parse_technique_methods_unescape_double_quotes_calls)
def test_parse_technique_generic_method_calls_strings(self): """Parsing a technique should return a list of it's generic method calls even if they are string literals""" bundle_calls = ncf.parse_technique_methods(self.test_technique_file, self.all_methods) expected = [{ 'method_name': u'package_install_version', 'component': u'ph1', 'args': [u'${bla.apache_package_name}', u'2.2.11'], 'class_context': u'any' }, { 'method_name': u'service_start', 'component': u'ph2', 'args': [u'${bla.apache_package_name}'], 'class_context': u'cfengine' }, { 'method_name': u'package_install', 'component': u'ph3', 'args': [u'openssh-server'], 'class_context': u'cfengine' }, { 'method_name': u'command_execution', 'component': u'ph4', 'args': ['/bin/echo "test"'], 'class_context': 'cfengine' }] self.assertEqual(bundle_calls, expected)
def test_parse_technique_generic_method_calls(self): """Parsing a technique should return a list of it's generic method calls""" bundle_calls = ncf.parse_technique_methods(self.test_technique_file) expected = [ { 'method_name': u'package_install_version', 'promiser': u'ph1', 'args': [u'${bla.apache_package_name}', u'2.2.11'], 'class_context': u'any' }, { 'method_name': u'service_start', 'promiser': u'ph2', 'args': [u'${bla.apache_package_name}'], 'class_context': u'cfengine' }, { 'method_name': u'package_install', 'promiser': u'ph3', 'args': [u'openssh-server'], 'class_context': u'cfengine' }, { 'method_name': u'_logger', 'promiser': u'ph4', 'args': [u'NA', u'NA'], 'class_context': u'!cfengine' }, ] self.assertEqual(bundle_calls, expected)
def test_parse_technique_methods_unescape_double_quotes(self): test_parse_technique_methods_unescape_double_quotes_calls = ncf.parse_technique_methods(self.technique_metadata_test_content) expected_result = [ { 'method_name': 'package_install_version', 'class_context': 'any', 'args': ['apache2', '2.2.11'] }, { 'method_name': 'file_replace_lines', 'class_context': 'redhat', 'args': ['/etc/httpd/conf/httpd.conf', 'ErrorLog "/var/log/httpd/error_log"', 'ErrorLog "/projet/logs/httpd/error_log"'] } ] self.assertEquals(expected_result, test_parse_technique_methods_unescape_double_quotes_calls)
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")
def test_parse_technique_generic_method_calls_strings(self): """Parsing a technique should return a list of it's generic method calls even if they are string literals""" bundle_calls = ncf.parse_technique_methods(self.test_technique_file) expected = [ { 'method_name': 'package_install_version', 'args': ['${bla.apache_package_name}', '2.2.11'], 'class_context': 'any' }, { 'method_name': 'service_start', 'args': ['${bla.apache_package_name}'], 'class_context': 'cfengine' }, { 'method_name': 'package_install', 'args': ['openssh-server'], 'class_context': 'cfengine' }, ] self.assertEqual(bundle_calls, expected)
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
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
def test_parse_technique_generic_method_calls_strings(self): """Parsing a technique should return a list of it's generic method calls even if they are string literals""" bundle_calls = ncf.parse_technique_methods(self.test_technique_file, self.all_methods) expected = [ { 'method_name': u'package_install_version', 'component': u'ph1', 'args': [u'${bla.apache_package_name}', u'2.2.11'], 'class_context': u'any' } , { 'method_name': u'service_start', 'component': u'ph2', 'args': [u'${bla.apache_package_name}'], 'class_context': u'cfengine' } , { 'method_name': u'package_install', 'component': u'ph3', 'args': [u'openssh-server'], 'class_context': u'cfengine' } , { 'method_name': u'command_execution', 'component': u'ph4', 'args': ['/bin/echo "test"'], 'class_context': 'cfengine'} ] self.assertEqual(bundle_calls, expected)
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
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()
def test_parse_technique_generic_method_calls_strings(self): """Parsing a technique should return a list of it's generic method calls even if they are string literals""" bundle_calls = ncf.parse_technique_methods(self.test_technique_file) expected = [ { "method_name": "package_install_version", "args": ["${bla.apache_package_name}", "2.2.11"], "class_context": "any", }, {"method_name": "service_start", "args": ["${bla.apache_package_name}"], "class_context": "cfengine"}, {"method_name": "package_install", "args": ["openssh-server"], "class_context": "cfengine"}, {"method_name": "_logger", "args": ["NA", "NA"], "class_context": "!cfengine"}, ] self.assertEqual(bundle_calls, expected)
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()
def test_parse_technique_methods_unescape_double_quotes(self): test_parse_technique_methods_unescape_double_quotes_calls = ncf.parse_technique_methods( self.technique_metadata_test_content ) expected_result = [ {"method_name": "package_install_version", "class_context": "any", "args": ["apache2", "2.2.11"]}, { "method_name": "file_replace_lines", "class_context": "redhat", "args": [ "/etc/httpd/conf/httpd.conf", 'ErrorLog "/var/log/httpd/error_log"', 'ErrorLog "/projet/logs/httpd/error_log"', ], }, ] self.assertEquals(expected_result, test_parse_technique_methods_unescape_double_quotes_calls)
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()
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()
def test_parse_technique_methods_unescape_double_quotes(self): test_parse_technique_methods_unescape_double_quotes_calls = ncf.parse_technique_methods( self.technique_metadata_test_content, self.all_methods) expected_result = [{ 'method_name': u'package_install_version', 'class_context': u'any', 'component': u'Install a package with correct version', 'args': [u'apache2', u'2.2.11'] }, { 'method_name': u'file_replace_lines', 'class_context': u'redhat', 'component': u'Edit conf file', 'args': [ u'/etc/httpd/conf/httpd.conf', u'ErrorLog "/var/log/httpd/error_log"', u'ErrorLog "/projet/logs/httpd/error_log"' ] }] self.assertEqual( expected_result, test_parse_technique_methods_unescape_double_quotes_calls)
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()