Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/dns/rdtypes/IN/A.py: 83%

23 statements  

« prev     ^ index     » next       coverage.py v7.3.1, created at 2023-09-25 07:09 +0000

1# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license 

2 

3# Copyright (C) 2003-2007, 2009-2011 Nominum, Inc. 

4# 

5# Permission to use, copy, modify, and distribute this software and its 

6# documentation for any purpose with or without fee is hereby granted, 

7# provided that the above copyright notice and this permission notice 

8# appear in all copies. 

9# 

10# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES 

11# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 

12# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR 

13# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 

14# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 

15# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 

16# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 

17 

18import dns.exception 

19import dns.immutable 

20import dns.ipv4 

21import dns.rdata 

22import dns.tokenizer 

23 

24 

25@dns.immutable.immutable 

26class A(dns.rdata.Rdata): 

27 

28 """A record.""" 

29 

30 __slots__ = ["address"] 

31 

32 def __init__(self, rdclass, rdtype, address): 

33 super().__init__(rdclass, rdtype) 

34 self.address = self._as_ipv4_address(address) 

35 

36 def to_text(self, origin=None, relativize=True, **kw): 

37 return self.address 

38 

39 @classmethod 

40 def from_text( 

41 cls, rdclass, rdtype, tok, origin=None, relativize=True, relativize_to=None 

42 ): 

43 address = tok.get_identifier() 

44 return cls(rdclass, rdtype, address) 

45 

46 def _to_wire(self, file, compress=None, origin=None, canonicalize=False): 

47 file.write(dns.ipv4.inet_aton(self.address)) 

48 

49 @classmethod 

50 def from_wire_parser(cls, rdclass, rdtype, parser, origin=None): 

51 address = parser.get_remaining() 

52 return cls(rdclass, rdtype, address)