Server IP : 15.235.198.142 / Your IP : 216.73.216.18 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /snap/certbot/4557/lib/python3.12/site-packages/test/ |
Upload File : |
from __future__ import print_function import os import sys import unittest __mydir = os.path.dirname(os.path.abspath(__file__)) if not os.path.isdir(__mydir): __mydir = os.getcwd() sys.path.insert(0, __mydir + "/..") import augeas MYROOT = __mydir + "/testroot" def recurmatch(aug, path): if path: if path != "/": val = aug.get(path) if val: yield (path, val) m = [] if path != "/": aug.match(path) for i in m: for x in recurmatch(aug, i): yield x else: for i in aug.match(path + "/*"): for x in recurmatch(aug, i): yield x class TestAugeas(unittest.TestCase): def test01aGetNone(self): "test aug_get with non-existing path" a = augeas.Augeas(root=MYROOT) self.assertIsNone(a.get("/wrong/path")) del a def test01bGetValue(self): "test aug_get with existing path" a = augeas.Augeas(root=MYROOT) self.assertEqual(a.get("/files/etc/hosts/1/ipaddr"), "127.0.0.1") del a def test01cGetException(self): "test aug_get with incorrect path" a = augeas.Augeas(root=MYROOT) self.assertRaises(ValueError, a.get, "/files//[1]/") del a def test02Match(self): "test aug_match" a = augeas.Augeas(root=MYROOT) matches = a.match("/files/etc/hosts/*") self.assertTrue(matches) for i in matches: for attr in a.match(i+"/*"): self.assertIsNotNone(a.get(attr)) del a def test03PrintAll(self): "print all tree elements" output = open("test03PrintAll.out", "w") a = augeas.Augeas(root=MYROOT) path = "/" matches = recurmatch(a, path) for (p, attr) in matches: print(p, attr, file=output) self.assertIsNotNone(p) self.assertIsNotNone(attr) output.close() def test04Grub(self): "test default setting of grub entry" a = augeas.Augeas(root=MYROOT) num = 0 for entry in a.match("/files/etc/grub.conf/title"): num += 1 self.assertEqual(num, 2) default = int(a.get("/files/etc/grub.conf/default")) self.assertEqual(default, 0) a.set("/files/etc/grub.conf/default", str(1)) a.save() default = int(a.get("/files/etc/grub.conf/default")) self.assertEqual(default, 1) a.set("/files/etc/grub.conf/default", str(0)) a.save() def test05Defvar(self): "test defvar" a = augeas.Augeas(root=MYROOT) a.defvar("hosts", "/files/etc/hosts") matches = a.match("$hosts/*") self.assertTrue(matches) for i in matches: for attr in a.match(i+"/*"): self.assertIsNotNone(a.get(attr)) del a def test06Defnode(self): "test defnode" a = augeas.Augeas(root=MYROOT) a.defnode("bighost", "/files/etc/hosts/50/ipaddr", "192.168.1.1") value = a.get("$bighost") self.assertEqual(value, "192.168.1.1") del a def test07Setm(self): "test setm" a = augeas.Augeas(root=MYROOT) matches = a.match("/files/etc/hosts/*/ipaddr") self.assertTrue(matches) a.setm("/files/etc/hosts", "*/ipaddr", "192.168.1.1") for i in matches: self.assertEqual(a.get(i), "192.168.1.1") del a def test08Span(self): "test span" data = [{"expr": "/files/etc/hosts/1/ipaddr", "f": "hosts", "ls": 0, "le": 0, "vs": 104, "ve": 113, "ss": 104, "se": 113}, {"expr": "/files/etc/hosts/1", "f": "hosts", "ls": 0, "le": 0, "vs": 0, "ve": 0, "ss": 104, "se": 155}, {"expr": "/files/etc/hosts/*[last()]", "f": "hosts", "ls": 0, "le": 0, "vs": 0, "ve": 0, "ss": 155, "se": 202}, {"expr": "/files/etc/hosts/#comment[2]", "f": "hosts", "ls": 0, "le": 0, "vs": 58, "ve": 103, "ss": 56, "se": 104}, {"expr": "/files/etc/hosts", "f": "hosts", "ls": 0, "le": 0, "vs": 0, "ve": 0, "ss": 0, "se": 202}, ] a = augeas.Augeas(root=MYROOT, flags=augeas.Augeas.ENABLE_SPAN) for d in data: r = a.span(d["expr"]) self.assertEqual(os.path.basename(r[0]), d["f"]) self.assertEqual(r[1], d["ls"]) self.assertEqual(r[2], d["le"]) self.assertEqual(r[3], d["vs"]) self.assertEqual(r[4], d["ve"]) self.assertEqual(r[5], d["ss"]) self.assertEqual(r[6], d["se"]) self.assertRaises(ValueError, a.span, "/files") self.assertRaises(ValueError, a.span, "/random") del a def test09TextStore(self): hosts = "192.168.0.1 rtr.example.com router\n" a = augeas.Augeas(root=MYROOT) a.set("/raw/hosts", hosts) a.text_store("Hosts.lns", "/raw/hosts", "/t1") # Test bad lens name self.assertRaises(ValueError, a.text_store, "Notthere.lns", "/raw/hosts", "/t2") def testSetNone(self): a = augeas.Augeas(root=MYROOT) a.set("/raw/hosts", None) def test10TextRetrieve(self): hosts = "192.168.0.1 rtr.example.com router\n" a = augeas.Augeas(root=MYROOT) a.set("/raw/hosts", hosts) a.text_store("Hosts.lns", "/raw/hosts", "/t1") a.text_retrieve("Hosts.lns", "/raw/hosts", "/t1", "/out/hosts") hosts_out = a.get("/out/hosts") self.assertEqual(hosts, hosts_out) # Test bad lens name self.assertRaises(ValueError, a.text_store, "Notthere.lns", "/raw/hosts", "/t2") def test11Rename(self): a = augeas.Augeas(root=MYROOT) a.set("/a/b/c", "value") r = a.rename("/a/b/c", "d") self.assertEqual(r, 1) a.set("/a/e/d", "value2") r = a.rename("/a//d", "x") self.assertEqual(r, 2) self.assertRaises(ValueError, a.rename, "/a/e/x", "a/b") def test12Transform(self): a = augeas.Augeas(root=MYROOT) a.transform("Foo", "/tmp/bar") lens = a.get("/augeas/load/Foo/lens") self.assertEqual(lens, "Foo.lns") incl = a.get("/augeas/load/Foo/incl") self.assertEqual(incl, "/tmp/bar") a.transform("Foo", "/tmp/baz", True) excl = a.get("/augeas/load/Foo/excl") self.assertEqual(excl, "/tmp/baz") def test13AddTransform(self): a = augeas.Augeas(root=MYROOT) a.add_transform("Foo", "/tmp/bar") incl = a.get("/augeas/load/Foo/incl") self.assertEqual(incl, "/tmp/bar") a.add_transform("Foo", "/tmp/bar", excl="/tmp/baz") excl = a.get("/augeas/load/Foo/excl") self.assertEqual(excl, "/tmp/baz") def test14aLabelOk(self): """test aug_label with valid input""" a = augeas.Augeas(root=MYROOT) lbl = a.label("/augeas/version") self.assertEqual(lbl, "version") def test14bLabelException(self): """test aug_label with invalid input""" a = augeas.Augeas(root=MYROOT) self.assertRaises(ValueError, a.label, "/augeas/version/[1]/") def test15Copy(self): a = augeas.Augeas(root=MYROOT) orig_path = '/tmp/src/copy_test/a' copy_path = '/tmp/dst/copy_test/a' orig_value = 'test value' a.set(orig_path, orig_value) matches = a.match(orig_path) self.assertTrue(matches) a.copy(orig_path, copy_path) matches = a.match(copy_path) self.assertTrue(matches) self.assertEqual(a.get(copy_path), a.get(orig_path)) def testClose(self): a = augeas.Augeas(root=MYROOT) a.close() def getsuite(): suite = unittest.TestSuite() suite = unittest.makeSuite(TestAugeas, 'test') return suite if __name__ == "__main__": __testRunner = unittest.TextTestRunner(verbosity=2) __result = __testRunner.run(getsuite()) sys.exit(not __result.wasSuccessful()) __author__ = "Harald Hoyer <harald@redhat.com>"