add: initial evs support
This commit is contained in:
@@ -40,44 +40,6 @@ ATTRIBUTE RFC-SPACE-TAGGED-COMBOIP 114 comboip has_tag
|
||||
ATTRIBUTE RFC-SPACE-TAGGED-IFID 115 ifid has_tag
|
||||
ATTRIBUTE RFC-SPACE-TAGGED-ETHER 116 ether has_tag
|
||||
|
||||
# TODO How are EVS meant to be specified?
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-STRING 19.21.1234.1 string
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-OCTETS 19.21.1234.2 octets
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-DATE 19.21.1234.3 date
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-ABINARY 19.21.1234.4 abinary
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-BYTE 19.21.1234.5 byte
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-SHORT 19.21.1234.6 short
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-INTEGER 19.21.1234.7 integer
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-SIGNED 19.21.1234.8 signed
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-INTEGER64 19.21.1234.9 integer64
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-IPADDR 19.21.1234.10 ipaddr
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-IPV4PREFIX 19.21.1234.11 ipv4prefix
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-IPV6ADDR 19.21.1234.12 ipv6addr
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-IPV6PREFIX 19.21.1234.13 ipv6prefix
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-COMBOIP 19.21.1234.14 comboip
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-IFID 19.21.1234.15 ifid
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-ETHER 19.21.1234.16 ether
|
||||
# ATTRIBUTE VENDOR10-EVS-TYPE-TLV 19.21.1234.18 tlv
|
||||
#
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-STRING 20.21.1234.1 string
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-OCTETS 20.21.1234.2 octets
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-DATE 20.21.1234.3 date
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-ABINARY 20.21.1234.4 abinary
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-BYTE 20.21.1234.5 byte
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-SHORT 20.21.1234.6 short
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-INTEGER 20.21.1234.7 integer
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-SIGNED 20.21.1234.8 signed
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-INTEGER64 20.21.1234.9 integer64
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPADDR 20.21.1234.10 ipaddr
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPV4PREFIX 20.21.1234.11 ipv4prefix
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPV6ADDR 20.21.1234.12 ipv6addr
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPV6PREFIX 20.21.1234.13 ipv6prefix
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-COMBOIP 20.21.1234.14 comboip
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IFID 20.21.1234.15 ifid
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-ETHER 20.21.1234.16 ether
|
||||
# ATTRIBUTE VENDOR10-LONG-EVS-TYPE-TLV 20.21.1234.18 tlv
|
||||
|
||||
|
||||
VENDOR TEST10 1234 format=1,0
|
||||
|
||||
BEGIN-VENDOR TEST10
|
||||
@@ -118,6 +80,47 @@ ATTRIBUTE VENDOR10-TAGGED-ETHER 116 ether has_tag
|
||||
|
||||
END-VENDOR TEST10
|
||||
|
||||
BEGIN-VENDOR TEST10 format=RFC-SPACE-TYPE-EVS
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-STRING 19.21.1234.1 string
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-OCTETS 19.21.1234.2 octets
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-DATE 19.21.1234.3 date
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-ABINARY 19.21.1234.4 abinary
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-BYTE 19.21.1234.5 byte
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-SHORT 19.21.1234.6 short
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-INTEGER 19.21.1234.7 integer
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-SIGNED 19.21.1234.8 signed
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-INTEGER64 19.21.1234.9 integer64
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-IPADDR 19.21.1234.10 ipaddr
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-IPV4PREFIX 19.21.1234.11 ipv4prefix
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-IPV6ADDR 19.21.1234.12 ipv6addr
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-IPV6PREFIX 19.21.1234.13 ipv6prefix
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-COMBOIP 19.21.1234.14 comboip
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-IFID 19.21.1234.15 ifid
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-ETHER 19.21.1234.16 ether
|
||||
ATTRIBUTE VENDOR10-EVS-TYPE-TLV 19.21.1234.18 tlv
|
||||
END-VENDOR
|
||||
|
||||
BEGIN-VENDOR TEST10 format=RFC-SPACE-TYPE-EVS
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-STRING 20.21.1234.1 string
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-OCTETS 20.21.1234.2 octets
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-DATE 20.21.1234.3 date
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-ABINARY 20.21.1234.4 abinary
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-BYTE 20.21.1234.5 byte
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-SHORT 20.21.1234.6 short
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-INTEGER 20.21.1234.7 integer
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-SIGNED 20.21.1234.8 signed
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-INTEGER64 20.21.1234.9 integer64
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPADDR 20.21.1234.10 ipaddr
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPV4PREFIX 20.21.1234.11 ipv4prefix
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPV6ADDR 20.21.1234.12 ipv6addr
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IPV6PREFIX 20.21.1234.13 ipv6prefix
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-COMBOIP 20.21.1234.14 comboip
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-IFID 20.21.1234.15 ifid
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-ETHER 20.21.1234.16 ether
|
||||
ATTRIBUTE VENDOR10-LONG-EVS-TYPE-TLV 20.21.1234.18 tlv
|
||||
END-VENDOR
|
||||
|
||||
|
||||
VENDOR TEST11 1235 format=1,1
|
||||
|
||||
BEGIN-VENDOR TEST11
|
||||
|
||||
@@ -119,7 +119,8 @@ def test_valid_attribute_numbers(number):
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"invalid_number", ["1000", "ABCD", "-1", "inf", "INF", "-INF", "2e4", "2.5e3"],
|
||||
"invalid_number",
|
||||
["1000", "ABCD", "-1", "inf", "INF", "-INF", "2e4", "2.5e3"],
|
||||
)
|
||||
def test_invalid_attribute_numbers(invalid_number):
|
||||
dictionary = StringIO(f"ATTRIBUTE NAME {invalid_number} integer64")
|
||||
@@ -247,7 +248,6 @@ def test_value_number_out_of_limit(value_num, attr_type):
|
||||
"tlv",
|
||||
"extended",
|
||||
"long-extended",
|
||||
"evs",
|
||||
],
|
||||
)
|
||||
def test_all_datatypes_rfc_space(datatype):
|
||||
@@ -255,6 +255,11 @@ def test_all_datatypes_rfc_space(datatype):
|
||||
Dictionary("", dictionary)
|
||||
|
||||
|
||||
def test_evs_datatype():
|
||||
dictionary = StringIO("ATTRIBUTE TEST-ATTRIBUTE 1.10 evs\n")
|
||||
Dictionary("", dictionary)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"datatype",
|
||||
[
|
||||
@@ -299,7 +304,8 @@ def test_invalid_datatypes_in_vendor_space(datatype):
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"invalid_number", ["ABCD", "-1", "inf", "INF", "-INF", "0.1", "2e4", "2.5e3"],
|
||||
"invalid_number",
|
||||
["ABCD", "-1", "inf", "INF", "-INF", "0.1", "2e4", "2.5e3"],
|
||||
)
|
||||
def test_invalid_value_numbers(invalid_number):
|
||||
dictionary = StringIO(
|
||||
@@ -401,3 +407,16 @@ def test_get_nonexisting_attributes_from_dictionaries(attribute):
|
||||
dd = Dictionary("", dictionary)
|
||||
with pytest.raises(KeyError):
|
||||
_ = dd[attribute]
|
||||
|
||||
|
||||
def test_extended_evs():
|
||||
dictionary = StringIO(
|
||||
"ATTRIBUTE RFC-EXTENDED 10 extended\n"
|
||||
"ATTRIBUTE RFC-EXTENDED-EVS 10.20 evs\n"
|
||||
"VENDOR TEST-VENDOR 1234\n"
|
||||
"BEGIN-VENDOR TEST-VENDOR format=RFC-EXTENDED-EVS\n"
|
||||
"ATTRIBUTE VENDOR-ATTRIBUTE 10 integer\n"
|
||||
"END-VENDOR TEST-VENDOR"
|
||||
)
|
||||
dd = Dictionary("", dictionary)
|
||||
assert dd["VENDOR-ATTRIBUTE"].code == [10, 20, 10]
|
||||
|
||||
Reference in New Issue
Block a user