From: Daniele Varrazzo Date: Tue, 8 Jun 2021 04:07:04 +0000 (+0100) Subject: Generate random ipaddress objects for testing X-Git-Tag: 3.0.dev0~37^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=38827c4b5a238f2d02e530a9c58652f3c9ea5a12;p=thirdparty%2Fpsycopg.git Generate random ipaddress objects for testing --- diff --git a/tests/fix_faker.py b/tests/fix_faker.py index 2a74f2c8e..b57a1945b 100644 --- a/tests/fix_faker.py +++ b/tests/fix_faker.py @@ -1,5 +1,6 @@ import datetime as dt import importlib +import ipaddress from math import isnan from uuid import UUID from random import choice, random, randrange @@ -304,6 +305,30 @@ class Faker: def make_Int8(self, spec): return spec(randrange(-(1 << 63), 1 << 63)) + def make_IPv4Address(self, spec): + return ipaddress.IPv4Address(bytes(randrange(256) for _ in range(4))) + + def make_IPv4Interface(self, spec): + prefix = randrange(32) + return ipaddress.IPv4Interface( + (bytes(randrange(256) for _ in range(4)), prefix) + ) + + def make_IPv4Network(self, spec): + return self.make_IPv4Interface(spec).network + + def make_IPv6Address(self, spec): + return ipaddress.IPv6Address(bytes(randrange(256) for _ in range(16))) + + def make_IPv6Interface(self, spec): + prefix = randrange(128) + return ipaddress.IPv6Interface( + (bytes(randrange(256) for _ in range(16)), prefix) + ) + + def make_IPv6Network(self, spec): + return self.make_IPv6Interface(spec).network + def make_Json(self, spec): return spec(self._make_json())