def setUp(self, *args, **kwargs): super().setUp(*args, **kwargs) if not NfsExportsTests.results: parser = config_file.NfsExportsParser() host_data = self.SetKnowledgeBase() with io.open(self.TestDataPath("exports"), "rb") as export_fd: parsed = list(parser.ParseFile(None, None, export_fd)) host_data["NfsExportsFile"] = self.SetArtifactData(parsed=parsed) NfsExportsTests.results = self.RunChecks(host_data)
def testParseNfsExportFile(self): test_data = br""" /path/to/foo -rw,sync host1(ro) host2 /path/to/bar *.example.org(all_squash,ro) \ 192.168.1.0/24 (rw) # Mistake here - space makes this default. """ exports = io.BytesIO(test_data) parser = config_file.NfsExportsParser() results = list(parser.ParseFile(None, None, exports)) self.assertEqual("/path/to/foo", results[0].share) self.assertCountEqual(["rw", "sync"], results[0].defaults) self.assertEqual("host1", results[0].clients[0].host) self.assertCountEqual(["ro"], results[0].clients[0].options) self.assertEqual("host2", results[0].clients[1].host) self.assertCountEqual([], results[0].clients[1].options) self.assertEqual("/path/to/bar", results[1].share) self.assertCountEqual(["rw"], results[1].defaults) self.assertEqual("*.example.org", results[1].clients[0].host) self.assertCountEqual(["all_squash", "ro"], results[1].clients[0].options) self.assertEqual("192.168.1.0/24", results[1].clients[1].host) self.assertCountEqual([], results[1].clients[1].options)