mirror of
https://github.com/checktheroads/hyperglass
synced 2024-05-11 05:55:08 +00:00
40 lines
901 B
Python
40 lines
901 B
Python
"""Test Juniper XML Parsing."""
|
|
|
|
# Standard Library
|
|
import sys
|
|
import json
|
|
from pathlib import Path
|
|
|
|
# Project
|
|
from hyperglass.log import log
|
|
|
|
# Local
|
|
from .juniper import parse_juniper
|
|
|
|
SAMPLE_FILES = (
|
|
Path(__file__).parent.parent / "models" / "parsing" / "juniper_route_direct.xml",
|
|
Path(__file__).parent.parent / "models" / "parsing" / "juniper_route_indirect.xml",
|
|
Path(__file__).parent.parent / "models" / "parsing" / "juniper_route_aspath.xml",
|
|
)
|
|
|
|
|
|
@log.catch
|
|
def run():
|
|
"""Run tests."""
|
|
samples = ()
|
|
if len(sys.argv) == 2:
|
|
samples += (sys.argv[1],)
|
|
else:
|
|
for sample_file in SAMPLE_FILES:
|
|
with sample_file.open("r") as file:
|
|
samples += (file.read(),)
|
|
|
|
for sample in samples:
|
|
parsed = parse_juniper([sample])
|
|
log.info(json.dumps(parsed, indent=2))
|
|
sys.exit(0)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run()
|