Skip to content

Commit

Permalink
Fix broken tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hellais committed Feb 3, 2025
1 parent a23dda2 commit 29289db
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 87 deletions.
53 changes: 0 additions & 53 deletions oonidata/src/oonidata/models/observations.py
Original file line number Diff line number Diff line change
Expand Up @@ -391,59 +391,6 @@ class HTTPMiddleboxObservation:
hfm_success: Optional[bool] = None


@table_model(
table_name="obs_openvpn",
table_index=(
"measurement_start_time",
"measurement_uid",
"observation_idx",
),
)
@dataclass
class OpenVPNObservation:
measurement_meta: MeasurementMeta

probe_meta: ProbeMeta

observation_idx: int = 0

created_at: Optional[datetime] = None

timestamp: datetime = None

# Fields added by the processor

ip: str = ""
port: int = 0
transport: str = ""

success: bool = False
failure: Failure = None

protocol: str = ""
variant: Optional[str] = None

# TCP related observation
tcp_failure: Optional[Failure] = None
tcp_success: Optional[bool] = None
tcp_t: Optional[float] = None

# OpenVPN handshake observation
openvpn_handshake_failure: Optional[Failure] = None
openvpn_handshake_t: Optional[float] = None
openvpn_handshake_t0: Optional[float] = None
openvpn_bootstrap_time: Optional[float] = None

# timing info about the handshake packets
openvpn_handshake_hr_client_t: Optional[float] = None
openvpn_handshake_hr_server_t: Optional[float] = None
openvpn_handshake_clt_hello_t: Optional[float] = None
openvpn_handshake_srv_hello_t: Optional[float] = None
openvpn_handshake_key_exchg_n: Optional[int] = None
openvpn_handshake_got_keys__t: Optional[float] = None
openvpn_handshake_gen_keys__t: Optional[float] = None


@table_model(
table_name="obs_tunnel",
table_index=("measurement_uid", "observation_idx", "measurement_start_time"),
Expand Down
4 changes: 2 additions & 2 deletions oonipipeline/src/oonipipeline/db/create_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
WebControlObservation,
WebObservation,
HTTPMiddleboxObservation,
OpenVPNObservation,
TunnelObservation,
)

from .connections import ClickhouseConnection
Expand Down Expand Up @@ -166,7 +166,7 @@ def format_create_query(
table_models = [
WebObservation,
WebControlObservation,
OpenVPNObservation,
TunnelObservation,
HTTPMiddleboxObservation,
]

Expand Down
22 changes: 9 additions & 13 deletions oonipipeline/src/oonipipeline/transforms/nettests/openvpn.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@
from oonidata.models.dataformats import OpenVPNHandshake, OpenVPNNetworkEvent
from oonidata.models.nettests import OpenVPN
from oonidata.models.observations import (
OpenVPNObservation,
TunnelObservation,
WebObservation,
)

from ..measurement_transformer import MeasurementTransformer, normalize_failure
from ..measurement_transformer import measurement_to_openvpn_observation


def count_key_exchange_packets(network_events: List[OpenVPNNetworkEvent]) -> int:
Expand Down Expand Up @@ -56,7 +54,7 @@ class OpenVPNTransformer(MeasurementTransformer):

def make_observations(
self, msmt: OpenVPN
) -> Tuple[List[OpenVPNObservation], List[WebObservation]]:
) -> Tuple[List[TunnelObservation], List[WebObservation]]:
if not msmt.test_keys:
return ([], [])

Expand All @@ -72,7 +70,7 @@ def make_observations(
# TCPObservations, OpenVPNNetworkevents and OpenVPNHandshakes.
# """

openvpn_obs_list: List[TunnelObservation] = []
tunnel_observations: List[TunnelObservation] = []

assert msmt.test_keys is not None
assert msmt.test_keys.openvpn_handshake is not None
Expand All @@ -98,14 +96,12 @@ def make_observations(
to.failure_map["handshake"] = hs.failure or ""
idx += 1

openvpn_obs_list.append(to)
tunnel_observations.append(to)

web_observations = (
self.consume_web_observations(
dns_observations=[],
tcp_observations=self.make_tcp_observations(msmt.test_keys.tcp_connect),
tls_observations=[],
http_observations=[],
),
web_observations = self.consume_web_observations(
dns_observations=[],
tcp_observations=self.make_tcp_observations(msmt.test_keys.tcp_connect),
tls_observations=[],
http_observations=[],
)
return (openvpn_obs, web_observations)
return (tunnel_observations, web_observations)
15 changes: 12 additions & 3 deletions oonipipeline/src/oonipipeline/transforms/observations.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

from oonidata.models.observations import (
HTTPMiddleboxObservation,
TunnelObservation,
WebControlObservation,
WebObservation,
OpenVPNObservation
)

from oonidata.models.nettests import (
Expand All @@ -20,6 +20,7 @@
UrlGetter,
WebConnectivity,
HTTPInvalidRequestLine,
OpenVPN,
)

from .nettests.dnscheck import DNSCheckTransformer
Expand Down Expand Up @@ -63,8 +64,8 @@
TypeWebConnectivityObservations = Tuple[
List[WebObservation], List[WebControlObservation]
]
TypeTunnelObservations = Tuple[List[TunnelObservation], List[WebObservation]]
TypeWebObservations = Tuple[List[WebObservation]]
TypeOpenVPNObservations = Tuple[List[OpenVPNObservation]]
TypeHTTPMiddleboxObservations = Tuple[List[HTTPMiddleboxObservation]]


Expand Down Expand Up @@ -94,6 +95,14 @@ def measurement_to_observations(
) -> TypeWebObservations: ...


@overload
def measurement_to_observations(
msmt: OpenVPN,
netinfodb: NetinfoDB,
bucket_date: str = "1984-01-01",
) -> TypeTunnelObservations: ...


@overload
def measurement_to_observations(
msmt: SupportedDataformats,
Expand All @@ -113,7 +122,7 @@ def measurement_to_observations(
TypeWebObservations,
TypeWebConnectivityObservations,
TypeHTTPMiddleboxObservations,
TypeOpenVPNObservations,
TypeTunnelObservations,
Tuple[()],
]:
if msmt.test_name in NETTEST_TRANSFORMERS:
Expand Down
32 changes: 16 additions & 16 deletions oonipipeline/tests/test_transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from oonidata.models.nettests.urlgetter import UrlGetter
from oonidata.models.nettests.browser_web import BrowserWeb
from oonidata.models.nettests.openvpn import OpenVPN
from oonidata.models.observations import WebObservation
from oonidata.models.observations import WebObservation, TunnelObservation

from oonipipeline.transforms.measurement_transformer import (
MeasurementTransformer,
Expand Down Expand Up @@ -423,18 +423,18 @@ def test_openvpn_obs(netinfodb, measurements):
obs_tup_udp = measurement_to_observations(
msmt=msmt_udp, netinfodb=netinfodb, bucket_date=bucket_date
)
assert len(obs_tup_udp) == 1
oou: OpenVPNObservation = obs_tup_udp[0][0]
assert len(obs_tup_udp) == 2
oou: TunnelObservation = obs_tup_udp[0][0]

assert oou.success is True
assert oou.transport == "udp"
assert oou.port == 1194
assert oou.ip == "37.218.243.98"
assert oou.tcp_success is None
assert oou.openvpn_handshake_srv_hello_t == 0.175448177
assert oou.openvpn_handshake_got_keys__t == 0.305975312
assert oou.openvpn_handshake_gen_keys__t == 0.376011823
assert oou.openvpn_bootstrap_time==0.376279583
# assert oou.tcp_success is None
assert oou.timing_map["openvpn_handshake_srv_hello"] == 0.175448177
assert oou.timing_map["openvpn_handshake_got_keys"] == 0.305975312
assert oou.timing_map["openvpn_handshake_gen_keys"] == 0.376011823
assert oou.bootstrap_time == 0.376279583

msmt_tcp = load_measurement(
msmt_path=measurements[
Expand All @@ -445,19 +445,19 @@ def test_openvpn_obs(netinfodb, measurements):
obs_tup_tcp = measurement_to_observations(
msmt=msmt_tcp, netinfodb=netinfodb, bucket_date=bucket_date
)
assert len(obs_tup_tcp) == 1
oot: OpenVPNObservation = obs_tup_tcp[0][0]
assert len(obs_tup_tcp) == 2
oot: TunnelObservation = obs_tup_tcp[0][0]

assert oot.success is True
assert oot.transport == "tcp"
assert oot.port == 1194
assert oot.ip == "37.218.243.98"
assert oot.tcp_success is True
assert oot.tcp_t == 0.053010729
assert oot.openvpn_handshake_hr_client_t==0.05684776
assert oot.openvpn_handshake_srv_hello_t==0.204483958
assert oot.openvpn_handshake_gen_keys__t==0.571443906
assert oot.openvpn_bootstrap_time==0.571501093
# assert oot.tcp_success is True
# assert oot.tcp_t == 0.053010729
assert oot.timing_map["openvpn_handshake_hr_client"] == 0.05684776
assert oot.timing_map["openvpn_handshake_srv_hello"] == 0.204483958
assert oot.timing_map["openvpn_handshake_gen_keys"] == 0.571443906
assert oot.bootstrap_time == 0.571501093

def test_echcheck_obs_tls_handshakes(netinfodb, measurements):
msmt = load_measurement(
Expand Down

0 comments on commit 29289db

Please sign in to comment.