summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2020-07-21 10:21:29 -0700
committerBob Halley <halley@dnspython.org>2020-07-21 10:21:29 -0700
commita3a4416eeead04f6574f5462e4db06ffc464b404 (patch)
tree2de51ad767a5d9f6d733f82ec4a53046a41bfa04 /tests
parentd24c0d21ec14a779989952d7604e2dc2846fe6f8 (diff)
downloaddnspython-a3a4416eeead04f6574f5462e4db06ffc464b404.tar.gz
Increase LOC coverage.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_rdata.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/test_rdata.py b/tests/test_rdata.py
index 7960dd1..40f6f8d 100644
--- a/tests/test_rdata.py
+++ b/tests/test_rdata.py
@@ -31,6 +31,7 @@ import dns.rdataclass
import dns.rdataset
import dns.rdatatype
from dns.rdtypes.ANY.OPT import OPT
+from dns.rdtypes.ANY.LOC import LOC
import tests.stxt_module
import tests.ttxt_module
@@ -278,6 +279,11 @@ class RdataTestCase(unittest.TestCase):
self.assertEqual(rda, rdb)
def test_misc_good_LOC_text(self):
+ # test just degrees
+ self.equal_loc('60 N 24 39 0.000 E 10.00m 20m 2000m 20m',
+ '60 0 0 N 24 39 0.000 E 10.00m 20m 2000m 20m')
+ self.equal_loc('60 0 0 N 24 E 10.00m 20m 2000m 20m',
+ '60 0 0 N 24 0 0 E 10.00m 20m 2000m 20m')
# test variable length latitude
self.equal_loc('60 9 0.510 N 24 39 0.000 E 10.00m 20m 2000m 20m',
'60 9 0.51 N 24 39 0.000 E 10.00m 20m 2000m 20m')
@@ -292,6 +298,27 @@ class RdataTestCase(unittest.TestCase):
'60 9 0.000 N 24 39 0.5 E 10.00m 20m 2000m 20m')
self.equal_loc('60 9 0.000 N 24 39 1.000 E 10.00m 20m 2000m 20m',
'60 9 0.000 N 24 39 1 E 10.00m 20m 2000m 20m')
+ # test siz, hp, vp defaults
+ self.equal_loc('60 9 0.510 N 24 39 0.000 E 10.00m',
+ '60 9 0.51 N 24 39 0.000 E 10.00m 1m 10000m 10m')
+ self.equal_loc('60 9 0.510 N 24 39 0.000 E 10.00m 2m',
+ '60 9 0.51 N 24 39 0.000 E 10.00m 2m 10000m 10m')
+ self.equal_loc('60 9 0.510 N 24 39 0.000 E 10.00m 2m 2000m',
+ '60 9 0.51 N 24 39 0.000 E 10.00m 2m 2000m 10m')
+ # test siz, hp, vp optional units
+ self.equal_loc('60 9 0.510 N 24 39 0.000 E 1m 20m 2000m 20m',
+ '60 9 0.51 N 24 39 0.000 E 1 20 2000 20')
+
+ def test_LOC_to_text_SW_hemispheres(self):
+ # As an extra, we test int->float conversion in the constructor
+ loc = LOC(dns.rdataclass.IN, dns.rdatatype.LOC, -60, -24, 1)
+ text = '60 0 0.000 S 24 0 0.000 W 0.01m'
+ self.assertEqual(loc.to_text(), text)
+
+ def test_zero_size(self):
+ # This is to exercise the 0 path in _exponent_of.
+ loc = dns.rdata.from_text('in', 'loc', '60 S 24 W 1 0')
+ self.assertEqual(loc.size, 0.0)
def test_bad_LOC_text(self):
bad_locs = ['60 9 a.000 N 24 39 0.000 E 10.00m 20m 2000m 20m',