Skip to main content

Python Network device checker using Pytest and IP Fabric.

Project description

PyNetCheck

Python Network Checker

This project provides examples to extend the IP Fabric platform with custom device testing.

This project is still in development and more test cases and examples will be added at a later time.

Requirements

Installation

The project is available on PyPi and can be installed via pip:

pip install pynetcheck
cp sample.env .env  # TODO: Update .env with your IP Fabric URL and credentials

Finally edit the .env file to include your IP Fabric URL and credentials.

Running

To run tests with builtin cases, use the following command:

pynetcheck

To run using a directory that stores a list of configuration files:

pynetcheck --config-dir /path/to/dir

To run against your own test cases:

>pynetcheck --tb=line --testpaths tests    
========================================================================================== test session starts ==========================================================================================
platform win32 -- Python 3.9.9, pytest-7.4.2, pluggy-1.3.0
rootdir: C:\Code\_EXAMPLES\config_vulnerability
configfile: pyproject.toml
plugins: anyio-4.0.0, depends-1.0.1, html-reporter-0.2.9
collected 357 items                                                                                                                                                                                      

tests\test_ssh.py FFFFFFFFFFFFFFFFFFF.FFF.FFF......FFF.FFFF.FFFFFFFFFFFFFFFFFFFFFFFF....F..........FF.F.....F.......FFFFF.F..FFFFF.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFFFFFFFFFFFFFF.FFFFFFFFFFFF.FF [ 49%]
FF.FFFFFFFFFFFFFFF.FFFFFFF.FFFFFFFFFFFFF.FFFFFFFFFFFFFFF.FFFFFFFFFFFFFFFFFFFFFF..FFFF..FFFFFFFF.FFFFF.FFFF.FF.F...F.F.FFFFFFFFF.FFFFF..FF.....FF.FFFFFFFFFFF.FFF......F....FFFFFFFFFF              [100%]

Results

HTML

Results are stored in the pytest_html_report.html which can be viewed in any browser.

img.png

Exporting

The pytest-html-reporter also provides the ability to export via CSV or Excel formats, example: pytest.csv.

Table modified to show only the relevant information:

Suite Test Case Status Time (s) Error Message
tests/cve_2023_20198/ios_xe_test.py test_saved_config_consistency PASS 0.21
tests/cve_2023_20198/ios_xe_test.py test_https_server_vulnerable[L77R12-LEAF6] SKIP 0
tests/cve_2023_20198/ios_xe_test.py test_https_server_vulnerable[L77R11-LEAF5] FAIL 0 E AssertionError: Startup - HTTP secure-server Vulnerable
tests/cve_2023_20198/ios_xe_test.py test_https_server_vulnerable[L67CSR16] SKIP 0
tests/cve_2023_20198/ios_xe_test.py test_https_server_disabled[L77R12-LEAF6] PASS 0
tests/cve_2023_20198/ios_xe_test.py test_https_server_disabled[L77R11-LEAF5] FAIL 0 E AssertionError: Startup - HTTP secure-server Enabled
tests/cve_2023_20198/ios_xe_test.py test_https_server_disabled[L67CSR16] PASS 0
tests/cve_2023_20198/ios_xe_test.py test_http_server_vulnerable[L77R12-LEAF6] SKIP 0
tests/cve_2023_20198/ios_xe_test.py test_http_server_vulnerable[L77R11-LEAF5] SKIP 0
tests/cve_2023_20198/ios_xe_test.py test_http_server_vulnerable[L67CSR16] FAIL 0 E AssertionError: Running - HTTP server Vulnerable
tests/cve_2023_20198/ios_xe_test.py test_http_server_disabled[L77R12-LEAF6] PASS 0.13
tests/cve_2023_20198/ios_xe_test.py test_http_server_disabled[L77R11-LEAF5] PASS 0.15
tests/cve_2023_20198/ios_xe_test.py test_http_server_disabled[L67CSR16] FAIL 0.15 E AssertionError: Running - HTTP server Enabled

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynetcheck-0.2.1.tar.gz (5.2 kB view hashes)

Uploaded Source

Built Distribution

pynetcheck-0.2.1-py3-none-any.whl (6.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page