From 1a893cfefe6aeefa1390b52667a7352d61c7b030 Mon Sep 17 00:00:00 2001 From: James Stewart Date: Sun, 15 Oct 2023 23:33:53 +1100 Subject: [PATCH] Add upload metrics to speedtest_dotnet --- .../speedtest_dotnet/measurements.py | 18 ++++++++++++------ .../measurements/speedtest_dotnet/results.py | 6 +++++- .../tests/test_measurements.py | 8 ++++++++ 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/netmeasure/measurements/speedtest_dotnet/measurements.py b/netmeasure/measurements/speedtest_dotnet/measurements.py index 6a8d54b..ca73a90 100644 --- a/netmeasure/measurements/speedtest_dotnet/measurements.py +++ b/netmeasure/measurements/speedtest_dotnet/measurements.py @@ -27,9 +27,11 @@ def __init__(self, id, servers=None): self.id = id self.servers = servers - def measure(self, share=False): + def measure(self, share=False, upload=True, download=True): """ - @params share: Boolean determining whether to generate a PNG on speedtest.net displaying the result of the test. + param share: Boolean determining whether to generate a PNG on speedtest.net displaying the result of the test. + param upload: Perform upload test. + param download: Perform download test. """ try: s = speedtest.Speedtest() @@ -42,10 +44,10 @@ def measure(self, share=False): s.get_best_server() except speedtest.SpeedtestBestServerFailure as e: return self._get_speedtest_error("speedtest-best-server", traceback=str(e)) - - s.download() - s.upload() - + if upload: + s.upload() + if download: + s.download() if share: try: s.results.share() @@ -62,6 +64,8 @@ def measure(self, share=False): upload_rate_unit=NetworkUnit("bit/s"), data_received=(results_dict["bytes_received"]), data_received_unit=StorageUnit("B"), + data_sent=(results_dict["bytes_sent"]), + data_sent_unit=StorageUnit("B"), latency=float(results_dict["ping"]), server_name=results_dict["server"]["name"], server_id=results_dict["server"]["id"], @@ -81,6 +85,8 @@ def _get_speedtest_error(self, key, traceback): upload_rate_unit=None, data_received=None, data_received_unit=None, + data_sent=None, + data_sent_unit=None, latency=None, server_name=None, server_id=None, diff --git a/netmeasure/measurements/speedtest_dotnet/results.py b/netmeasure/measurements/speedtest_dotnet/results.py index 8d0c016..968f01b 100644 --- a/netmeasure/measurements/speedtest_dotnet/results.py +++ b/netmeasure/measurements/speedtest_dotnet/results.py @@ -13,8 +13,10 @@ class SpeedtestDotnetMeasurementResult(MeasurementResult): :param download_rate_unit: The unit of measurement of `download_rate`. :param upload_rate: The measured upload rate. :param upload_rate_unit: The unit of measurement of `upload_rate`. - :param data_received: The quantity of data report by the speedtest utility + :param data_received: The quantity of data received by the speedtest utility :param data_received_unit: The unit of measurement of `data_received` + :param data_sent: The quantity of data sent by the speedtest utility + :param data_sent_unit: The unit of measurement of `data_received` :param latency: The measured latency. :param server_name: The name of the speedtest.net server used to perform the speedtest_dotnet measurement. @@ -32,6 +34,8 @@ class SpeedtestDotnetMeasurementResult(MeasurementResult): upload_rate_unit: typing.Optional[NetworkUnit] data_received: typing.Optional[float] data_received_unit: typing.Optional[StorageUnit] + data_sent: typing.Optional[float] + data_sent_unit: typing.Optional[StorageUnit] latency: typing.Optional[float] server_name: typing.Optional[str] server_id: typing.Optional[str] diff --git a/netmeasure/measurements/speedtest_dotnet/tests/test_measurements.py b/netmeasure/measurements/speedtest_dotnet/tests/test_measurements.py index 711369f..0e81000 100644 --- a/netmeasure/measurements/speedtest_dotnet/tests/test_measurements.py +++ b/netmeasure/measurements/speedtest_dotnet/tests/test_measurements.py @@ -64,6 +64,8 @@ def setUp(self) -> None: upload_rate_unit=NetworkUnit("bit/s"), data_received=116746522, data_received_unit=StorageUnit("B"), + data_sent=25591808, + data_sent_unit=StorageUnit("B"), latency=17.054, server_name="HonestyVille", server_id="1267", @@ -79,6 +81,8 @@ def setUp(self) -> None: upload_rate_unit=None, data_received=None, data_received_unit=None, + data_sent=None, + data_sent_unit=None, latency=None, server_name=None, server_id=None, @@ -100,6 +104,8 @@ def setUp(self) -> None: upload_rate_unit=None, data_received=None, data_received_unit=None, + data_sent=None, + data_sent_unit=None, latency=None, server_name=None, server_id=None, @@ -121,6 +127,8 @@ def setUp(self) -> None: upload_rate_unit=None, data_received=None, data_received_unit=None, + data_sent=None, + data_sent_unit=None, latency=None, server_name=None, server_id=None,