|
7 | 7 | from unittest.mock import patch |
8 | 8 |
|
9 | 9 | from _libyang import lib |
10 | | -from libyang import Context, DContainer, DDiff, DRpc, LibyangError |
| 10 | +from libyang import Context, DContainer, DDiff, DNode, DRpc, LibyangError |
11 | 11 |
|
12 | 12 |
|
13 | 13 | YANG_DIR = os.path.join(os.path.dirname(__file__), "yang") |
@@ -565,3 +565,34 @@ def test_data_diff(self): |
565 | 565 |
|
566 | 566 | dnode1.free() |
567 | 567 | dnode2.free() |
| 568 | + |
| 569 | + def test_find_one(self): |
| 570 | + dnode = self.ctx.parse_data_mem(self.JSON_CONFIG, "json", config=True) |
| 571 | + self.assertIsInstance(dnode, DContainer) |
| 572 | + try: |
| 573 | + hostname = dnode.find_one("hostname") |
| 574 | + self.assertIsInstance(hostname, DNode) |
| 575 | + self.assertEqual(hostname.name(), "hostname") |
| 576 | + finally: |
| 577 | + dnode.free() |
| 578 | + |
| 579 | + def test_find_all(self): |
| 580 | + dnode = self.ctx.parse_data_mem(self.JSON_CONFIG, "json", config=True) |
| 581 | + self.assertIsInstance(dnode, DContainer) |
| 582 | + try: |
| 583 | + urls = dnode.find_all("url") |
| 584 | + urls = list(urls) |
| 585 | + self.assertEqual(len(urls), 2) |
| 586 | + expected_url = { |
| 587 | + "url": [ |
| 588 | + { |
| 589 | + "proto": "https", |
| 590 | + "host": "github.com", |
| 591 | + "path": "/CESNET/libyang-python", |
| 592 | + "enabled": False, |
| 593 | + } |
| 594 | + ] |
| 595 | + } |
| 596 | + self.assertEqual(urls[0].print_dict(absolute=False), expected_url) |
| 597 | + finally: |
| 598 | + dnode.free() |
0 commit comments