[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [bridgedb/develop] Add additional test utilities for generating random valid IPs.
commit 372206bb8a73f5229b606a60f40de1c71e4804fe
Author: Isis Lovecruft <isis@xxxxxxxxxxxxxx>
Date: Sat Apr 18 03:15:19 2015 +0000
Add additional test utilities for generating random valid IPs.
---
lib/bridgedb/test/util.py | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/lib/bridgedb/test/util.py b/lib/bridgedb/test/util.py
index 4aa2709..2d0c020 100644
--- a/lib/bridgedb/test/util.py
+++ b/lib/bridgedb/test/util.py
@@ -25,6 +25,7 @@ from functools import wraps
from twisted.trial import unittest
from bridgedb import util as bdbutil
+from bridgedb.parse.addr import isIPAddress
def fileCheckDecorator(func):
@@ -121,6 +122,9 @@ def bracketIPv6(ip):
def randomPort():
return random.randint(1, 65535)
+def randomHighPort():
+ return random.randint(1024, 65535)
+
def randomIPv4():
return ipaddr.IPv4Address(random.getrandbits(32))
@@ -143,6 +147,27 @@ def randomIPString():
return randomIPv4String()
return randomIPv6String()
+def valid(func):
+ """Wrapper for the above ``randomIPv*`` functions to ensure they only
+ return addresses which BridgeDB considers "valid".
+
+ .. seealso:: :func:`bridgedb.parse.addr.isIPAddress`
+ """
+ @wraps(func)
+ def wrapper():
+ ip = None
+ while not isIPAddress(ip):
+ ip = func()
+ return ip
+ return wrapper
+
+randomValidIPv4 = valid(randomIPv4)
+randomValidIPv6 = valid(randomIPv6)
+randomValidIP = valid(randomIP)
+randomValidIPv4String = valid(randomIPv4String)
+randomValidIPv6String = valid(randomIPv6String)
+randomValidIPString = valid(randomIPString)
+
#: Mixin class for use with :api:`~twisted.trial.unittest.TestCase`. A
#: ``TestCaseMixin`` can be used to add additional methods, which should be
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits