From 2ca7cc3f11e4084e75255ecf74ac420884858b5d Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sun, 13 Mar 2022 20:20:14 +0000 Subject: [PATCH] Check for fields that are of the wrong type. Fix bug in ip_interface() validator thanks to this unittest --- ...ace-field.yaml => error-schema-field1.yaml} | 0 unittest/error-schema-field2.yaml | 18 ++++++++++++++++++ validator/__init__.py | 2 ++ 3 files changed, 20 insertions(+) rename unittest/{error-interface-field.yaml => error-schema-field1.yaml} (100%) create mode 100644 unittest/error-schema-field2.yaml diff --git a/unittest/error-interface-field.yaml b/unittest/error-schema-field1.yaml similarity index 100% rename from unittest/error-interface-field.yaml rename to unittest/error-schema-field1.yaml diff --git a/unittest/error-schema-field2.yaml b/unittest/error-schema-field2.yaml new file mode 100644 index 0000000..13fb41d --- /dev/null +++ b/unittest/error-schema-field2.yaml @@ -0,0 +1,18 @@ +test: + description: "A bunch of schema fields with the wrong type" + errors: + expected: + - "yamale: .* is not a " + count: 9 +--- +interfaces: + GigabitEthernet1/0/0: + description: 1234 + lcp: True + mac: "0001.0203.0405" + addresses: [ 1234, "hello world", 192.0.2.1, 2001:db8::1 ] + sub-interfaces: + 100: + description: [ "a", "list" ] + encapsulation: + dot1q: "hello world" diff --git a/validator/__init__.py b/validator/__init__.py index 4d741b6..e342764 100644 --- a/validator/__init__.py +++ b/validator/__init__.py @@ -33,6 +33,8 @@ class IPInterfaceWithPrefixLength(Validator): network = ipaddress.ip_interface(value) except: return False + if not isinstance(value, str): + return False if not '/' in value: return False e = value.split('/')