From f86e281c821c0e8506af2941f2a418091043662d Mon Sep 17 00:00:00 2001
From: Moul <moul@moul.re>
Date: Mon, 21 Jun 2021 21:21:57 +0200
Subject: [PATCH] [mod] #139: Rename Endpoints.{server,host}

---
 duniterpy/api/endpoint.py    | 126 +++++++++++++++++------------------
 tests/api/test_endpoints.py  |  10 +--
 tests/documents/test_peer.py |  12 ++--
 3 files changed, 72 insertions(+), 76 deletions(-)

diff --git a/duniterpy/api/endpoint.py b/duniterpy/api/endpoint.py
index 62188052..2409f00e 100644
--- a/duniterpy/api/endpoint.py
+++ b/duniterpy/api/endpoint.py
@@ -118,7 +118,7 @@ class UnknownEndpoint(Endpoint):
         """
         Return connection handler
 
-        :param proxy: Proxy server
+        :param proxy: Proxy address
         :return:
         """
         return ConnectionHandler("", "", "", 0, "")
@@ -147,16 +147,16 @@ class BMAEndpoint(Endpoint):
         f"^{API}(?: (?P<host>{const.HOST_REGEX}))?(?: (?P<ipv4>{const.IPV4_REGEX}))?(?: (?P<ipv6>{const.IPV6_REGEX}))?(?: (?P<port>{const.PORT_REGEX}))$"
     )
 
-    def __init__(self, server: str, ipv4: str, ipv6: str, port: int) -> None:
+    def __init__(self, host: str, ipv4: str, ipv6: str, port: int) -> None:
         """
         Init BMAEndpoint instance
 
-        :param server: IP or domain name
+        :param host: Hostname
         :param ipv4: IP as IPv4 format
         :param ipv6: IP as IPv6 format
         :param port: Port number
         """
-        self.server = server
+        self.host = host
         self.ipv4 = ipv4
         self.ipv6 = ipv6
         self.port = port
@@ -172,11 +172,11 @@ class BMAEndpoint(Endpoint):
         m = BMAEndpoint.re_inline.match(inline)
         if m is None:
             raise MalformedDocumentError(BMAEndpoint.API)
-        server, ipv4 = fix_host_ipv4_mix_up(m["host"], m["ipv4"])
+        host, ipv4 = fix_host_ipv4_mix_up(m["host"], m["ipv4"])
         ipv6 = m["ipv6"]
         port = int(m["port"])
 
-        return cls(server, ipv4, ipv6, port)
+        return cls(host, ipv4, ipv6, port)
 
     def inline(self) -> str:
         """
@@ -185,7 +185,7 @@ class BMAEndpoint(Endpoint):
         :return:
         """
         return BMAEndpoint.API + "{DNS}{IPv4}{IPv6}{PORT}".format(
-            DNS=(" {0}".format(self.server) if self.server else ""),
+            DNS=(" {0}".format(self.host) if self.host else ""),
             IPv4=(" {0}".format(self.ipv4) if self.ipv4 else ""),
             IPv6=(" {0}".format(self.ipv6) if self.ipv6 else ""),
             PORT=(" {0}".format(self.port) if self.port else ""),
@@ -198,9 +198,9 @@ class BMAEndpoint(Endpoint):
         :param proxy: Proxy url
         :return:
         """
-        if self.server:
+        if self.host:
             conn_handler = ConnectionHandler(
-                "http", "ws", self.server, self.port, "", proxy
+                "http", "ws", self.host, self.port, "", proxy
             )
         elif self.ipv6:
             conn_handler = ConnectionHandler(
@@ -220,14 +220,14 @@ class BMAEndpoint(Endpoint):
         if not isinstance(other, BMAEndpoint):
             return NotImplemented
         return (
-            self.server == other.server
+            self.host == other.host
             and self.ipv4 == other.ipv4
             and self.ipv6 == other.ipv6
             and self.port == other.port
         )
 
     def __hash__(self) -> int:
-        return hash((self.server, self.ipv4, self.ipv6, self.port))
+        return hash((self.host, self.ipv4, self.ipv6, self.port))
 
 
 # required to type hint cls in classmethod
@@ -240,17 +240,17 @@ class SecuredBMAEndpoint(BMAEndpoint):
         f"^{API}(?: (?P<host>{const.HOST_REGEX}))?(?: (?P<ipv4>{const.IPV4_REGEX}))?(?: (?P<ipv6>{const.IPV6_REGEX}))? (?P<port>{const.PORT_REGEX})(?: (?P<path>{const.PATH_REGEX}))?$"
     )
 
-    def __init__(self, server: str, ipv4: str, ipv6: str, port: int, path: str) -> None:
+    def __init__(self, host: str, ipv4: str, ipv6: str, port: int, path: str) -> None:
         """
         Init SecuredBMAEndpoint instance
 
-        :param server: IP or domain name
+        :param host: Hostname
         :param ipv4: IP as IPv4 format
         :param ipv6: IP as IPv6 format
         :param port: Port number
         :param path: Url path
         """
-        super().__init__(server, ipv4, ipv6, port)
+        super().__init__(host, ipv4, ipv6, port)
         self.path = path
 
     @classmethod
@@ -266,14 +266,14 @@ class SecuredBMAEndpoint(BMAEndpoint):
         m = SecuredBMAEndpoint.re_inline.match(inline)
         if m is None:
             raise MalformedDocumentError(SecuredBMAEndpoint.API)
-        server, ipv4 = fix_host_ipv4_mix_up(m["host"], m["ipv4"])
+        host, ipv4 = fix_host_ipv4_mix_up(m["host"], m["ipv4"])
         ipv6 = m["ipv6"]
         port = int(m["port"])
         path = m["path"]
 
         if not path:
             path = ""
-        return cls(server, ipv4, ipv6, port, path)
+        return cls(host, ipv4, ipv6, port, path)
 
     def inline(self) -> str:
         """
@@ -283,7 +283,7 @@ class SecuredBMAEndpoint(BMAEndpoint):
         """
         inlined = [
             str(info)
-            for info in (self.server, self.ipv4, self.ipv6, self.port, self.path)
+            for info in (self.host, self.ipv4, self.ipv6, self.port, self.path)
             if info
         ]
         return SecuredBMAEndpoint.API + " " + " ".join(inlined)
@@ -295,9 +295,9 @@ class SecuredBMAEndpoint(BMAEndpoint):
         :param proxy: Proxy url
         :return:
         """
-        if self.server:
+        if self.host:
             conn_handler = ConnectionHandler(
-                "https", "wss", self.server, self.port, self.path, proxy
+                "https", "wss", self.host, self.port, self.path, proxy
             )
         elif self.ipv6:
             conn_handler = ConnectionHandler(
@@ -321,9 +321,9 @@ class WS2PEndpoint(Endpoint):
         f"^{API} (?P<ws2pid>{const.WS2PID_REGEX}) (?P<host>(?:{const.HOST_REGEX})|(?:{const.IPV4_REGEX})|(?:{const.IPV6_REGEX})) (?P<port>{const.PORT_REGEX})?(?: (?P<path>{const.PATH_REGEX}))?$"
     )
 
-    def __init__(self, ws2pid: str, server: str, port: int, path: str) -> None:
+    def __init__(self, ws2pid: str, host: str, port: int, path: str) -> None:
         self.ws2pid = ws2pid
-        self.server = server
+        self.host = host
         self.port = port
         self.path = path
 
@@ -339,12 +339,12 @@ class WS2PEndpoint(Endpoint):
         if m is None:
             raise MalformedDocumentError(WS2PEndpoint.API)
         ws2pid = m["ws2pid"]
-        server = m["host"]
+        host = m["host"]
         port = int(m["port"])
         path = m["path"]
         if not path:
             path = ""
-        return cls(ws2pid, server, port, path)
+        return cls(ws2pid, host, port, path)
 
     def inline(self) -> str:
         """
@@ -353,9 +353,7 @@ class WS2PEndpoint(Endpoint):
         :return:
         """
         inlined = [
-            str(info)
-            for info in (self.ws2pid, self.server, self.port, self.path)
-            if info
+            str(info) for info in (self.ws2pid, self.host, self.port, self.path) if info
         ]
         return WS2PEndpoint.API + " " + " ".join(inlined)
 
@@ -372,7 +370,7 @@ class WS2PEndpoint(Endpoint):
             http_scheme += "s"
             websocket_scheme += "s"
         return ConnectionHandler(
-            http_scheme, websocket_scheme, self.server, self.port, self.path, proxy
+            http_scheme, websocket_scheme, self.host, self.port, self.path, proxy
         )
 
     def __str__(self) -> str:
@@ -382,14 +380,14 @@ class WS2PEndpoint(Endpoint):
         if not isinstance(other, WS2PEndpoint):
             return NotImplemented
         return (
-            self.server == other.server
+            self.host == other.host
             and self.ws2pid == other.ws2pid
             and self.port == other.port
             and self.path == other.path
         )
 
     def __hash__(self) -> int:
-        return hash((self.ws2pid, self.server, self.port, self.path))
+        return hash((self.ws2pid, self.host, self.port, self.path))
 
 
 # required to type hint cls in classmethod
@@ -402,8 +400,8 @@ class ESCoreEndpoint(Endpoint):
         f"^{API} (?P<host>(?:{const.HOST_REGEX})|(?:{const.IPV4_REGEX})) (?P<port>{const.PORT_REGEX})$"
     )
 
-    def __init__(self, server: str, port: int) -> None:
-        self.server = server
+    def __init__(self, host: str, port: int) -> None:
+        self.host = host
         self.port = port
 
     @classmethod
@@ -417,9 +415,9 @@ class ESCoreEndpoint(Endpoint):
         m = ESCoreEndpoint.re_inline.match(inline)
         if m is None:
             raise MalformedDocumentError(ESCoreEndpoint.API)
-        server = m["host"]
+        host = m["host"]
         port = int(m["port"])
-        return cls(server, port)
+        return cls(host, port)
 
     def inline(self) -> str:
         """
@@ -427,7 +425,7 @@ class ESCoreEndpoint(Endpoint):
 
         :return:
         """
-        inlined = [str(info) for info in (self.server, self.port) if info]
+        inlined = [str(info) for info in (self.host, self.port) if info]
         return ESCoreEndpoint.API + " " + " ".join(inlined)
 
     def conn_handler(self, proxy: str = None) -> ConnectionHandler:
@@ -437,7 +435,7 @@ class ESCoreEndpoint(Endpoint):
         :param proxy: Proxy url
         :return:
         """
-        return ConnectionHandler("https", "wss", self.server, self.port, "", proxy)
+        return ConnectionHandler("https", "wss", self.host, self.port, "", proxy)
 
     def __str__(self) -> str:
         return self.inline()
@@ -445,10 +443,10 @@ class ESCoreEndpoint(Endpoint):
     def __eq__(self, other: Any) -> bool:
         if not isinstance(other, ESCoreEndpoint):
             return NotImplemented
-        return self.server == other.server and self.port == other.port
+        return self.host == other.host and self.port == other.port
 
     def __hash__(self) -> int:
-        return hash((self.server, self.port))
+        return hash((self.host, self.port))
 
 
 # required to type hint cls in classmethod
@@ -461,8 +459,8 @@ class ESUserEndpoint(Endpoint):
         "^{API} (?P<host>(?:{const.HOST_REGEX})|(?:{const.IPV4_REGEX})) (?P<port>{const.PORT_REGEX})$"
     )
 
-    def __init__(self, server: str, port: int) -> None:
-        self.server = server
+    def __init__(self, host: str, port: int) -> None:
+        self.host = host
         self.port = port
 
     @classmethod
@@ -476,9 +474,9 @@ class ESUserEndpoint(Endpoint):
         m = ESUserEndpoint.re_inline.match(inline)
         if m is None:
             raise MalformedDocumentError(ESUserEndpoint.API)
-        server = m["host"]
+        host = m["host"]
         port = int(m["port"])
-        return cls(server, port)
+        return cls(host, port)
 
     def inline(self) -> str:
         """
@@ -486,7 +484,7 @@ class ESUserEndpoint(Endpoint):
 
         :return:
         """
-        inlined = [str(info) for info in (self.server, self.port) if info]
+        inlined = [str(info) for info in (self.host, self.port) if info]
         return ESUserEndpoint.API + " " + " ".join(inlined)
 
     def conn_handler(self, proxy: str = None) -> ConnectionHandler:
@@ -496,7 +494,7 @@ class ESUserEndpoint(Endpoint):
         :param proxy: Proxy url
         :return:
         """
-        return ConnectionHandler("https", "wss", self.server, self.port, "", proxy)
+        return ConnectionHandler("https", "wss", self.host, self.port, "", proxy)
 
     def __str__(self) -> str:
         return self.inline()
@@ -504,10 +502,10 @@ class ESUserEndpoint(Endpoint):
     def __eq__(self, other: Any) -> bool:
         if not isinstance(other, ESUserEndpoint):
             return NotImplemented
-        return self.server == other.server and self.port == other.port
+        return self.host == other.host and self.port == other.port
 
     def __hash__(self) -> int:
-        return hash((self.server, self.port))
+        return hash((self.host, self.port))
 
 
 # required to type hint cls in classmethod
@@ -522,8 +520,8 @@ class ESSubscribtionEndpoint(Endpoint):
         f"^{API} (?P<host>(?:{const.HOST_REGEX})|(?:{const.IPV4_REGEX})) (?P<port>{const.PORT_REGEX})$"
     )
 
-    def __init__(self, server: str, port: int) -> None:
-        self.server = server
+    def __init__(self, host: str, port: int) -> None:
+        self.host = host
         self.port = port
 
     @classmethod
@@ -539,9 +537,9 @@ class ESSubscribtionEndpoint(Endpoint):
         m = ESSubscribtionEndpoint.re_inline.match(inline)
         if m is None:
             raise MalformedDocumentError(ESSubscribtionEndpoint.API)
-        server = m["host"]
+        host = m["host"]
         port = int(m["port"])
-        return cls(server, port)
+        return cls(host, port)
 
     def inline(self) -> str:
         """
@@ -549,7 +547,7 @@ class ESSubscribtionEndpoint(Endpoint):
 
         :return:
         """
-        inlined = [str(info) for info in (self.server, self.port) if info]
+        inlined = [str(info) for info in (self.host, self.port) if info]
         return ESSubscribtionEndpoint.API + " " + " ".join(inlined)
 
     def conn_handler(self, proxy: str = None) -> ConnectionHandler:
@@ -559,7 +557,7 @@ class ESSubscribtionEndpoint(Endpoint):
         :param proxy: Proxy url
         :return:
         """
-        return ConnectionHandler("https", "wss", self.server, self.port, "", proxy)
+        return ConnectionHandler("https", "wss", self.host, self.port, "", proxy)
 
     def __str__(self) -> str:
         return self.inline()
@@ -567,10 +565,10 @@ class ESSubscribtionEndpoint(Endpoint):
     def __eq__(self, other: Any) -> bool:
         if not isinstance(other, ESSubscribtionEndpoint):
             return NotImplemented
-        return self.server == other.server and self.port == other.port
+        return self.host == other.host and self.port == other.port
 
     def __hash__(self) -> int:
-        return hash((ESSubscribtionEndpoint.API, self.server, self.port))
+        return hash((ESSubscribtionEndpoint.API, self.host, self.port))
 
 
 # required to type hint cls in classmethod
@@ -585,7 +583,7 @@ class GVAEndpoint(Endpoint):
     def __init__(
         self,
         flags: str,
-        server: str,
+        host: str,
         ipv4: str,
         ipv6: str,
         port: int,
@@ -595,14 +593,14 @@ class GVAEndpoint(Endpoint):
         Init GVAEndpoint instance
 
         :param flags: Flags of endpoint
-        :param server: IP or domain name
+        :param host: Hostname
         :param ipv4: IP as IPv4 format
         :param ipv6: IP as IPv6 format
         :param port: Port number
         :param path: Url path
         """
         self.flags = flags
-        self.server = server
+        self.host = host
         self.ipv4 = ipv4
         self.ipv6 = ipv6
         self.port = port
@@ -620,7 +618,7 @@ class GVAEndpoint(Endpoint):
         if m is None:
             raise MalformedDocumentError(cls.API)
         flags = m["flags"]
-        server, ipv4 = fix_host_ipv4_mix_up(m["host"], m["ipv4"])
+        host, ipv4 = fix_host_ipv4_mix_up(m["host"], m["ipv4"])
         ipv6 = m["ipv6"]
         port = int(m["port"])
         path = m["path"]
@@ -629,7 +627,7 @@ class GVAEndpoint(Endpoint):
             flags = ""
         if not path:
             path = ""
-        return cls(flags, server, ipv4, ipv6, port, path)
+        return cls(flags, host, ipv4, ipv6, port, path)
 
     def inline(self) -> str:
         """
@@ -641,7 +639,7 @@ class GVAEndpoint(Endpoint):
             str(info)
             for info in (
                 self.flags,
-                self.server,
+                self.host,
                 self.ipv4,
                 self.ipv6,
                 self.port,
@@ -661,9 +659,9 @@ class GVAEndpoint(Endpoint):
         scheme_http = "https" if "S" in self.flags else "http"
         scheme_ws = "wss" if "S" in self.flags else "ws"
 
-        if self.server:
+        if self.host:
             conn_handler = ConnectionHandler(
-                scheme_http, scheme_ws, self.server, self.port, self.path, proxy
+                scheme_http, scheme_ws, self.host, self.port, self.path, proxy
             )
         elif self.ipv6:
             conn_handler = ConnectionHandler(
@@ -689,7 +687,7 @@ class GVAEndpoint(Endpoint):
             return NotImplemented
         return (
             self.flags == other.flags
-            and self.server == other.server
+            and self.host == other.host
             and self.ipv4 == other.ipv4
             and self.ipv6 == other.ipv6
             and self.port == other.port
@@ -697,9 +695,7 @@ class GVAEndpoint(Endpoint):
         )
 
     def __hash__(self) -> int:
-        return hash(
-            (self.flags, self.server, self.ipv4, self.ipv6, self.port, self.path)
-        )
+        return hash((self.flags, self.host, self.ipv4, self.ipv6, self.port, self.path))
 
 
 MANAGED_API = {
diff --git a/tests/api/test_endpoints.py b/tests/api/test_endpoints.py
index 027f430a..c0924988 100644
--- a/tests/api/test_endpoints.py
+++ b/tests/api/test_endpoints.py
@@ -25,7 +25,7 @@ class TestEndpoint(unittest.TestCase):
         gva_endpoint = endpoint.GVAEndpoint.from_inline(endpoint_str)
 
         self.assertEqual(gva_endpoint.flags, "")
-        self.assertEqual(gva_endpoint.server, "test.domain.com")
+        self.assertEqual(gva_endpoint.host, "test.domain.com")
         self.assertEqual(gva_endpoint.ipv4, "127.0.0.1")
         self.assertEqual(gva_endpoint.ipv6, "2001:0db8:0000:85a3:0000:0000:ac1f:8001")
         self.assertEqual(gva_endpoint.port, 10902)
@@ -38,7 +38,7 @@ class TestEndpoint(unittest.TestCase):
         gva_endpoint = endpoint.GVAEndpoint.from_inline(endpoint_str)
 
         self.assertEqual(gva_endpoint.flags, "S")
-        self.assertEqual(gva_endpoint.server, "test.domain.com")
+        self.assertEqual(gva_endpoint.host, "test.domain.com")
         self.assertEqual(gva_endpoint.ipv4, None)
         self.assertEqual(gva_endpoint.ipv6, None)
         self.assertEqual(gva_endpoint.port, 10902)
@@ -51,7 +51,7 @@ class TestEndpoint(unittest.TestCase):
         gva_endpoint = endpoint.GVAEndpoint.from_inline(endpoint_str)
 
         self.assertEqual(gva_endpoint.flags, "S")
-        self.assertEqual(gva_endpoint.server, "xn--duniter.org")
+        self.assertEqual(gva_endpoint.host, "xn--duniter.org")
         self.assertEqual(gva_endpoint.ipv4, None)
         self.assertEqual(gva_endpoint.ipv6, None)
         self.assertEqual(gva_endpoint.port, 10902)
@@ -62,11 +62,11 @@ class TestEndpoint(unittest.TestCase):
     def test_gva_host_ipv4_mix_up(self):
         endpoint_str = "GVA S 127.0.0.1 443 gva"
         gva_endpoint = endpoint.GVAEndpoint.from_inline(endpoint_str)
-        self.assertEqual(gva_endpoint.server, "")
+        self.assertEqual(gva_endpoint.host, "")
         self.assertEqual(gva_endpoint.ipv4, "127.0.0.1")
 
     def test_bmas_host_ipv4_mix_up(self):
         endpoint_str = "BMAS 127.0.0.1 443 bma"
         bmas_endpoint = endpoint.SecuredBMAEndpoint.from_inline(endpoint_str)
-        self.assertEqual(bmas_endpoint.server, "")
+        self.assertEqual(bmas_endpoint.host, "")
         self.assertEqual(bmas_endpoint.ipv4, "127.0.0.1")
diff --git a/tests/documents/test_peer.py b/tests/documents/test_peer.py
index 1a55014f..62374b34 100644
--- a/tests/documents/test_peer.py
+++ b/tests/documents/test_peer.py
@@ -57,17 +57,17 @@ class TestPeer(unittest.TestCase):
         self.assertIsInstance(peer.endpoints[2], WS2PEndpoint)
         self.assertIsInstance(peer.endpoints[3], UnknownEndpoint)
 
-        self.assertEqual(peer.endpoints[0].server, "some.dns.name")
+        self.assertEqual(peer.endpoints[0].host, "some.dns.name")
         self.assertEqual(peer.endpoints[0].ipv4, "88.77.66.55")
         self.assertEqual(peer.endpoints[0].ipv6, "2001:42d0:52:a00::648")
         self.assertEqual(peer.endpoints[0].port, 9001)
 
-        self.assertEqual(peer.endpoints[1].server, "some.dns.name")
+        self.assertEqual(peer.endpoints[1].host, "some.dns.name")
         self.assertEqual(peer.endpoints[1].ipv4, "88.77.66.55")
         self.assertEqual(peer.endpoints[1].ipv6, "2001:42d0:52:a00::648")
         self.assertEqual(peer.endpoints[1].port, 9002)
 
-        self.assertEqual(peer.endpoints[2].server, "g1-test.duniter.org")
+        self.assertEqual(peer.endpoints[2].host, "g1-test.duniter.org")
         self.assertEqual(peer.endpoints[2].ws2pid, "d2edcb92")
         self.assertEqual(peer.endpoints[2].port, 20902)
 
@@ -95,17 +95,17 @@ class TestPeer(unittest.TestCase):
         self.assertIsInstance(peer.endpoints[2], WS2PEndpoint)
         self.assertIsInstance(peer.endpoints[3], UnknownEndpoint)
 
-        self.assertEqual(from_rendered_peer.endpoints[0].server, "some.dns.name")
+        self.assertEqual(from_rendered_peer.endpoints[0].host, "some.dns.name")
         self.assertEqual(from_rendered_peer.endpoints[0].ipv4, "88.77.66.55")
         self.assertEqual(from_rendered_peer.endpoints[0].ipv6, "2001:42d0:52:a00::648")
         self.assertEqual(from_rendered_peer.endpoints[0].port, 9001)
 
-        self.assertEqual(from_rendered_peer.endpoints[1].server, "some.dns.name")
+        self.assertEqual(from_rendered_peer.endpoints[1].host, "some.dns.name")
         self.assertEqual(from_rendered_peer.endpoints[1].ipv4, "88.77.66.55")
         self.assertEqual(from_rendered_peer.endpoints[1].ipv6, "2001:42d0:52:a00::648")
         self.assertEqual(from_rendered_peer.endpoints[1].port, 9002)
 
-        self.assertEqual(peer.endpoints[2].server, "g1-test.duniter.org")
+        self.assertEqual(peer.endpoints[2].host, "g1-test.duniter.org")
         self.assertEqual(peer.endpoints[2].ws2pid, "d2edcb92")
         self.assertEqual(peer.endpoints[2].port, 20902)
 
-- 
GitLab