Compare commits

...

2 commits

Author SHA1 Message Date
f38a1036b7 update test cases
All checks were successful
check code / check-code (push) Successful in 34s
2024-02-29 19:45:24 +01:00
6e624a79a7 fix semicolon escaping 2024-02-29 19:37:27 +01:00
3 changed files with 11 additions and 21 deletions

View file

@ -1,5 +1,4 @@
import logging import logging
import re
from typing import Any, Literal from typing import Any, Literal
import dns.rdata import dns.rdata
@ -102,11 +101,11 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
@return: the modified record value @return: the modified record value
""" """
if escape: if escape:
value = re.sub(r"\\*;", "\\;", value) fixed = value.replace(";", "\\;")
else: else:
value = re.sub(r"\\*;", ";", value) fixed = value.replace("\\;", ";")
return value return fixed
def _get_nb_view(self, view: str | None | Literal[False]) -> dict[str, int | str]: def _get_nb_view(self, view: str | None | Literal[False]) -> dict[str, int | str]:
"""get the correct netbox view when requested """get the correct netbox view when requested

View file

@ -13,7 +13,7 @@ DEFAULT_CONFIG = {
def test_escape1(): def test_escape1():
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG) nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
rcd_value = r"v=TLSRPTv1\\; rua=mailto:tlsrpt@example.com" rcd_value = r"v=TLSRPTv1; rua=mailto:tlsrpt@example.com"
value = nbdns._fix_semicolon(rcd_value, escape=True) value = nbdns._fix_semicolon(rcd_value, escape=True)
assert value == r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com" assert value == r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com"
@ -21,10 +21,10 @@ def test_escape1():
def test_escape2(): def test_escape2():
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG) nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
rcd_value = r"v=TLSRPTv1; rua=mailto:tlsrpt@example.com" rcd_value = r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com"
value = nbdns._fix_semicolon(rcd_value, escape=True) value = nbdns._fix_semicolon(rcd_value, escape=True)
assert value == r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com" assert value == r"v=TLSRPTv1\\; rua=mailto:tlsrpt@example.com"
def test_escape3(): def test_escape3():
@ -32,7 +32,7 @@ def test_escape3():
rcd_value = r"t=y\;o=~\;" rcd_value = r"t=y\;o=~\;"
value = nbdns._fix_semicolon(rcd_value, escape=True) value = nbdns._fix_semicolon(rcd_value, escape=True)
assert value == r"t=y\;o=~\;" assert value == r"t=y\\;o=~\\;"
def test_escape4(): def test_escape4():
@ -56,7 +56,7 @@ def test_unescape2():
rcd_value = r"v=TLSRPTv1\\; rua=mailto:tlsrpt@example.com" rcd_value = r"v=TLSRPTv1\\; rua=mailto:tlsrpt@example.com"
value = nbdns._fix_semicolon(rcd_value, escape=False) value = nbdns._fix_semicolon(rcd_value, escape=False)
assert value == r"v=TLSRPTv1; rua=mailto:tlsrpt@example.com" assert value == r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com"
def test_unescape3(): def test_unescape3():
@ -64,7 +64,7 @@ def test_unescape3():
rcd_value = r"t=y\\;o=~\;" rcd_value = r"t=y\\;o=~\;"
value = nbdns._fix_semicolon(rcd_value, escape=False) value = nbdns._fix_semicolon(rcd_value, escape=False)
assert value == r"t=y;o=~;" assert value == r"t=y\;o=~;"
def test_unescape4(): def test_unescape4():

View file

@ -56,7 +56,7 @@ def test_txt2():
rcd_value = r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com" rcd_value = r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com"
value = nbdns._format_rdata(rcd_type, rcd_value) value = nbdns._format_rdata(rcd_type, rcd_value)
assert value == r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com" assert value == r"v=TLSRPTv1\\; rua=mailto:tlsrpt@example.com"
def test_txt3(): def test_txt3():
@ -77,7 +77,7 @@ def test_txt4():
rcd_value = r"t=y\;o=~\;" rcd_value = r"t=y\;o=~\;"
value = nbdns._format_rdata(rcd_type, rcd_value) value = nbdns._format_rdata(rcd_type, rcd_value)
assert value == r"t=y\;o=~\;" assert value == r"t=y\\;o=~\\;"
def test_txt5(): def test_txt5():
@ -89,15 +89,6 @@ def test_txt5():
assert value == r"t=y\;o=~\;" assert value == r"t=y\;o=~\;"
def test_txt4():
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
rcd_type = "TXT"
rcd_value = r"v=TLSRPTv1\\; rua=mailto:tlsrpt@example.com"
value = nbdns._format_rdata(rcd_type, rcd_value)
assert value == r"v=TLSRPTv1\; rua=mailto:tlsrpt@example.com"
def test_srv(): def test_srv():
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG) nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
rcd_type = "SRV" rcd_type = "SRV"